C API
The C API of cvc5 is based on its C++ API and is
feature complete, within the limits of the C language.
The quickstart guide gives a short introduction of how
to use cvc5 via its C API.
For most applications, the Cvc5
solver struct is the main
entry point to cvc5.
One of the key differences is the way how memory is managed. While users of the C++ API can rely on memory being efficiently managed automatically, on the C level, management to maintain a low overhead needs more manual intervention.
The C API offers two modes of memory management:
Let cvc5 handle memory management without manual intervention. All memory allocated by the C API via a term manager (
Cvc5TermManager
) or solver (Cvc5
) instance will only be released when these instances are deleted viacvc5_delete()
andcvc5_term_manager_delete()
. For example:
Cvc5TermManager* tm = cvc5_term_manager_new();
Cvc5* cvc5 = cvc5_new(tm);
Cvc5Term a = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "a");
Cvc5Term two = cvc5_mk_integer_int64(tm, 2);
Cvc5Term args1[2] = {a, two};
cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_EQUAL, 2, args1));
Cvc5Term b = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "b");
Cvc5Term args2[2] = {b, two};
cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_DISTINCT, 2, args2));
cvc5_check_sat(cvc5);
cvc5_delete(cvc5);
cvc5_term_manager_delete(tm);
Introduce a more fine-grained, user-level memory management for objects created via a term manager or solver via the corresponding
cvc5_*_copy()
andcvc5_*_release()
functions. The copy functions increment the reference counter of an object, the release functions decrement the reference counter and free its allocated memory when the counter reaches 0. For example:
Cvc5TermManager* tm = cvc5_term_manager_new();
Cvc5* cvc5 = cvc5_new(tm);
Cvc5Term a = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "a");
Cvc5Term two = cvc5_mk_integer_int64(tm, 2);
Cvc5Term args1[2] = {a, two};
cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_EQUAL, 2, args1));
// we can release 'a' here, not needed anymore
cvc5_term_release(a);
Cvc5Term b = cvc5_mk_const(tm, cvc5_get_integer_sort(tm), "b");
Cvc5Term args2[2] = {b, two};
cvc5_assert_formula(cvc5, cvc5_mk_term(tm, CVC5_KIND_DISTINCT, 2, args2));
cvc5_check_sat(cvc5);
cvc5_delete(cvc5);
cvc5_term_manager_delete(tm);
- Quickstart Guide
- Cvc5
Cvc5
cvc5_new()
cvc5_delete()
cvc5_get_tm()
cvc5_declare_dt()
cvc5_declare_fun()
cvc5_declare_sort()
cvc5_define_fun()
cvc5_define_fun_rec()
cvc5_define_fun_rec_from_const()
cvc5_define_funs_rec()
cvc5_simplify()
cvc5_assert_formula()
cvc5_check_sat()
cvc5_check_sat_assuming()
cvc5_get_assertions()
cvc5_get_info()
cvc5_get_option()
cvc5_get_option_names()
cvc5_get_option_info()
cvc5_get_unsat_assumptions()
cvc5_get_unsat_core()
cvc5_get_unsat_core_lemmas()
cvc5_get_difficulty()
cvc5_get_timeout_core()
cvc5_get_timeout_core_assuming()
cvc5_get_proof()
cvc5_get_learned_literals()
cvc5_get_value()
cvc5_get_values()
cvc5_get_model_domain_elements()
cvc5_is_model_core_symbol()
cvc5_get_model()
cvc5_get_quantifier_elimination()
cvc5_get_quantifier_elimination_disjunct()
cvc5_declare_sep_heap()
cvc5_get_value_sep_heap()
cvc5_get_value_sep_nil()
cvc5_declare_pool()
cvc5_declare_oracle_fun()
cvc5_add_plugin()
cvc5_get_interpolant()
cvc5_get_interpolant_with_grammar()
cvc5_get_interpolant_next()
cvc5_get_abduct()
cvc5_get_abduct_with_grammar()
cvc5_get_abduct_next()
cvc5_block_model()
cvc5_block_model_values()
cvc5_get_instantiations()
cvc5_push()
cvc5_pop()
cvc5_reset_assertions()
cvc5_set_info()
cvc5_set_logic()
cvc5_is_logic_set()
cvc5_get_logic()
cvc5_set_option()
cvc5_declare_sygus_var()
cvc5_mk_grammar()
cvc5_synth_fun()
cvc5_synth_fun_with_grammar()
cvc5_add_sygus_constraint()
cvc5_get_sygus_constraints()
cvc5_add_sygus_assume()
cvc5_get_sygus_assumptions()
cvc5_add_sygus_inv_constraint()
cvc5_check_synth()
cvc5_check_synth_next()
cvc5_get_synth_solution()
cvc5_get_synth_solutions()
cvc5_find_synth()
cvc5_find_synth_with_grammar()
cvc5_find_synth_next()
cvc5_get_statistics()
cvc5_print_stats_safe()
cvc5_is_output_on()
cvc5_get_output()
cvc5_close_output()
cvc5_get_version()
cvc5_proof_to_string()
- Cvc5Command
- Cvc5Datatype
Cvc5Datatype
cvc5_dt_copy()
cvc5_dt_release()
cvc5_dt_is_equal()
cvc5_dt_get_constructor()
cvc5_dt_get_constructor_by_name()
cvc5_dt_get_selector()
cvc5_dt_get_name()
cvc5_dt_get_num_constructors()
cvc5_dt_get_parameters()
cvc5_dt_is_parametric()
cvc5_dt_is_codatatype()
cvc5_dt_is_tuple()
cvc5_dt_is_record()
cvc5_dt_is_finite()
cvc5_dt_is_well_founded()
cvc5_dt_to_string()
cvc5_dt_hash()
- Cvc5DatatypeDecl
- Cvc5DatatypeConstructor
Cvc5DatatypeConstructor
cvc5_dt_cons_copy()
cvc5_dt_cons_release()
cvc5_dt_cons_is_equal()
cvc5_dt_cons_get_name()
cvc5_dt_cons_get_term()
cvc5_dt_cons_get_instantiated_term()
cvc5_dt_cons_get_tester_term()
cvc5_dt_cons_get_num_selectors()
cvc5_dt_cons_get_selector()
cvc5_dt_cons_get_selector_by_name()
cvc5_dt_cons_to_string()
cvc5_dt_cons_hash()
- Cvc5DatatypeConstructorDecl
- Cvc5DatatypeSelector
- Cvc5Grammar
- Cvc5InputParser
Cvc5InputParser
cvc5_parser_new()
cvc5_parser_delete()
cvc5_parser_release()
cvc5_parser_get_solver()
cvc5_parser_get_sm()
cvc5_parser_set_file_input()
cvc5_parser_set_str_input()
cvc5_parser_set_inc_str_input()
cvc5_parser_append_inc_str_input()
cvc5_parser_next_command()
cvc5_parser_next_term()
cvc5_parser_done()
- Cvc5Op
- Cvc5Proof
- Cvc5Result
- Cvc5Sort
Cvc5Sort
cvc5_sort_copy()
cvc5_sort_release()
cvc5_sort_is_equal()
cvc5_sort_is_disequal()
cvc5_sort_compare()
cvc5_sort_get_kind()
cvc5_sort_has_symbol()
cvc5_sort_get_symbol()
cvc5_sort_is_boolean()
cvc5_sort_is_integer()
cvc5_sort_is_real()
cvc5_sort_is_string()
cvc5_sort_is_regexp()
cvc5_sort_is_rm()
cvc5_sort_is_bv()
cvc5_sort_is_fp()
cvc5_sort_is_dt()
cvc5_sort_is_dt_constructor()
cvc5_sort_is_dt_selector()
cvc5_sort_is_dt_tester()
cvc5_sort_is_dt_updater()
cvc5_sort_is_fun()
cvc5_sort_is_predicate()
cvc5_sort_is_tuple()
cvc5_sort_is_nullable()
cvc5_sort_is_record()
cvc5_sort_is_array()
cvc5_sort_is_ff()
cvc5_sort_is_set()
cvc5_sort_is_bag()
cvc5_sort_is_sequence()
cvc5_sort_is_abstract()
cvc5_sort_is_uninterpreted_sort()
cvc5_sort_is_uninterpreted_sort_constructor()
cvc5_sort_is_instantiated()
cvc5_sort_get_uninterpreted_sort_constructor()
cvc5_sort_get_datatype()
cvc5_sort_instantiate()
cvc5_sort_get_instantiated_parameters()
cvc5_sort_substitute()
cvc5_sort_substitute_sorts()
cvc5_sort_to_string()
cvc5_sort_hash()
cvc5_sort_dt_constructor_get_arity()
cvc5_sort_dt_constructor_get_domain()
cvc5_sort_dt_constructor_get_codomain()
cvc5_sort_dt_selector_get_domain()
cvc5_sort_dt_selector_get_codomain()
cvc5_sort_dt_tester_get_domain()
cvc5_sort_dt_tester_get_codomain()
cvc5_sort_fun_get_arity()
cvc5_sort_fun_get_domain()
cvc5_sort_fun_get_codomain()
cvc5_sort_array_get_index_sort()
cvc5_sort_array_get_element_sort()
cvc5_sort_set_get_element_sort()
cvc5_sort_bag_get_element_sort()
cvc5_sort_sequence_get_element_sort()
cvc5_sort_abstract_get_kind()
cvc5_sort_uninterpreted_sort_constructor_get_arity()
cvc5_sort_bv_get_size()
cvc5_sort_ff_get_size()
cvc5_sort_fp_get_exp_size()
cvc5_sort_fp_get_sig_size()
cvc5_sort_dt_get_arity()
cvc5_sort_tuple_get_length()
cvc5_sort_tuple_get_element_sorts()
cvc5_sort_nullable_get_element_sort()
- Cvc5Statistics
Cvc5Stat
cvc5_stat_is_internal()
cvc5_stat_is_default()
cvc5_stat_is_int()
cvc5_stat_get_int()
cvc5_stat_is_double()
cvc5_stat_get_double()
cvc5_stat_is_string()
cvc5_stat_get_string()
cvc5_stat_is_histogram()
cvc5_stat_get_histogram()
cvc5_stat_to_string()
Cvc5Statistics
cvc5_stats_iter_init()
cvc5_stats_iter_has_next()
cvc5_stats_iter_next()
cvc5_stats_get()
cvc5_stats_to_string()
- Cvc5SymbolManager
- Cvc5SynthResult
Cvc5SynthResult
cvc5_synth_result_is_null()
cvc5_synth_result_has_solution()
cvc5_synth_result_has_no_solution()
cvc5_synth_result_is_unknown()
cvc5_synth_result_is_equal()
cvc5_synth_result_is_disequal()
cvc5_synth_result_to_string()
cvc5_synth_result_hash()
cvc5_synth_result_copy()
cvc5_synth_result_release()
- Cvc5Term
Cvc5Term
cvc5_term_copy()
cvc5_term_release()
cvc5_term_is_equal()
cvc5_term_is_disequal()
cvc5_term_compare()
cvc5_term_get_num_children()
cvc5_term_get_child()
cvc5_term_get_id()
cvc5_term_get_kind()
cvc5_term_get_sort()
cvc5_term_substitute_term()
cvc5_term_substitute_terms()
cvc5_term_has_op()
cvc5_term_get_op()
cvc5_term_has_symbol()
cvc5_term_get_symbol()
cvc5_term_to_string()
cvc5_term_get_real_or_integer_value_sign()
cvc5_term_is_int32_value()
cvc5_term_get_int32_value()
cvc5_term_is_uint32_value()
cvc5_term_get_uint32_value()
cvc5_term_is_int64_value()
cvc5_term_get_int64_value()
cvc5_term_is_uint64_value()
cvc5_term_get_uint64_value()
cvc5_term_is_integer_value()
cvc5_term_get_integer_value()
cvc5_term_is_string_value()
cvc5_term_get_string_value()
cvc5_term_get_u32string_value()
cvc5_term_is_real32_value()
cvc5_term_get_real32_value()
cvc5_term_is_real64_value()
cvc5_term_get_real64_value()
cvc5_term_is_real_value()
cvc5_term_get_real_value()
cvc5_term_is_const_array()
cvc5_term_get_const_array_base()
cvc5_term_is_boolean_value()
cvc5_term_get_boolean_value()
cvc5_term_is_bv_value()
cvc5_term_get_bv_value()
cvc5_term_is_ff_value()
cvc5_term_get_ff_value()
cvc5_term_is_uninterpreted_sort_value()
cvc5_term_get_uninterpreted_sort_value()
cvc5_term_is_tuple_value()
cvc5_term_get_tuple_value()
cvc5_term_is_rm_value()
cvc5_term_get_rm_value()
cvc5_term_is_fp_pos_zero()
cvc5_term_is_fp_neg_zero()
cvc5_term_is_fp_pos_inf()
cvc5_term_is_fp_neg_inf()
cvc5_term_is_fp_nan()
cvc5_term_is_fp_value()
cvc5_term_get_fp_value()
cvc5_term_is_set_value()
cvc5_term_get_set_value()
cvc5_term_is_sequence_value()
cvc5_term_get_sequence_value()
cvc5_term_is_cardinality_constraint()
cvc5_term_get_cardinality_constraint()
cvc5_term_is_real_algebraic_number()
cvc5_term_get_real_algebraic_number_defining_polynomial()
cvc5_term_get_real_algebraic_number_lower_bound()
cvc5_term_get_real_algebraic_number_upper_bound()
cvc5_term_is_skolem()
cvc5_term_get_skolem_id()
cvc5_term_get_skolem_indices()
cvc5_term_hash()
- Cvc5TermManager
Cvc5TermManager
cvc5_term_manager_new()
cvc5_term_manager_delete()
cvc5_term_manager_release()
cvc5_term_manager_print_stats_safe()
cvc5_term_manager_get_statistics()
- Sort Creation
cvc5_get_boolean_sort()
cvc5_get_integer_sort()
cvc5_get_real_sort()
cvc5_get_regexp_sort()
cvc5_get_rm_sort()
cvc5_get_string_sort()
cvc5_mk_array_sort()
cvc5_mk_bv_sort()
cvc5_mk_fp_sort()
cvc5_mk_ff_sort()
cvc5_mk_dt_sort()
cvc5_mk_dt_sorts()
cvc5_mk_fun_sort()
cvc5_mk_param_sort()
cvc5_mk_predicate_sort()
cvc5_mk_record_sort()
cvc5_mk_set_sort()
cvc5_mk_bag_sort()
cvc5_mk_sequence_sort()
cvc5_mk_abstract_sort()
cvc5_mk_uninterpreted_sort()
cvc5_mk_unresolved_dt_sort()
cvc5_mk_uninterpreted_sort_constructor_sort()
cvc5_mk_tuple_sort()
cvc5_mk_nullable_sort()
- Operator Creation
- Term Creation
cvc5_mk_term()
cvc5_mk_term_from_op()
cvc5_mk_tuple()
cvc5_mk_nullable_some()
cvc5_mk_nullable_val()
cvc5_mk_nullable_is_null()
cvc5_mk_nullable_is_some()
cvc5_mk_nullable_null()
cvc5_mk_nullable_lift()
cvc5_mk_skolem()
cvc5_get_num_idxs_for_skolem_id()
cvc5_mk_true()
cvc5_mk_false()
cvc5_mk_boolean()
cvc5_mk_pi()
cvc5_mk_integer()
cvc5_mk_integer_int64()
cvc5_mk_real()
cvc5_mk_real_int64()
cvc5_mk_real_num_den()
cvc5_mk_regexp_all()
cvc5_mk_regexp_allchar()
cvc5_mk_regexp_none()
cvc5_mk_empty_set()
cvc5_mk_empty_bag()
cvc5_mk_sep_emp()
cvc5_mk_sep_nil()
cvc5_mk_string()
cvc5_mk_string_from_wchar()
cvc5_mk_string_from_char32()
cvc5_mk_empty_sequence()
cvc5_mk_universe_set()
cvc5_mk_bv_uint64()
cvc5_mk_bv()
cvc5_mk_ff_elem()
cvc5_mk_const_array()
cvc5_mk_fp_pos_inf()
cvc5_mk_fp_neg_inf()
cvc5_mk_fp_nan()
cvc5_mk_fp_pos_zero()
cvc5_mk_fp_neg_zero()
cvc5_mk_rm()
cvc5_mk_fp()
cvc5_mk_fp_from_ieee()
cvc5_mk_cardinality_constraint()
cvc5_mk_const()
cvc5_mk_var()
- Datatype Declaration Creation
- Datatype Constructor Declaration Creation
- Cvc5OptionInfo
Cvc5OptionInfoKind
Cvc5OptionInfo
cvc5_option_info_to_string()
- Cvc5Plugin
- Cvc5Kind
Cvc5Kind
CVC5_KIND_INTERNAL_KIND
CVC5_KIND_UNDEFINED_KIND
CVC5_KIND_NULL_TERM
CVC5_KIND_UNINTERPRETED_SORT_VALUE
CVC5_KIND_EQUAL
CVC5_KIND_DISTINCT
CVC5_KIND_CONSTANT
CVC5_KIND_VARIABLE
CVC5_KIND_SKOLEM
CVC5_KIND_SEXPR
CVC5_KIND_LAMBDA
CVC5_KIND_WITNESS
CVC5_KIND_CONST_BOOLEAN
CVC5_KIND_NOT
CVC5_KIND_AND
CVC5_KIND_IMPLIES
CVC5_KIND_OR
CVC5_KIND_XOR
CVC5_KIND_ITE
CVC5_KIND_APPLY_UF
CVC5_KIND_CARDINALITY_CONSTRAINT
CVC5_KIND_HO_APPLY
CVC5_KIND_ADD
CVC5_KIND_MULT
CVC5_KIND_IAND
CVC5_KIND_POW2
CVC5_KIND_SUB
CVC5_KIND_NEG
CVC5_KIND_DIVISION
CVC5_KIND_DIVISION_TOTAL
CVC5_KIND_INTS_DIVISION
CVC5_KIND_INTS_DIVISION_TOTAL
CVC5_KIND_INTS_MODULUS
CVC5_KIND_INTS_MODULUS_TOTAL
CVC5_KIND_ABS
CVC5_KIND_POW
CVC5_KIND_EXPONENTIAL
CVC5_KIND_SINE
CVC5_KIND_COSINE
CVC5_KIND_TANGENT
CVC5_KIND_COSECANT
CVC5_KIND_SECANT
CVC5_KIND_COTANGENT
CVC5_KIND_ARCSINE
CVC5_KIND_ARCCOSINE
CVC5_KIND_ARCTANGENT
CVC5_KIND_ARCCOSECANT
CVC5_KIND_ARCSECANT
CVC5_KIND_ARCCOTANGENT
CVC5_KIND_SQRT
CVC5_KIND_DIVISIBLE
CVC5_KIND_CONST_RATIONAL
CVC5_KIND_CONST_INTEGER
CVC5_KIND_LT
CVC5_KIND_LEQ
CVC5_KIND_GT
CVC5_KIND_GEQ
CVC5_KIND_IS_INTEGER
CVC5_KIND_TO_INTEGER
CVC5_KIND_TO_REAL
CVC5_KIND_PI
CVC5_KIND_CONST_BITVECTOR
CVC5_KIND_BITVECTOR_CONCAT
CVC5_KIND_BITVECTOR_AND
CVC5_KIND_BITVECTOR_OR
CVC5_KIND_BITVECTOR_XOR
CVC5_KIND_BITVECTOR_NOT
CVC5_KIND_BITVECTOR_NAND
CVC5_KIND_BITVECTOR_NOR
CVC5_KIND_BITVECTOR_XNOR
CVC5_KIND_BITVECTOR_COMP
CVC5_KIND_BITVECTOR_MULT
CVC5_KIND_BITVECTOR_ADD
CVC5_KIND_BITVECTOR_SUB
CVC5_KIND_BITVECTOR_NEG
CVC5_KIND_BITVECTOR_UDIV
CVC5_KIND_BITVECTOR_UREM
CVC5_KIND_BITVECTOR_SDIV
CVC5_KIND_BITVECTOR_SREM
CVC5_KIND_BITVECTOR_SMOD
CVC5_KIND_BITVECTOR_SHL
CVC5_KIND_BITVECTOR_LSHR
CVC5_KIND_BITVECTOR_ASHR
CVC5_KIND_BITVECTOR_ULT
CVC5_KIND_BITVECTOR_ULE
CVC5_KIND_BITVECTOR_UGT
CVC5_KIND_BITVECTOR_UGE
CVC5_KIND_BITVECTOR_SLT
CVC5_KIND_BITVECTOR_SLE
CVC5_KIND_BITVECTOR_SGT
CVC5_KIND_BITVECTOR_SGE
CVC5_KIND_BITVECTOR_ULTBV
CVC5_KIND_BITVECTOR_SLTBV
CVC5_KIND_BITVECTOR_ITE
CVC5_KIND_BITVECTOR_REDOR
CVC5_KIND_BITVECTOR_REDAND
CVC5_KIND_BITVECTOR_NEGO
CVC5_KIND_BITVECTOR_UADDO
CVC5_KIND_BITVECTOR_SADDO
CVC5_KIND_BITVECTOR_UMULO
CVC5_KIND_BITVECTOR_SMULO
CVC5_KIND_BITVECTOR_USUBO
CVC5_KIND_BITVECTOR_SSUBO
CVC5_KIND_BITVECTOR_SDIVO
CVC5_KIND_BITVECTOR_EXTRACT
CVC5_KIND_BITVECTOR_REPEAT
CVC5_KIND_BITVECTOR_ZERO_EXTEND
CVC5_KIND_BITVECTOR_SIGN_EXTEND
CVC5_KIND_BITVECTOR_ROTATE_LEFT
CVC5_KIND_BITVECTOR_ROTATE_RIGHT
CVC5_KIND_INT_TO_BITVECTOR
CVC5_KIND_BITVECTOR_TO_NAT
CVC5_KIND_BITVECTOR_UBV_TO_INT
CVC5_KIND_BITVECTOR_SBV_TO_INT
CVC5_KIND_BITVECTOR_FROM_BOOLS
CVC5_KIND_BITVECTOR_BIT
CVC5_KIND_CONST_FINITE_FIELD
CVC5_KIND_FINITE_FIELD_NEG
CVC5_KIND_FINITE_FIELD_ADD
CVC5_KIND_FINITE_FIELD_BITSUM
CVC5_KIND_FINITE_FIELD_MULT
CVC5_KIND_CONST_FLOATINGPOINT
CVC5_KIND_CONST_ROUNDINGMODE
CVC5_KIND_FLOATINGPOINT_FP
CVC5_KIND_FLOATINGPOINT_EQ
CVC5_KIND_FLOATINGPOINT_ABS
CVC5_KIND_FLOATINGPOINT_NEG
CVC5_KIND_FLOATINGPOINT_ADD
CVC5_KIND_FLOATINGPOINT_SUB
CVC5_KIND_FLOATINGPOINT_MULT
CVC5_KIND_FLOATINGPOINT_DIV
CVC5_KIND_FLOATINGPOINT_FMA
CVC5_KIND_FLOATINGPOINT_SQRT
CVC5_KIND_FLOATINGPOINT_REM
CVC5_KIND_FLOATINGPOINT_RTI
CVC5_KIND_FLOATINGPOINT_MIN
CVC5_KIND_FLOATINGPOINT_MAX
CVC5_KIND_FLOATINGPOINT_LEQ
CVC5_KIND_FLOATINGPOINT_LT
CVC5_KIND_FLOATINGPOINT_GEQ
CVC5_KIND_FLOATINGPOINT_GT
CVC5_KIND_FLOATINGPOINT_IS_NORMAL
CVC5_KIND_FLOATINGPOINT_IS_SUBNORMAL
CVC5_KIND_FLOATINGPOINT_IS_ZERO
CVC5_KIND_FLOATINGPOINT_IS_INF
CVC5_KIND_FLOATINGPOINT_IS_NAN
CVC5_KIND_FLOATINGPOINT_IS_NEG
CVC5_KIND_FLOATINGPOINT_IS_POS
CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BV
CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FP
CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REAL
CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBV
CVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBV
CVC5_KIND_FLOATINGPOINT_TO_UBV
CVC5_KIND_FLOATINGPOINT_TO_SBV
CVC5_KIND_FLOATINGPOINT_TO_REAL
CVC5_KIND_SELECT
CVC5_KIND_STORE
CVC5_KIND_CONST_ARRAY
CVC5_KIND_EQ_RANGE
CVC5_KIND_APPLY_CONSTRUCTOR
CVC5_KIND_APPLY_SELECTOR
CVC5_KIND_APPLY_TESTER
CVC5_KIND_APPLY_UPDATER
CVC5_KIND_MATCH
CVC5_KIND_MATCH_CASE
CVC5_KIND_MATCH_BIND_CASE
CVC5_KIND_TUPLE_PROJECT
CVC5_KIND_NULLABLE_LIFT
CVC5_KIND_SEP_NIL
CVC5_KIND_SEP_EMP
CVC5_KIND_SEP_PTO
CVC5_KIND_SEP_STAR
CVC5_KIND_SEP_WAND
CVC5_KIND_SET_EMPTY
CVC5_KIND_SET_UNION
CVC5_KIND_SET_INTER
CVC5_KIND_SET_MINUS
CVC5_KIND_SET_SUBSET
CVC5_KIND_SET_MEMBER
CVC5_KIND_SET_SINGLETON
CVC5_KIND_SET_INSERT
CVC5_KIND_SET_CARD
CVC5_KIND_SET_COMPLEMENT
CVC5_KIND_SET_UNIVERSE
CVC5_KIND_SET_COMPREHENSION
CVC5_KIND_SET_CHOOSE
CVC5_KIND_SET_IS_EMPTY
CVC5_KIND_SET_IS_SINGLETON
CVC5_KIND_SET_MAP
CVC5_KIND_SET_FILTER
CVC5_KIND_SET_ALL
CVC5_KIND_SET_SOME
CVC5_KIND_SET_FOLD
CVC5_KIND_RELATION_JOIN
CVC5_KIND_RELATION_TABLE_JOIN
CVC5_KIND_RELATION_PRODUCT
CVC5_KIND_RELATION_TRANSPOSE
CVC5_KIND_RELATION_TCLOSURE
CVC5_KIND_RELATION_JOIN_IMAGE
CVC5_KIND_RELATION_IDEN
CVC5_KIND_RELATION_GROUP
CVC5_KIND_RELATION_AGGREGATE
CVC5_KIND_RELATION_PROJECT
CVC5_KIND_BAG_EMPTY
CVC5_KIND_BAG_UNION_MAX
CVC5_KIND_BAG_UNION_DISJOINT
CVC5_KIND_BAG_INTER_MIN
CVC5_KIND_BAG_DIFFERENCE_SUBTRACT
CVC5_KIND_BAG_DIFFERENCE_REMOVE
CVC5_KIND_BAG_SUBBAG
CVC5_KIND_BAG_COUNT
CVC5_KIND_BAG_MEMBER
CVC5_KIND_BAG_SETOF
CVC5_KIND_BAG_MAKE
CVC5_KIND_BAG_CARD
CVC5_KIND_BAG_CHOOSE
CVC5_KIND_BAG_MAP
CVC5_KIND_BAG_FILTER
CVC5_KIND_BAG_ALL
CVC5_KIND_BAG_SOME
CVC5_KIND_BAG_FOLD
CVC5_KIND_BAG_PARTITION
CVC5_KIND_TABLE_PRODUCT
CVC5_KIND_TABLE_PROJECT
CVC5_KIND_TABLE_AGGREGATE
CVC5_KIND_TABLE_JOIN
CVC5_KIND_TABLE_GROUP
CVC5_KIND_STRING_CONCAT
CVC5_KIND_STRING_IN_REGEXP
CVC5_KIND_STRING_LENGTH
CVC5_KIND_STRING_SUBSTR
CVC5_KIND_STRING_UPDATE
CVC5_KIND_STRING_CHARAT
CVC5_KIND_STRING_CONTAINS
CVC5_KIND_STRING_INDEXOF
CVC5_KIND_STRING_INDEXOF_RE
CVC5_KIND_STRING_REPLACE
CVC5_KIND_STRING_REPLACE_ALL
CVC5_KIND_STRING_REPLACE_RE
CVC5_KIND_STRING_REPLACE_RE_ALL
CVC5_KIND_STRING_TO_LOWER
CVC5_KIND_STRING_TO_UPPER
CVC5_KIND_STRING_REV
CVC5_KIND_STRING_TO_CODE
CVC5_KIND_STRING_FROM_CODE
CVC5_KIND_STRING_LT
CVC5_KIND_STRING_LEQ
CVC5_KIND_STRING_PREFIX
CVC5_KIND_STRING_SUFFIX
CVC5_KIND_STRING_IS_DIGIT
CVC5_KIND_STRING_FROM_INT
CVC5_KIND_STRING_TO_INT
CVC5_KIND_CONST_STRING
CVC5_KIND_STRING_TO_REGEXP
CVC5_KIND_REGEXP_CONCAT
CVC5_KIND_REGEXP_UNION
CVC5_KIND_REGEXP_INTER
CVC5_KIND_REGEXP_DIFF
CVC5_KIND_REGEXP_STAR
CVC5_KIND_REGEXP_PLUS
CVC5_KIND_REGEXP_OPT
CVC5_KIND_REGEXP_RANGE
CVC5_KIND_REGEXP_REPEAT
CVC5_KIND_REGEXP_LOOP
CVC5_KIND_REGEXP_NONE
CVC5_KIND_REGEXP_ALL
CVC5_KIND_REGEXP_ALLCHAR
CVC5_KIND_REGEXP_COMPLEMENT
CVC5_KIND_SEQ_CONCAT
CVC5_KIND_SEQ_LENGTH
CVC5_KIND_SEQ_EXTRACT
CVC5_KIND_SEQ_UPDATE
CVC5_KIND_SEQ_AT
CVC5_KIND_SEQ_CONTAINS
CVC5_KIND_SEQ_INDEXOF
CVC5_KIND_SEQ_REPLACE
CVC5_KIND_SEQ_REPLACE_ALL
CVC5_KIND_SEQ_REV
CVC5_KIND_SEQ_PREFIX
CVC5_KIND_SEQ_SUFFIX
CVC5_KIND_CONST_SEQUENCE
CVC5_KIND_SEQ_UNIT
CVC5_KIND_SEQ_NTH
CVC5_KIND_FORALL
CVC5_KIND_EXISTS
CVC5_KIND_VARIABLE_LIST
CVC5_KIND_INST_PATTERN
CVC5_KIND_INST_NO_PATTERN
CVC5_KIND_INST_POOL
CVC5_KIND_INST_ADD_TO_POOL
CVC5_KIND_SKOLEM_ADD_TO_POOL
CVC5_KIND_INST_ATTRIBUTE
CVC5_KIND_INST_PATTERN_LIST
CVC5_KIND_LAST_KIND
cvc5_kind_to_string()
cvc5_kind_hash()
- Cvc5SortKind
Cvc5SortKind
CVC5_SORT_KIND_INTERNAL_SORT_KIND
CVC5_SORT_KIND_UNDEFINED_SORT_KIND
CVC5_SORT_KIND_NULL_SORT
CVC5_SORT_KIND_ABSTRACT_SORT
CVC5_SORT_KIND_ARRAY_SORT
CVC5_SORT_KIND_BAG_SORT
CVC5_SORT_KIND_BOOLEAN_SORT
CVC5_SORT_KIND_BITVECTOR_SORT
CVC5_SORT_KIND_DATATYPE_SORT
CVC5_SORT_KIND_FINITE_FIELD_SORT
CVC5_SORT_KIND_FLOATINGPOINT_SORT
CVC5_SORT_KIND_FUNCTION_SORT
CVC5_SORT_KIND_INTEGER_SORT
CVC5_SORT_KIND_REAL_SORT
CVC5_SORT_KIND_REGLAN_SORT
CVC5_SORT_KIND_ROUNDINGMODE_SORT
CVC5_SORT_KIND_SEQUENCE_SORT
CVC5_SORT_KIND_SET_SORT
CVC5_SORT_KIND_STRING_SORT
CVC5_SORT_KIND_TUPLE_SORT
CVC5_SORT_KIND_NULLABLE_SORT
CVC5_SORT_KIND_UNINTERPRETED_SORT
CVC5_SORT_KIND_LAST_SORT_KIND
cvc5_sort_kind_to_string()
cvc5_sort_kind_hash()
- Cvc5RoundingMode
- Cvc5UnknownExplanation
Cvc5UnknownExplanation
CVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECK
CVC5_UNKNOWN_EXPLANATION_INCOMPLETE
CVC5_UNKNOWN_EXPLANATION_TIMEOUT
CVC5_UNKNOWN_EXPLANATION_RESOURCEOUT
CVC5_UNKNOWN_EXPLANATION_MEMOUT
CVC5_UNKNOWN_EXPLANATION_INTERRUPTED
CVC5_UNKNOWN_EXPLANATION_UNSUPPORTED
CVC5_UNKNOWN_EXPLANATION_OTHER
CVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAIN
CVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASON
CVC5_UNKNOWN_EXPLANATION_LAST
cvc5_unknown_explanation_to_string()
- Modes
Cvc5BlockModelsMode
cvc5_modes_block_models_mode_to_string()
Cvc5LearnedLitType
cvc5_modes_learned_lit_type_to_string()
Cvc5FindSynthTarget
cvc5_modes_find_synth_target_to_string()
Cvc5OptionCategory
cvc5_modes_option_category_to_string()
Cvc5ProofComponent
cvc5_modes_proof_component_to_string()
Cvc5ProofFormat
cvc5_modes_proof_format_to_string()
Types
The following types are defined via typedefs but used as black boxes, their internals are hidden.
typedef struct Cvc5
typedef struct Cvc5Command
typedef struct Cvc5Datatype
typedef struct Cvc5DatatypeDecl
typedef struct Cvc5DatatypeConstructor
typedef struct Cvc5DatatypeConstructorDecl
typedef struct Cvc5DatatypeSelector
typedef struct Cvc5Grammar
typedef struct Cvc5InputParser
typedef struct Cvc5Op
typedef struct Cvc5Proof
typedef struct Cvc5Result
typedef struct Cvc5Sort
typedef struct
Cvc5Stat
typedef struct Cvc5Statistics
typedef struct Cvc5SymbolManager
typedef struct Cvc5SynthResult
typedef struct Cvc5Term
typedef struct Cvc5TermManager
Structs
The following structs are fully exposed via the API.
struct Cvc5OptionInfo
struct Cvc5Plugin
Enums
enum Cvc5Kind
enum Cvc5SortKind
enum
Cvc5OptionInfoKind
enum Cvc5RoundingMode
enums for configuration modes
enum
Cvc5BlockModelsMode
enum
Cvc5LearnedLitType
enum
Cvc5FindSynthTarget
enum
Cvc5OptionCategory
enum
Cvc5ProofComponent
enum
Cvc5ProofFormat
enums classes for proof rules
enum
Cvc5ProofRule
enum
Cvc5ProofRewriteRule