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
Cvc5cvc5_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
Cvc5Datatypecvc5_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
Cvc5DatatypeConstructorcvc5_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
Cvc5InputParsercvc5_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
Cvc5Sortcvc5_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
Cvc5Statcvc5_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()Cvc5Statisticscvc5_stats_iter_init()cvc5_stats_iter_has_next()cvc5_stats_iter_next()cvc5_stats_get()cvc5_stats_to_string()
- Cvc5SymbolManager
- Cvc5SynthResult
Cvc5SynthResultcvc5_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
Cvc5Termcvc5_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
Cvc5TermManagercvc5_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
Cvc5OptionInfoKindCvc5OptionInfocvc5_option_info_to_string()
- Cvc5Plugin
- Cvc5Kind
Cvc5KindCVC5_KIND_INTERNAL_KINDCVC5_KIND_UNDEFINED_KINDCVC5_KIND_NULL_TERMCVC5_KIND_UNINTERPRETED_SORT_VALUECVC5_KIND_EQUALCVC5_KIND_DISTINCTCVC5_KIND_CONSTANTCVC5_KIND_VARIABLECVC5_KIND_SKOLEMCVC5_KIND_SEXPRCVC5_KIND_LAMBDACVC5_KIND_WITNESSCVC5_KIND_CONST_BOOLEANCVC5_KIND_NOTCVC5_KIND_ANDCVC5_KIND_IMPLIESCVC5_KIND_ORCVC5_KIND_XORCVC5_KIND_ITECVC5_KIND_APPLY_UFCVC5_KIND_CARDINALITY_CONSTRAINTCVC5_KIND_HO_APPLYCVC5_KIND_ADDCVC5_KIND_MULTCVC5_KIND_IANDCVC5_KIND_POW2CVC5_KIND_SUBCVC5_KIND_NEGCVC5_KIND_DIVISIONCVC5_KIND_DIVISION_TOTALCVC5_KIND_INTS_DIVISIONCVC5_KIND_INTS_DIVISION_TOTALCVC5_KIND_INTS_MODULUSCVC5_KIND_INTS_MODULUS_TOTALCVC5_KIND_ABSCVC5_KIND_POWCVC5_KIND_EXPONENTIALCVC5_KIND_SINECVC5_KIND_COSINECVC5_KIND_TANGENTCVC5_KIND_COSECANTCVC5_KIND_SECANTCVC5_KIND_COTANGENTCVC5_KIND_ARCSINECVC5_KIND_ARCCOSINECVC5_KIND_ARCTANGENTCVC5_KIND_ARCCOSECANTCVC5_KIND_ARCSECANTCVC5_KIND_ARCCOTANGENTCVC5_KIND_SQRTCVC5_KIND_DIVISIBLECVC5_KIND_CONST_RATIONALCVC5_KIND_CONST_INTEGERCVC5_KIND_LTCVC5_KIND_LEQCVC5_KIND_GTCVC5_KIND_GEQCVC5_KIND_IS_INTEGERCVC5_KIND_TO_INTEGERCVC5_KIND_TO_REALCVC5_KIND_PICVC5_KIND_CONST_BITVECTORCVC5_KIND_BITVECTOR_CONCATCVC5_KIND_BITVECTOR_ANDCVC5_KIND_BITVECTOR_ORCVC5_KIND_BITVECTOR_XORCVC5_KIND_BITVECTOR_NOTCVC5_KIND_BITVECTOR_NANDCVC5_KIND_BITVECTOR_NORCVC5_KIND_BITVECTOR_XNORCVC5_KIND_BITVECTOR_COMPCVC5_KIND_BITVECTOR_MULTCVC5_KIND_BITVECTOR_ADDCVC5_KIND_BITVECTOR_SUBCVC5_KIND_BITVECTOR_NEGCVC5_KIND_BITVECTOR_UDIVCVC5_KIND_BITVECTOR_UREMCVC5_KIND_BITVECTOR_SDIVCVC5_KIND_BITVECTOR_SREMCVC5_KIND_BITVECTOR_SMODCVC5_KIND_BITVECTOR_SHLCVC5_KIND_BITVECTOR_LSHRCVC5_KIND_BITVECTOR_ASHRCVC5_KIND_BITVECTOR_ULTCVC5_KIND_BITVECTOR_ULECVC5_KIND_BITVECTOR_UGTCVC5_KIND_BITVECTOR_UGECVC5_KIND_BITVECTOR_SLTCVC5_KIND_BITVECTOR_SLECVC5_KIND_BITVECTOR_SGTCVC5_KIND_BITVECTOR_SGECVC5_KIND_BITVECTOR_ULTBVCVC5_KIND_BITVECTOR_SLTBVCVC5_KIND_BITVECTOR_ITECVC5_KIND_BITVECTOR_REDORCVC5_KIND_BITVECTOR_REDANDCVC5_KIND_BITVECTOR_NEGOCVC5_KIND_BITVECTOR_UADDOCVC5_KIND_BITVECTOR_SADDOCVC5_KIND_BITVECTOR_UMULOCVC5_KIND_BITVECTOR_SMULOCVC5_KIND_BITVECTOR_USUBOCVC5_KIND_BITVECTOR_SSUBOCVC5_KIND_BITVECTOR_SDIVOCVC5_KIND_BITVECTOR_EXTRACTCVC5_KIND_BITVECTOR_REPEATCVC5_KIND_BITVECTOR_ZERO_EXTENDCVC5_KIND_BITVECTOR_SIGN_EXTENDCVC5_KIND_BITVECTOR_ROTATE_LEFTCVC5_KIND_BITVECTOR_ROTATE_RIGHTCVC5_KIND_INT_TO_BITVECTORCVC5_KIND_BITVECTOR_TO_NATCVC5_KIND_BITVECTOR_UBV_TO_INTCVC5_KIND_BITVECTOR_SBV_TO_INTCVC5_KIND_BITVECTOR_FROM_BOOLSCVC5_KIND_BITVECTOR_BITCVC5_KIND_CONST_FINITE_FIELDCVC5_KIND_FINITE_FIELD_NEGCVC5_KIND_FINITE_FIELD_ADDCVC5_KIND_FINITE_FIELD_BITSUMCVC5_KIND_FINITE_FIELD_MULTCVC5_KIND_CONST_FLOATINGPOINTCVC5_KIND_CONST_ROUNDINGMODECVC5_KIND_FLOATINGPOINT_FPCVC5_KIND_FLOATINGPOINT_EQCVC5_KIND_FLOATINGPOINT_ABSCVC5_KIND_FLOATINGPOINT_NEGCVC5_KIND_FLOATINGPOINT_ADDCVC5_KIND_FLOATINGPOINT_SUBCVC5_KIND_FLOATINGPOINT_MULTCVC5_KIND_FLOATINGPOINT_DIVCVC5_KIND_FLOATINGPOINT_FMACVC5_KIND_FLOATINGPOINT_SQRTCVC5_KIND_FLOATINGPOINT_REMCVC5_KIND_FLOATINGPOINT_RTICVC5_KIND_FLOATINGPOINT_MINCVC5_KIND_FLOATINGPOINT_MAXCVC5_KIND_FLOATINGPOINT_LEQCVC5_KIND_FLOATINGPOINT_LTCVC5_KIND_FLOATINGPOINT_GEQCVC5_KIND_FLOATINGPOINT_GTCVC5_KIND_FLOATINGPOINT_IS_NORMALCVC5_KIND_FLOATINGPOINT_IS_SUBNORMALCVC5_KIND_FLOATINGPOINT_IS_ZEROCVC5_KIND_FLOATINGPOINT_IS_INFCVC5_KIND_FLOATINGPOINT_IS_NANCVC5_KIND_FLOATINGPOINT_IS_NEGCVC5_KIND_FLOATINGPOINT_IS_POSCVC5_KIND_FLOATINGPOINT_TO_FP_FROM_IEEE_BVCVC5_KIND_FLOATINGPOINT_TO_FP_FROM_FPCVC5_KIND_FLOATINGPOINT_TO_FP_FROM_REALCVC5_KIND_FLOATINGPOINT_TO_FP_FROM_SBVCVC5_KIND_FLOATINGPOINT_TO_FP_FROM_UBVCVC5_KIND_FLOATINGPOINT_TO_UBVCVC5_KIND_FLOATINGPOINT_TO_SBVCVC5_KIND_FLOATINGPOINT_TO_REALCVC5_KIND_SELECTCVC5_KIND_STORECVC5_KIND_CONST_ARRAYCVC5_KIND_EQ_RANGECVC5_KIND_APPLY_CONSTRUCTORCVC5_KIND_APPLY_SELECTORCVC5_KIND_APPLY_TESTERCVC5_KIND_APPLY_UPDATERCVC5_KIND_MATCHCVC5_KIND_MATCH_CASECVC5_KIND_MATCH_BIND_CASECVC5_KIND_TUPLE_PROJECTCVC5_KIND_NULLABLE_LIFTCVC5_KIND_SEP_NILCVC5_KIND_SEP_EMPCVC5_KIND_SEP_PTOCVC5_KIND_SEP_STARCVC5_KIND_SEP_WANDCVC5_KIND_SET_EMPTYCVC5_KIND_SET_UNIONCVC5_KIND_SET_INTERCVC5_KIND_SET_MINUSCVC5_KIND_SET_SUBSETCVC5_KIND_SET_MEMBERCVC5_KIND_SET_SINGLETONCVC5_KIND_SET_INSERTCVC5_KIND_SET_CARDCVC5_KIND_SET_COMPLEMENTCVC5_KIND_SET_UNIVERSECVC5_KIND_SET_COMPREHENSIONCVC5_KIND_SET_CHOOSECVC5_KIND_SET_IS_EMPTYCVC5_KIND_SET_IS_SINGLETONCVC5_KIND_SET_MAPCVC5_KIND_SET_FILTERCVC5_KIND_SET_ALLCVC5_KIND_SET_SOMECVC5_KIND_SET_FOLDCVC5_KIND_RELATION_JOINCVC5_KIND_RELATION_TABLE_JOINCVC5_KIND_RELATION_PRODUCTCVC5_KIND_RELATION_TRANSPOSECVC5_KIND_RELATION_TCLOSURECVC5_KIND_RELATION_JOIN_IMAGECVC5_KIND_RELATION_IDENCVC5_KIND_RELATION_GROUPCVC5_KIND_RELATION_AGGREGATECVC5_KIND_RELATION_PROJECTCVC5_KIND_BAG_EMPTYCVC5_KIND_BAG_UNION_MAXCVC5_KIND_BAG_UNION_DISJOINTCVC5_KIND_BAG_INTER_MINCVC5_KIND_BAG_DIFFERENCE_SUBTRACTCVC5_KIND_BAG_DIFFERENCE_REMOVECVC5_KIND_BAG_SUBBAGCVC5_KIND_BAG_COUNTCVC5_KIND_BAG_MEMBERCVC5_KIND_BAG_SETOFCVC5_KIND_BAG_MAKECVC5_KIND_BAG_CARDCVC5_KIND_BAG_CHOOSECVC5_KIND_BAG_MAPCVC5_KIND_BAG_FILTERCVC5_KIND_BAG_ALLCVC5_KIND_BAG_SOMECVC5_KIND_BAG_FOLDCVC5_KIND_BAG_PARTITIONCVC5_KIND_TABLE_PRODUCTCVC5_KIND_TABLE_PROJECTCVC5_KIND_TABLE_AGGREGATECVC5_KIND_TABLE_JOINCVC5_KIND_TABLE_GROUPCVC5_KIND_STRING_CONCATCVC5_KIND_STRING_IN_REGEXPCVC5_KIND_STRING_LENGTHCVC5_KIND_STRING_SUBSTRCVC5_KIND_STRING_UPDATECVC5_KIND_STRING_CHARATCVC5_KIND_STRING_CONTAINSCVC5_KIND_STRING_INDEXOFCVC5_KIND_STRING_INDEXOF_RECVC5_KIND_STRING_REPLACECVC5_KIND_STRING_REPLACE_ALLCVC5_KIND_STRING_REPLACE_RECVC5_KIND_STRING_REPLACE_RE_ALLCVC5_KIND_STRING_TO_LOWERCVC5_KIND_STRING_TO_UPPERCVC5_KIND_STRING_REVCVC5_KIND_STRING_TO_CODECVC5_KIND_STRING_FROM_CODECVC5_KIND_STRING_LTCVC5_KIND_STRING_LEQCVC5_KIND_STRING_PREFIXCVC5_KIND_STRING_SUFFIXCVC5_KIND_STRING_IS_DIGITCVC5_KIND_STRING_FROM_INTCVC5_KIND_STRING_TO_INTCVC5_KIND_CONST_STRINGCVC5_KIND_STRING_TO_REGEXPCVC5_KIND_REGEXP_CONCATCVC5_KIND_REGEXP_UNIONCVC5_KIND_REGEXP_INTERCVC5_KIND_REGEXP_DIFFCVC5_KIND_REGEXP_STARCVC5_KIND_REGEXP_PLUSCVC5_KIND_REGEXP_OPTCVC5_KIND_REGEXP_RANGECVC5_KIND_REGEXP_REPEATCVC5_KIND_REGEXP_LOOPCVC5_KIND_REGEXP_NONECVC5_KIND_REGEXP_ALLCVC5_KIND_REGEXP_ALLCHARCVC5_KIND_REGEXP_COMPLEMENTCVC5_KIND_SEQ_CONCATCVC5_KIND_SEQ_LENGTHCVC5_KIND_SEQ_EXTRACTCVC5_KIND_SEQ_UPDATECVC5_KIND_SEQ_ATCVC5_KIND_SEQ_CONTAINSCVC5_KIND_SEQ_INDEXOFCVC5_KIND_SEQ_REPLACECVC5_KIND_SEQ_REPLACE_ALLCVC5_KIND_SEQ_REVCVC5_KIND_SEQ_PREFIXCVC5_KIND_SEQ_SUFFIXCVC5_KIND_CONST_SEQUENCECVC5_KIND_SEQ_UNITCVC5_KIND_SEQ_NTHCVC5_KIND_FORALLCVC5_KIND_EXISTSCVC5_KIND_VARIABLE_LISTCVC5_KIND_INST_PATTERNCVC5_KIND_INST_NO_PATTERNCVC5_KIND_INST_POOLCVC5_KIND_INST_ADD_TO_POOLCVC5_KIND_SKOLEM_ADD_TO_POOLCVC5_KIND_INST_ATTRIBUTECVC5_KIND_INST_PATTERN_LISTCVC5_KIND_LAST_KIND
cvc5_kind_to_string()cvc5_kind_hash()
- Cvc5SortKind
Cvc5SortKindCVC5_SORT_KIND_INTERNAL_SORT_KINDCVC5_SORT_KIND_UNDEFINED_SORT_KINDCVC5_SORT_KIND_NULL_SORTCVC5_SORT_KIND_ABSTRACT_SORTCVC5_SORT_KIND_ARRAY_SORTCVC5_SORT_KIND_BAG_SORTCVC5_SORT_KIND_BOOLEAN_SORTCVC5_SORT_KIND_BITVECTOR_SORTCVC5_SORT_KIND_DATATYPE_SORTCVC5_SORT_KIND_FINITE_FIELD_SORTCVC5_SORT_KIND_FLOATINGPOINT_SORTCVC5_SORT_KIND_FUNCTION_SORTCVC5_SORT_KIND_INTEGER_SORTCVC5_SORT_KIND_REAL_SORTCVC5_SORT_KIND_REGLAN_SORTCVC5_SORT_KIND_ROUNDINGMODE_SORTCVC5_SORT_KIND_SEQUENCE_SORTCVC5_SORT_KIND_SET_SORTCVC5_SORT_KIND_STRING_SORTCVC5_SORT_KIND_TUPLE_SORTCVC5_SORT_KIND_NULLABLE_SORTCVC5_SORT_KIND_UNINTERPRETED_SORTCVC5_SORT_KIND_LAST_SORT_KIND
cvc5_sort_kind_to_string()cvc5_sort_kind_hash()
- Cvc5RoundingMode
- Cvc5UnknownExplanation
Cvc5UnknownExplanationCVC5_UNKNOWN_EXPLANATION_REQUIRES_FULL_CHECKCVC5_UNKNOWN_EXPLANATION_INCOMPLETECVC5_UNKNOWN_EXPLANATION_TIMEOUTCVC5_UNKNOWN_EXPLANATION_RESOURCEOUTCVC5_UNKNOWN_EXPLANATION_MEMOUTCVC5_UNKNOWN_EXPLANATION_INTERRUPTEDCVC5_UNKNOWN_EXPLANATION_UNSUPPORTEDCVC5_UNKNOWN_EXPLANATION_OTHERCVC5_UNKNOWN_EXPLANATION_REQUIRES_CHECK_AGAINCVC5_UNKNOWN_EXPLANATION_UNKNOWN_REASONCVC5_UNKNOWN_EXPLANATION_LAST
cvc5_unknown_explanation_to_string()
- Modes
Cvc5BlockModelsModecvc5_modes_block_models_mode_to_string()Cvc5LearnedLitTypecvc5_modes_learned_lit_type_to_string()Cvc5FindSynthTargetcvc5_modes_find_synth_target_to_string()Cvc5OptionCategorycvc5_modes_option_category_to_string()Cvc5ProofComponentcvc5_modes_proof_component_to_string()Cvc5ProofFormatcvc5_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
Cvc5Stattypedef 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
Cvc5OptionInfoKindenum Cvc5RoundingMode
enums for configuration modes
enum
Cvc5BlockModelsModeenum
Cvc5LearnedLitTypeenum
Cvc5FindSynthTargetenum
Cvc5OptionCategoryenum
Cvc5ProofComponentenum
Cvc5ProofFormat
enums classes for proof rules
enum
Cvc5ProofRuleenum
Cvc5ProofRewriteRule