Expand description
§cvc5-sys
Low-level FFI bindings for the cvc5 SMT solver.
This crate provides raw C API bindings generated by bindgen from the
cvc5 C header (cvc5/c/cvc5.h). For a safe, idiomatic Rust API, see the
higher-level cvc5 crate.
§Build
cvc5 must be built from source first. Point CVC5_DIR to the cvc5 source
root (containing include/ and build/), or place a built cvc5 checkout
as a sibling cvc5/ directory.
CVC5_DIR=/path/to/cvc5 cargo build§Example
use cvc5_sys::*;
unsafe {
let tm = term_manager_new();
let slv = new(tm);
set_logic(slv, c"QF_LIA".as_ptr());
set_option(slv, c"produce-models".as_ptr(), c"true".as_ptr());
let int_sort = get_integer_sort(tm);
let x = mk_const(tm, int_sort, c"x".as_ptr());
let zero = mk_integer_int64(tm, 0);
let gt = mk_term(tm, Kind::Gt, 2, [x, zero].as_ptr());
assert_formula(slv, gt);
let result = check_sat(slv);
assert!(result_is_sat(result));
delete(slv);
term_manager_delete(tm);
}Modules§
Structs§
- Option
Info - \verbatim embed:rst:leading-asterisk
Holds information about a specific option, including its name, its
aliases, whether the option was explicitly set by the user, and information
concerning its value.
It can be obtained via :cpp:func:
cvc5_get_option_info()and allows for a more detailed inspection of options than :cpp:func:cvc5_get_option(). Union memberinfoholds any of the following alternatives: - Option
Info_ Bool Info - Information for boolean option values.
- Option
Info_ Double Info - Information for double values.
- Option
Info_ IntInfo - Information for int64 values.
- Option
Info_ Mode Info - Information for mode option values.
- Option
Info_ String Info - Information for string option values.
- Option
Info_ UInt Info - Information for uint64 values.
- Plugin
- A cvc5 plugin.
- Solver
- Term
Manager - cvc5_
dt_ cons_ decl_ t - cvc5_
dt_ cons_ t - cvc5_
dt_ decl_ t - cvc5_
dt_ sel_ t - cvc5_
dt_ t - cvc5_
grammar_ t - cvc5_
op_ t - cvc5_
proof_ t - cvc5_
result_ t - cvc5_
sort_ t - cvc5_
stat_ t - cvc5_
stats_ t - cvc5_
synth_ result_ t - cvc5_
term_ t
Enums§
- Block
Models Mode - Mode for blocking models.
- Find
Synth Target - Find synthesis targets, used as an argument to Solver::findSynth. These specify various kinds of terms that can be found by this method.
- Input
Language - The different reasons for returning an “unknown” result.
- Kind
- The kind of a cvc5 Term.
- Learned
LitType - Types of learned literals.
- Option
Category - Option category enumeration. Specifies the category of an option for user interface purposes.
- Option
Info Kind - @}
- Proof
Component - Components to include in a proof.
- Proof
Format - Proof format used for proof printing.
- Proof
Rewrite Rule - \verbatim embed:rst:leading-asterisk
This enumeration represents the rewrite rules used in a rewrite proof. Some
of the rules are internal ad-hoc rewrites, while others are rewrites
specified by the RARE DSL. This enumeration is used as the first argument to
the :cpp:enumerator:
DSL_REWRITE <cvc5::ProofRule::DSL_REWRITE>proof rule and the :cpp:enumerator:THEORY_REWRITE <cvc5::ProofRule::THEORY_REWRITE>proof rule. \endverbatim - Proof
Rule - \internal This documentation is target for the online documentation that can be found at https://cvc5.github.io/docs/latest/proofs/proof_rules.html \endinternal
- Rounding
Mode - Rounding modes for floating-point numbers.
- Skolem
Id - The kind of a cvc5 skolem. A skolem is a (family of) internal functions or constants that are introduced by cvc5. These symbols are treated as uninterpreted internally. We track their definition for the purposes of formal bookkeeping for the user of features like proofs, lemma exporting, simplification and so on.
- Sort
Kind - The kind of a cvc5 Sort.
- Unknown
Explanation - The different reasons for returning an “unknown” result.
Functions§
- add_
plugin ⚠ - Add plugin to this solver. Its callbacks will be called throughout the lifetime of this solver. @warning This function is experimental and may change in future versions. @param cvc5 The solver instance. @param plugin The plugin to add to this solver.
- add_
sygus_ ⚠assume - Add a forumla to the set of Sygus assumptions.
- add_
sygus_ ⚠constraint - Add a forumla to the set of Sygus constraints.
- add_
sygus_ ⚠inv_ constraint - Add a set of Sygus constraints to the current state that correspond to an invariant synthesis problem.
- assert_
formula ⚠ - Assert a formula.
- block_
model ⚠ - Block the current model. Can be called only if immediately preceded by a SAT or INVALID query.
- block_
model_ ⚠values - Block the current model values of (at least) the values in terms. Can be called only if immediately preceded by a SAT query.
- check_
sat ⚠ - Check satisfiability.
- check_
sat_ ⚠assuming - Check satisfiability assuming the given formulas.
- check_
synth ⚠ - Try to find a solution for the synthesis conjecture corresponding to the current list of functions-to-synthesize, universal variables and constraints.
- check_
synth_ ⚠next - Try to find a next solution for the synthesis conjecture corresponding to the current list of functions-to-synthesize, universal variables and constraints. Must be called immediately after a successful call to check-synth or check-synth-next.
- close_
output ⚠ - Close output file configured for an output tag via
cvc5_get_output(). - declare_
dt ⚠ - Create datatype sort.
- declare_
fun ⚠ - Declare n-ary function symbol.
- declare_
oracle_ ⚠fun - Declare an oracle function with reference to an implementation.
- declare_
pool ⚠ - Declare a symbolic pool of terms with the given initial value.
- declare_
sep_ ⚠heap - When using separation logic, this sets the location sort and the datatype sort to the given ones. This function should be invoked exactly once, before any separation logic constraints are provided.
- declare_
sort ⚠ - Declare uninterpreted sort.
- declare_
sygus_ ⚠var - Append \p symbol to the current list of universal variables.
- define_
fun ⚠ - Define n-ary function.
- define_
fun_ ⚠rec - Define recursive function.
- define_
fun_ ⚠rec_ from_ const - Define recursive function.
- define_
funs_ ⚠rec - Define recursive functions.
- delete⚠
- Delete a cvc5 solver instance. @param cvc5 The solver instance.
- dt_
cons_ ⚠copy - Make copy of datatype constructor, increases reference counter of
cons. - dt_
cons_ ⚠decl_ add_ selector - Add datatype selector declaration to a given constructor declaration. @param decl The datatype constructor declaration. @param name The name of the datatype selector declaration to add. @param sort The codomain sort of the datatype selector declaration to add.
- dt_
cons_ ⚠decl_ add_ selector_ self - Add datatype selector declaration whose codomain type is the datatype itself to a given constructor declaration. @param decl The datatype constructor declaration. @param name The name of the datatype selector declaration to add.
- dt_
cons_ ⚠decl_ add_ selector_ unresolved - Add datatype selector declaration whose codomain sort is an unresolved datatype with the given name to a given constructor declaration. @param decl The datatype constructor declaration. @param name The name of the datatype selector declaration to add. @param unres_name The name of the unresolved datatype. The codomain of the selector will be the resolved datatype with the given name.
- dt_
cons_ ⚠decl_ copy - Make copy of datatype constructor declaration, increases reference counter
of
decl. - dt_
cons_ ⚠decl_ hash - Compute the hash value of a datatype constructor declaration. @param decl The datatype constructor declaration. @return The hash value of the datatype constructor declaration.
- dt_
cons_ ⚠decl_ is_ equal - Compare two datatype constructor declarations for structural equality. @param a The first datatype constructor declaration. @param b The second datatype constructor declaration. @return True if the datatype constructor declarations are equal.
- dt_
cons_ ⚠decl_ release - Release copy of datatype constructor declaration, decrements reference
counter of
decl. - dt_
cons_ ⚠decl_ to_ string - Get a string representation of a given constructor declaration. @param decl The datatype constructor declaration. @return The string representation. @note The returned char* pointer is only valid until the next call to this function.
- dt_
cons_ ⚠get_ instantiated_ term - Get the constructor term of this datatype constructor whose return
type is
sort. - dt_
cons_ ⚠get_ name - Get the name of a given datatype constructor. @param cons The datatype constructor. @return The name. @note The returned char* pointer is only valid until the next call to this function.
- dt_
cons_ ⚠get_ num_ selectors - Get the number of selectors of a given datatype constructor. @param cons The datatype constructor. @return The number of selectors.
- dt_
cons_ ⚠get_ selector - Get the selector at index
iof a given datatype constructor. @param cons The datatype constructor. @param index The index of the selector. @return The i^th DatatypeSelector. - dt_
cons_ ⚠get_ selector_ by_ name - Get the datatype selector with the given name. @note This is a linear search through the selectors, so in case of multiple, similarly-named selectors, the first is returned. @param cons The datatype constructor. @param name The name of the datatype selector. @return The first datatype selector with the given name.
- dt_
cons_ ⚠get_ term - Get the constructor term of a given datatype constructor.
- dt_
cons_ ⚠get_ tester_ term - Get the tester term of a given datatype constructor.
- dt_
cons_ ⚠hash - Compute the hash value of a datatype constructor. @param cons The datatype constructor. @return The hash value of the datatype constructor.
- dt_
cons_ ⚠is_ equal - Compare two datatype constructors for structural equality. @param a The first datatype constructor. @param b The second datatype constructor. @return True if the datatype constructors are equal.
- dt_
cons_ ⚠release - Release copy of datatype constructor, decrements reference counter of
cons. - dt_
cons_ ⚠to_ string - Get a string representation of a given datatype constructor. @param cons The datatype constructor. @return The string representation. @note The returned char* pointer is only valid until the next call to this function.
- dt_copy⚠
- Make copy of datatype, increases reference counter of
dt. - dt_
decl_ ⚠add_ constructor - Add datatype constructor declaration. @param decl The datatype declaration. @param ctor The datatype constructor declaration to add.
- dt_
decl_ ⚠copy - Make copy of datatype declaration, increases reference counter of
decl. - dt_
decl_ ⚠get_ name - Get the name of a given datatype declaration. @param decl The datatype declaration. @return The name of the datatype declaration. @note The returned char* pointer is only valid until the next call to this function.
- dt_
decl_ ⚠get_ num_ constructors - Get the number of constructors for a given Datatype declaration. @param decl The datatype declaration. @return The number of constructors.
- dt_
decl_ ⚠hash - Compute the hash value of a datatype declaration. @param decl The datatype declaration. @return The hash value of the datatype declaration.
- dt_
decl_ ⚠is_ equal - Compare two datatype declarations for structural equality. @param a The first datatype declaration. @param b The second datatype declaration. @return True if the datatype declarations are equal.
- dt_
decl_ ⚠is_ parametric - Determine if a given Datatype declaration is parametric. @warning This function is experimental and may change in future versions. @param decl The datatype declaration. @return True if the datatype declaration is parametric.
- dt_
decl_ ⚠is_ resolved - Determine if a given datatype declaration is resolved (has already been used to declare a datatype). @param decl The datatype declaration. @return True if the datatype declaration is resolved.
- dt_
decl_ ⚠release - Release copy of datatype declaration, decrements reference counter of
decl. - dt_
decl_ ⚠to_ string - Get a string representation of a given datatype declaration. @param decl The datatype declaration. @return A string representation of the datatype declaration. @note The returned char* pointer is only valid until the next call to this function.
- dt_
get_ ⚠constructor - Get the datatype constructor of a given datatype at a given index. @param dt The datatype. @param idx The index of the datatype constructor to return. @return The datatype constructor with the given index.
- dt_
get_ ⚠constructor_ by_ name - Get the datatype constructor of a given datatype with the given name. @note This is a linear search through the constructors, so in case of multiple, similarly-named constructors, the first is returned. @param dt The datatype. @param name The name of the datatype constructor. @return The datatype constructor with the given name.
- dt_
get_ ⚠name - Get the name of a given datatype. @param dt The datatype. @return The name. @note The returned char* pointer is only valid until the next call to this function.
- dt_
get_ ⚠num_ constructors - Get the number of constructors of a given datatype. @param dt The datatype. @return The number of constructors.
- dt_
get_ ⚠parameters - Get the parameters of a given datatype, if it is parametric. @note Asserts that this datatype is parametric. @warning This function is experimental and may change in future versions. @param dt The datatype. @param size The size of the resulting array. @return The parameters of this datatype.
- dt_
get_ ⚠selector - Get the datatype selector of a given datatype with the given name. @note This is a linear search through the constructors and their selectors, so in case of multiple, similarly-named selectors, the first is returned. @param dt The datatype. @param name The name of the datatype selector. @return The datatype selector with the given name.
- dt_hash⚠
- Compute the hash value of a datatype. @param dt The datatype. @return The hash value of the datatype.
- dt_
is_ ⚠codatatype - Determine if a given datatype corresponds to a co-datatype. @param dt The datatype. @return True if the datatype corresponds to a co-datatype.
- dt_
is_ ⚠equal - Compare two datatypes for structural equality. @param a The first datatype. @param b The second datatype. @return True if the datatypes are equal.
- dt_
is_ ⚠finite - Determine if a given datatype is finite. @param dt The datatype. @return True if the datatype is finite.
- dt_
is_ ⚠parametric - Determine if a given datatype is parametric. @warning This function is experimental and may change in future versions. @param dt The datatype. @return True if the datatype is parametric.
- dt_
is_ ⚠record - Determine if a given datatype corresponds to a record. @warning This function is experimental and may change in future versions. @param dt The datatype. @return True if the datatype corresponds to a record.
- dt_
is_ ⚠tuple - Determine if a given datatype corresponds to a tuple. @param dt The datatype. @return True if this datatype corresponds to a tuple.
- dt_
is_ ⚠well_ founded - Determine if a given datatype is well-founded.
- dt_
release ⚠ - Release copy of datatype, decrements reference counter of
dt. - dt_
sel_ ⚠copy - Make copy of datatype selector, increases reference counter of
sel. - dt_
sel_ ⚠get_ codomain_ sort - Get the codomain sort of a given datatype selector. @param sel The datatype selector. @return The codomain sort of the selector.
- dt_
sel_ ⚠get_ name - Get the name of a given datatype selector. @param sel The datatype selector. @return The name of the Datatype selector. @note The returned char* pointer is only valid until the next call to this function.
- dt_
sel_ ⚠get_ term - Get the selector term of a given datatype selector.
- dt_
sel_ ⚠get_ updater_ term - Get the updater term of a given datatype selector.
- dt_
sel_ ⚠hash - Compute the hash value of a datatype selector. @param sel The datatype selector. @return The hash value of the datatype selector.
- dt_
sel_ ⚠is_ equal - Compare two datatype selectors for structural equality. @param a The first datatype selector. @param b The second datatype selector. @return True if the datatype selectors are equal.
- dt_
sel_ ⚠release - Release copy of datatype selector, decrements reference counter of
sel. - dt_
sel_ ⚠to_ string - Get the string representation of a given datatype selector. @param sel The datatype selector. @return The string representation. @note The returned char* pointer is only valid until the next call to this function.
- dt_
to_ ⚠string - Get a string representation of a given datatype. @return The string representation. @note The returned char* pointer is only valid until the next call to this function.
- find_
synth ⚠ - Find a target term of interest using sygus enumeration, with no provided grammar.
- find_
synth_ ⚠next - Try to find a next target term of interest using sygus enumeration. Must be called immediately after a successful call to find-synth or find-synth-next.
- find_
synth_ ⚠with_ grammar - Find a target term of interest using sygus enumeration with a provided grammar.
- get_
abduct ⚠ - Get an abduct.
- get_
abduct_ ⚠next - Get the next abduct. Can only be called immediately after a successful call to get-abduct or get-abduct-next. Is guaranteed to produce a syntactically different abduct wrt the last returned abduct if successful.
- get_
abduct_ ⚠with_ grammar - Get an abduct.
- get_
assertions ⚠ - Get the list of asserted formulas.
- get_
boolean_ ⚠sort - Get the Boolean sort. @param tm The term manager instance. @return Sort Boolean.
- get_
difficulty ⚠ - Get a difficulty estimate for an asserted formula. This function is intended to be called immediately after any response to a checkSat.
- get_
info ⚠ - Get info from the solver.
- get_
instantiations ⚠ - @warning This function is experimental and may change in future versions.
- get_
integer_ ⚠sort - Get the Integer sort. @param tm The term manager instance. @return Sort Integer.
- get_
interpolant ⚠ - Get an interpolant.
- get_
interpolant_ ⚠next - Get the next interpolant. Can only be called immediately after a successful call to get-interpolant or get-interpolant-next. Is guaranteed to produce a syntactically different interpolant wrt the last returned interpolant if successful.
- get_
interpolant_ ⚠with_ grammar - Get an interpolant
- get_
learned_ ⚠literals - Get a list of learned literals that are entailed by the current set of assertions.
- get_
logic ⚠ - Get the logic set the solver. @note Asserts `cvc5_is_logic_set()1. @return The logic used by the solver. @note The returned char* pointer is only valid until the next call to this function.
- get_
model ⚠ - Get the model
- get_
model_ ⚠domain_ elements - Get the domain elements of uninterpreted sort s in the current model. The current model interprets s as the finite sort whose domain elements are given in the return value of this function.
- get_
num_ ⚠idxs_ for_ skolem_ id - Get the number of indices for a skolem id. @param tm The term manager instance. @param id The skolem id. @return The number of indices for the skolem id.
- get_
option ⚠ - Get the value of a given option.
- get_
option_ ⚠info - Get some information about a given option. See struct Cvc5OptionInfo for more details on which information is available. @param cvc5 The solver instance. @param option The option for which the info is queried. @param info The output parameter for the queried info. @note The returned Cvc5OptionInfo data is only valid until the next call to this function.
- get_
option_ ⚠names - Get all option names that can be used with
cvc5_set_option(),cvc5_get_option()andcvc5_get_option_info(). @param cvc5 The solver instance. @param size The size of the resulting option names array. @return All option names. @note The returned char* pointer is only valid until the next call to this function. - get_
output ⚠ - Configure a file to write the output for a given tag.
- get_
proof ⚠ - Get a proof associated with the most recent call to checkSat.
- get_
quantifier_ ⚠elimination - Do quantifier elimination.
- get_
quantifier_ ⚠elimination_ disjunct - Do partial quantifier elimination, which can be used for incrementally computing the result of a quantifier elimination.
- get_
real_ ⚠sort - Get the Real sort. @param tm The term manager instance. @return Sort Real.
- get_
regexp_ ⚠sort - Get the regular expression sort. @param tm The term manager instance. @return Sort RegExp.
- get_
rm_ ⚠sort - Get the rounding mode sort. @param tm The term manager instance. @return The rounding mode sort.
- get_
statistics ⚠ - Get a snapshot of the current state of the statistic values of this solver. The returned object is completely decoupled from the solver and will not change when the solver is used again. @param cvc5 The solver instance. @return A snapshot of the current state of the statistic values.
- get_
string_ ⚠sort - Get the string sort. @param tm The term manager instance. @return Sort String.
- get_
sygus_ ⚠assumptions - Get the list of sygus assumptions.
- get_
sygus_ ⚠constraints - Get the list of sygus constraints.
- get_
synth_ ⚠solution - Get the synthesis solution of the given term. This function should be called immediately after the solver answers unsat for sygus input. @param cvc5 The solver instance. @param term The term for which the synthesis solution is queried. @return The synthesis solution of the given term.
- get_
synth_ ⚠solutions - Get the synthesis solutions of the given terms. This function should be called immediately after the solver answers unsat for sygus input. @param cvc5 The solver instance. @param size The size of the terms array. @param terms The terms for which the synthesis solutions is queried. @return The synthesis solutions of the given terms.
- get_
timeout_ ⚠core - Get a timeout core.
- get_
timeout_ ⚠core_ assuming - Get a timeout core of the given assumptions.
- get_tm⚠
- Get the associated term manager of a cvc5 solver instance. @param cvc5 The solver instance. @return The term manager.
- get_
unsat_ ⚠assumptions - Get the set of unsat (“failed”) assumptions.
- get_
unsat_ ⚠core - Get the unsatisfiable core.
- get_
unsat_ ⚠core_ lemmas - Get the lemmas used to derive unsatisfiability.
- get_
value ⚠ - Get the value of the given term in the current model.
- get_
value_ ⚠sep_ heap - When using separation logic, obtain the term for the heap.
- get_
value_ ⚠sep_ nil - When using separation logic, obtain the term for nil.
- get_
values ⚠ - Get the values of the given terms in the current model.
- get_
version ⚠ - Get a string representation of the version of this solver. @param cvc5 The solver instance. @return The version string. @note The returned char* pointer is only valid until the next call to this function.
- grammar_
add_ ⚠any_ constant - Allow
symbolto be an arbitrary constant of a given grammar. @param grammar The grammar. @param symbol The non-terminal allowed to be any constant. - grammar_
add_ ⚠any_ variable - Allow
symbolto be any input variable of a given grammar to corresponding synth-fun/synth-inv with the same sort assymbol. @param grammar The grammar. @param symbol The non-terminal allowed to be any input variable. - grammar_
add_ ⚠rule - Add
ruleto the set of rules corresponding tosymbolof a given grammar. @param grammar The grammar. @param symbol The non-terminal to which the rule is added. @param rule The rule to add. - grammar_
add_ ⚠rules - Add
rulesto the set of rules corresponding tosymbolof a given grammar. @param grammar The grammar. @param symbol The non-terminal to which the rules are added. @param size The number of rules to add. @param rules The rules to add. - grammar_
copy ⚠ - Make copy of grammar, increases reference counter of
grammar. - grammar_
hash ⚠ - Compute the hash value of a grammar. @param grammar The grammar. @return The hash value of the grammar.
- grammar_
is_ ⚠disequal - Compare two grammars for referential disequality. @param a The first grammar. @param b The second grammar. @return True if both grammar pointers point to different internal grammar objects.
- grammar_
is_ ⚠equal - Compare two grammars for referential equality. @param a The first grammar. @param b The second grammar. @return True if both grammar pointers point to the same internal grammar object.
- grammar_
release ⚠ - Release copy of grammar, decrements reference counter of
grammar. - grammar_
to_ ⚠string - Get a string representation of a given grammar. @param grammar The grammar. @return A string representation of the grammar. @note The returned char* pointer is only valid until the next call to this function.
- is_
logic_ ⚠set - Determine if
cvc5_set_logic()has been called. - is_
model_ ⚠core_ symbol - Determine if the model value of the given free constant was essential for
showing satisfiability of the last
cvc5_check_sat()query based on the current model. - is_
output_ ⚠on - Determines if the output stream for the given tag is enabled. Tags can be
enabled with the
outputoption (and-o <tag>on the command line). - kind_
hash ⚠ - Hash function for Cvc5Kinds. @param kind The kind. @return The hash value.
- kind_
to_ ⚠string - Get a string representation of a Cvc5Kind. @param kind The kind. @return The string representation.
- mk_
abstract_ ⚠sort - Create an abstract sort. An abstract sort represents a sort for a given kind whose parameters and arguments are unspecified.
- mk_
array_ ⚠sort - Create an array sort. @param tm The term manager instance. @param index The array index sort. @param elem The array element sort. @return The array sort.
- mk_
bag_ ⚠sort - Create a bag sort. @param tm The term manager instance. @param sort The sort of the bag elements. @return The bag sort.
- mk_
boolean ⚠ - Create a Boolean constant. @param tm The term manager instance. @return The Boolean constant. @param val The value of the constant.
- mk_bv⚠
- Create a bit-vector constant of a given bit-width from a given string of base 2, 10 or 16.
- mk_
bv_ ⚠sort - Create a bit-vector sort. @param tm The term manager instance. @param size The bit-width of the bit-vector sort. @return The bit-vector sort.
- mk_
bv_ ⚠uint64 - Create a bit-vector constant of given size and value.
- mk_
cardinality_ ⚠constraint - Create a cardinality constraint for an uninterpreted sort.
- mk_
const ⚠ - Create a free constant.
- mk_
const_ ⚠array - Create a constant array with the provided constant value stored at every index. @param tm The term manager instance. @param sort The sort of the constant array (must be an array sort). @param val The constant value to store (must match the sort’s element sort). @return The constant array term.
- mk_
dt_ ⚠cons_ decl - Create a datatype constructor declaration. @param tm The term manager instance. @param name The name of the datatype constructor. @return The DatatypeConstructorDecl.
- mk_
dt_ ⚠decl - Create a datatype declaration. @param tm The term manager instance. @param name The name of the datatype. @param is_codt True if a codatatype is to be constructed. @return The Cvc5DatatypeDecl.
- mk_
dt_ ⚠decl_ with_ params - Create a datatype declaration.
Create sorts parameter with
cvc5_mk_param_sort(). - mk_
dt_ ⚠sort - Create a datatype sort. @param tm The term manager instance. @param decl The datatype declaration from which the sort is created. @return The datatype sort.
- mk_
dt_ ⚠sorts - Create a vector of datatype sorts. @note The names of the datatype declarations must be distinct. @param tm The term manager instance. @param size The number of datatype declarations. @param decls The datatype declarations from which the sort is created. @return The datatype sorts.
- mk_
empty_ ⚠bag - Create a constant representing an empty bag of the given sort. @param tm The term manager instance. @param sort The sort of the bag elements. @return The empty bag constant.
- mk_
empty_ ⚠sequence - Create an empty sequence of the given element sort. @param tm The term manager instance. @param sort The element sort of the sequence. @return The empty sequence with given element sort.
- mk_
empty_ ⚠set - Create a constant representing an empty set of the given sort. @param tm The term manager instance. @param sort The sort of the set elements. @return The empty set constant.
- mk_
false ⚠ - Create a Boolean false constant. @param tm The term manager instance. @return The false constant.
- mk_
ff_ ⚠elem - Create a finite field constant in a given field from a given string of base n.
- mk_
ff_ ⚠sort - Create a finite-field sort from a given string of base n.
- mk_fp⚠
- Create a floating-point value from a bit-vector given in IEEE-754 format. @param tm The term manager instance. @param exp Size of the exponent. @param sig Size of the significand. @param val Value of the floating-point constant as a bit-vector term. @return The floating-point value.
- mk_
fp_ ⚠from_ ieee - Create a floating-point value from its three IEEE-754 bit-vector value components (sign bit, exponent, significand). @param tm The term manager instance. @param sign The sign bit. @param exp The bit-vector representing the exponent. @param sig The bit-vector representing the significand. @return The floating-point value.
- mk_
fp_ ⚠nan - Create a not-a-number floating-point constant (Cvc5TermManager* tm, SMT-LIB:
NaN). @param tm The term manager instance. @param exp Number of bits in the exponent. @param sig Number of bits in the significand. @return The floating-point constant. - mk_
fp_ ⚠neg_ inf - Create a negative infinity floating-point constant (SMT-LIB:
-oo). @param tm The term manager instance. @param exp Number of bits in the exponent. @param sig Number of bits in the significand. @return The floating-point constant. - mk_
fp_ ⚠neg_ zero - Create a negative zero floating-point constant (Cvc5TermManager* tm, SMT-LIB: -zero). @param tm The term manager instance. @param exp Number of bits in the exponent. @param sig Number of bits in the significand. @return The floating-point constant.
- mk_
fp_ ⚠pos_ inf - Create a positive infinity floating-point constant (SMT-LIB:
+oo). @param tm The term manager instance. @param exp Number of bits in the exponent. @param sig Number of bits in the significand. @return The floating-point constant. - mk_
fp_ ⚠pos_ zero - Create a positive zero floating-point constant (Cvc5TermManager* tm, SMT-LIB: +zero). @param tm The term manager instance. @param exp Number of bits in the exponent. @param sig Number of bits in the significand. @return The floating-point constant.
- mk_
fp_ ⚠sort - Create a floating-point sort. @param tm The term manager instance. @param exp The bit-width of the exponent of the floating-point sort. @param sig The bit-width of the significand of the floating-point sort.
- mk_
fun_ ⚠sort - Create function sort. @param tm The term manager instance. @param size The number of domain sorts. @param sorts The sort of the function arguments (the domain sorts). @param codomain The sort of the function return value. @return The function sort.
- mk_
grammar ⚠ - Create a Sygus grammar. The first non-terminal is treated as the starting non-terminal, so the order of non-terminals matters.
- mk_
integer ⚠ - Create an integer constant from a string.
@param tm The term manager instance.
@param s The string representation of the constant, may represent an
integer (e.g., “123”).
@return A constant of sort Integer assuming
srepresents an integer) - mk_
integer_ ⚠int64 - Create an integer constant from a c++ int. @param tm The term manager instance. @param val The value of the constant. @return A constant of sort Integer.
- mk_
nullable_ ⚠is_ null - Create a null tester for a nullable term. @param tm The term manager instance. @param term A nullable term. @return A tester whether term is null.
- mk_
nullable_ ⚠is_ some - Create a some tester for a nullable term. @param tm The term manager instance. @param term A nullable term. @return A tester whether term is some.
- mk_
nullable_ ⚠lift - Create a term that lifts kind to nullable terms.
- mk_
nullable_ ⚠null - Create a constant representing an null of the given sort. @param tm The term manager instance. @param sort The sort of the Nullable element. @return The null constant.
- mk_
nullable_ ⚠some - Create a nullable some term. @param tm The term manager instance. @param term The element value. @return the Element value wrapped in some constructor.
- mk_
nullable_ ⚠sort - Create a nullable sort. @param tm The term manager instance. @param sort The sort of the element of the nullable. @return The nullable sort.
- mk_
nullable_ ⚠val - Create a selector for nullable term. @param tm The term manager instance. @param term A nullable term. @return The element value of the nullable term.
- mk_op⚠
- Create operator of Kind:
- mk_
op_ ⚠from_ str - Create operator of kind:
- mk_
param_ ⚠sort - Create a sort parameter. @warning This function is experimental and may change in future versions. @param tm The term manager instance. @param symbol The name of the sort, may be NULL. @return The sort parameter.
- mk_pi⚠
- Create a constant representing the number Pi. @param tm The term manager instance. @return A constant representing Pi.
- mk_
predicate_ ⚠sort - Create a predicate sort. @note This is equivalent to calling mkFunctionSort() with the Boolean sort as the codomain. @param tm The term manager instance. @param size The number of sorts. @param sorts The list of sorts of the predicate. @return The predicate sort.
- mk_real⚠
- Create a real constant from a string. @param tm The term manager instance. @param s The string representation of the constant, may represent an integer (e.g., “123”) or real constant (e.g., “12.34” or “12/34”). @return A constant of sort Real.
- mk_
real_ ⚠int64 - Create a real constant from an integer. @param tm The term manager instance. @param val The value of the constant. @return A constant of sort Integer.
- mk_
real_ ⚠num_ den - Create a real constant from a rational. @param tm The term manager instance. @param num The value of the numerator. @param den The value of the denominator. @return A constant of sort Real.
- mk_
record_ ⚠sort - Create a record sort @warning This function is experimental and may change in future versions. @param tm The term manager instance. @param size The number of fields of the record. @param names The names of the fields of the record. @param sorts The sorts of the fields of the record. @return The record sort.
- mk_
regexp_ ⚠all - Create a regular expression all (re.all) term. @param tm The term manager instance. @return The all term.
- mk_
regexp_ ⚠allchar - Create a regular expression allchar (re.allchar) term. @param tm The term manager instance. @return The allchar term.
- mk_
regexp_ ⚠none - Create a regular expression none (re.none) term. @param tm The term manager instance. @return The none term.
- mk_rm⚠
- Create a rounding mode value. @param tm The term manager instance. @param rm The floating point rounding mode this constant represents. @return The rounding mode value.
- mk_
sep_ ⚠emp - Create a separation logic empty term.
- mk_
sep_ ⚠nil - Create a separation logic nil term.
- mk_
sequence_ ⚠sort - Create a sequence sort. @param tm The term manager instance. @param sort The sort of the sequence elements. @return The sequence sort.
- mk_
set_ ⚠sort - Create a set sort. @param tm The term manager instance. @param sort The sort of the set elements. @return The set sort.
- mk_
skolem ⚠ - Create a skolem. @param tm The term manager instance. @param id The skolem identifier. @param size The number of arguments of the lifted operator. @param indices The indices of the skolem. @return The skolem.
- mk_
string ⚠ - Create a String constant from a regular character string which may contain
SMT-LIB compatible escape sequences like
\u1234to encode unicode characters. @param tm The term manager instance. @param s The string this constant represents. @param use_esc_seq Determines whether escape sequences insshould. be converted to the corresponding unicode character @return The String constant. - mk_
string_ ⚠from_ char32 - Create a String constant from a UTF-32 string. This function does not support escape sequences as wide character already supports unicode characters. @param tm The term manager instance. @param s The UTF-32 string this constant represents. @return The String constant.
- mk_
string_ ⚠from_ wchar - Create a String constant from a wide character string. This function does not support escape sequences as wide character already supports unicode characters. @param tm The term manager instance. @param s The string this constant represents. @return The String constant.
- mk_term⚠
- Create n-ary term of given kind. @param tm The term manager instance. @param kind The kind of the term. @param size The number of childrens. @param children The children of the term. @return The Term
- mk_
term_ ⚠from_ op - Create n-ary term of given kind from a given operator.
Create operators with
cvc5_mk_op()andcvc5_mk_op_from_str(). @param tm The term manager instance. @param op The operator. @param size The number of children. @param children The children of the term. @return The Term. - mk_true⚠
- Create a Boolean true constant. @param tm The term manager instance. @return The true constant.
- mk_
tuple ⚠ - Create a tuple term. @param tm The term manager instance. @param size The number of elements in the tuple. @param terms The elements. @return The tuple Term.
- mk_
tuple_ ⚠sort - Create a tuple sort. @param tm The term manager instance. @param size The number of sorts. @param sorts The sorts of f the elements of the tuple. @return The tuple sort.
- mk_
uninterpreted_ ⚠sort - Create an uninterpreted sort. @param tm The term manager instance. @param symbol The name of the sort, may be NULL. @return The uninterpreted sort.
- mk_
uninterpreted_ ⚠sort_ constructor_ sort - Create an uninterpreted sort constructor sort.
- mk_
universe_ ⚠set - Create a universe set of the given sort. @param tm The term manager instance. @param sort The sort of the set elements. @return The universe set constant.
- mk_
unresolved_ ⚠dt_ sort - Create an unresolved datatype sort.
- mk_var⚠
- Create a bound variable to be used in a binder (i.e., a quantifier, a lambda, or a witness binder). @param tm The term manager instance. @param sort The sort of the variable. @param symbol The name of the variable, may be NULL. @return The variable.
- modes_
block_ ⚠models_ mode_ to_ string - Get a string representation of a Cvc5BlockModelsMode. @param mode The mode. @return The string representation.
- modes_
find_ ⚠synth_ target_ to_ string - Get a string representation of a Cvc5FindSynthTarget. @param target The synthesis find target. @return The string representation.
- modes_
input_ ⚠language_ to_ string - Get a string representation of a Cvc5InputLanguage. @param lang The input language. @return The string representation.
- modes_
learned_ ⚠lit_ type_ to_ string - Get a string representation of a Cvc5LearnedLitType. @param type The learned literal type. @return The string representation.
- modes_
option_ ⚠category_ to_ string - Get a string representation of a Cvc5OptionCategory. @param cat The option category. @return The string representation.
- modes_
proof_ ⚠component_ to_ string - Get a string representation of a Cvc5ProofComponent. @param pc The proof component. @return The string representation.
- modes_
proof_ ⚠format_ to_ string - Get a string representation of a Cvc5ProofFormat. @param format The proof format. @return The string representation.
- new⚠
- Construct a new instance of a cvc5 solver. @param tm The associated term manager instance. @return The cvc5 solver instance.
- op_copy⚠
- Make copy of operator, increases reference counter of
op. - op_
get_ ⚠index - Get the index at position
iof an indexed operator. @param op The operator. @param i The position of the index to return. @return The index at position i. - op_
get_ ⚠kind - Get the kind of a given operator. @param op The operator. @return The kind of the operator.
- op_
get_ ⚠num_ indices - Get the number of indices of a given operator. @param op The operator. @return The number of indices of the operator.
- op_hash⚠
- Compute the hash value of an operator. @param op The operator. @return The hash value of the operator.
- op_
is_ ⚠disequal - Compare two operators for syntactic disequality.
- op_
is_ ⚠equal - Compare two operators for syntactic equality.
- op_
is_ ⚠indexed - Determine if a given operator is indexed. @param op The operator. @return True iff the operator is indexed.
- op_
release ⚠ - Release copy of operator, decrements reference counter of
op. - op_
to_ ⚠string - Get a string representation of a given operator. @param op The operator. @return A string representation of the operator. @note The returned char* pointer is only valid until the next call to this function.
- option_
info_ ⚠to_ string - Get a string representation of a given option info. @param info The option info. @return The string representation. @note The returned char* pointer is only valid until the next call to this function.
- pop⚠
- Pop (a) level(s) from the assertion stack.
- print_
stats_ ⚠safe - Print the statistics to the given file descriptor, suitable for usage in signal handlers. @param cvc5 The solver instance. @param fd The file descriptor.
- proof_
copy ⚠ - Make copy of proof, increases reference counter of
proof. - proof_
get_ ⚠arguments - Get the arguments of the root step of a given proof. @param proof The proof. @param size Output parameter to store the number of resulting argument terms. @return The argument terms.
- proof_
get_ ⚠children - Get the premises of the root step of a given proof. @param proof The proof. @param size Output parameter to store the number of resulting premise proofs. @return The premise proofs. @note The returned Cvc5Proof array pointer is only valid until the next call to this function.
- proof_
get_ ⚠result - Get the conclusion of the root step of a given proof. @param proof The proof. @return The conclusion term.
- proof_
get_ ⚠rewrite_ rule - Get the proof rewrite rule used by the root step of the proof.
- proof_
get_ ⚠rule - Get the proof rule used by the root step of a given proof. @return The proof rule.
- proof_
hash ⚠ - Compute the hash value of a proof. @param proof The proof. @return The hash value of the proof.
- proof_
is_ ⚠disequal - Compare two proofs for referential disequality. @param a The first proof. @param b The second proof. @return True if both proof pointers point to different internal proof objects.
- proof_
is_ ⚠equal - Compare two proofs for referential equality. @param a The first proof. @param b The second proof. @return True if both proof pointers point to the same internal proof object.
- proof_
release ⚠ - Release copy of proof, decrements reference counter of
proof. - proof_
rewrite_ ⚠rule_ hash - Hash function for Cvc5ProofRewriteRule. @param rule The proof rewrite rule. @return The hash value.
- proof_
rewrite_ ⚠rule_ to_ string - Get a string representation of a Cvc5ProofRewriteRule. @param rule The proof rewrite rule. @return The string representation.
- proof_
rule_ ⚠hash - Hash function for Cvc5ProofRule. @param rule The proof rule. @return The hash value.
- proof_
rule_ ⚠to_ string - Get a string representation of a Cvc5ProofRule. @param rule The proof rule. @return The string representation.
- proof_
to_ ⚠string - Prints a proof as a string in a selected proof format mode. Other aspects of printing are taken from the solver options.
- push⚠
- Push (a) level(s) to the assertion stack.
- reset_
assertions ⚠ - Remove all assertions.
- result_
copy ⚠ - Make copy of result, increases reference counter of
result. - result_
get_ ⚠unknown_ explanation - Get the explanation for an unknown result. @param result The result. @return An explanation for an unknown query result.
- result_
hash ⚠ - Compute the hash value of a result. @param result The result. @return The hash value of the result.
- result_
is_ ⚠disequal - Operator overloading for disequality of two results. @param a The first result to compare to for disequality. @param b The second result to compare to for disequality. @return True if the results are disequal.
- result_
is_ ⚠equal - Determine equality of two results. @param a The first result to compare to for equality. @param b The second result to compare to for equality. @return True if the results are equal.
- result_
is_ ⚠null - Determine if a given result is empty (a nullary result) and not an actual
result returned from a
cvc5_check_sat()(and friends) query. @param result The result. @return True if the given result is a nullary result. - result_
is_ ⚠sat - Determine if given result is from a satisfiable
cvc5_check_sat()or cvc5_check_sat_ssuming() query. @param result The result. @return True if result is from a satisfiable query. - result_
is_ ⚠unknown - Determine if given result is from a
cvc5_check_sat()or cvc5_check_sat_assuming() query and cvc5 was not able to determine (un)satisfiability. @param result The result. @return True if result is from a query where cvc5 was not able to determine (un)satisfiability. - result_
is_ ⚠unsat - Determine if given result is from an unsatisfiable
cvc5_check_sat()or cvc5_check_sat_assuming() query. @param result The result. @return True if result is from an unsatisfiable query. - result_
release ⚠ - Release copy of result, decrements reference counter of
result. - result_
to_ ⚠string - Get the string representation of a given result. @param result The result. @return The string representation. @note The returned char* pointer is only valid until the next call to this function.
- rm_
to_ ⚠string - Get a string representation of a Cvc5RoundingMode. @param rm The rounding mode. @return The string representation.
- set_
info ⚠ - Set info.
- set_
logic ⚠ - Set logic.
- set_
option ⚠ - Set option.
- simplify⚠
- Simplify a formula without doing “much” work.
- skolem_
id_ ⚠hash - Hash function for Cvc5SkolemId. @param id The skolem id. @return The hash value.
- skolem_
id_ ⚠to_ string - Get a string representation of a Cvc5SkolemId. @param id The skolem id. @return The string representation.
- sort_
abstract_ ⚠get_ kind - Get the kind of an abstract sort, which denotes the sort kinds that the abstract sort denotes.
- sort_
array_ ⚠get_ element_ sort - Get the element sort of a given array sort. @param sort The sort. @return The array element sort of an array sort.
- sort_
array_ ⚠get_ index_ sort - Get the index sort of a given array sort. @param sort The sort. @return The array index sort of an array sort.
- sort_
bag_ ⚠get_ element_ sort - Get the element sort of a given bag sort. @param sort The sort. @return The element sort of a bag sort.
- sort_
bv_ ⚠get_ size - Get the size of a bit-vector sort. @param sort The sort. @return The bit-width of the bit-vector sort.
- sort_
compare ⚠ - Compare two sorts for ordering.
@param a The first sort.
@param b The second sort.
@return An integer value indicating the ordering: 0 if both sorts are equal,
-1ifa < b, and1ifb > a. - sort_
copy ⚠ - Make copy of sort, increases reference counter of
sort. - sort_
dt_ ⚠constructor_ get_ arity - Get the arity of a datatype constructor sort. @param sort The sort. @return The arity of a datatype constructor sort.
- sort_
dt_ ⚠constructor_ get_ codomain - Get the codomain sort of a datatype constructor sort. @param sort The sort. @return The codomain sort of a constructor sort.
- sort_
dt_ ⚠constructor_ get_ domain - Get the domain sorts of a datatype constructor sort. @param sort The sort. @param size The size of the resulting array of domain sorts. @return The domain sorts of a datatype constructor sort.
- sort_
dt_ ⚠get_ arity - Get the arity of a datatype sort, which is the number of type parameters if the datatype is parametric, or 0 otherwise. @param sort The sort. @return The arity of a datatype sort.
- sort_
dt_ ⚠selector_ get_ codomain - Get the codomain sort of a given datatype selector sort. @param sort The sort. @return The codomain sort of a datatype selector sort.
- sort_
dt_ ⚠selector_ get_ domain - Get the domain sort of a given datatype selector sort. @param sort The sort. @return The domain sort of a datatype selector sort.
- sort_
dt_ ⚠tester_ get_ codomain - Get the codomain dort of a given datatype tester sort (the Boolean sort). @param sort The sort. @return The codomain sort of a datatype tester sort.
- sort_
dt_ ⚠tester_ get_ domain - Get the domain sort of a given datatype tester sort. @param sort The sort. @return The domain sort of a datatype tester sort.
- sort_
ff_ ⚠get_ size - Get the size of a finite field sort. @param sort The sort. @return The size of the finite field sort. @note The returned char* pointer is only valid until the next call to this function.
- sort_
fp_ ⚠get_ exp_ size - Get the exponent size of a floating-point sort. @param sort The sort. @return The bit-width of the exponent of the floating-point sort.
- sort_
fp_ ⚠get_ sig_ size - Get the significand size of a floating-point sort. @param sort The sort. @return The width of the significand of the floating-point sort.
- sort_
fun_ ⚠get_ arity - Get the aritye of a given function sort. @param sort The sort. @return The arity of a function sort.
- sort_
fun_ ⚠get_ codomain - Get the codomain of a given function sort. @param sort The sort. @return The codomain sort of a function sort.
- sort_
fun_ ⚠get_ domain - Get the domain of a given function sort. @param sort The sort. @param size The size of the resulting array of domain sorts. @return The domain sorts of a function sort.
- sort_
get_ ⚠datatype - Get the underlying datatype of a datatype sort. @param sort The sort. @return The underlying datatype of a datatype sort.
- sort_
get_ ⚠instantiated_ parameters - Get the sorts used to instantiate the sort parameters of a given parametric sort (parametric datatype or uninterpreted sort constructor sort, see cvc5_sort_instantiate();
- sort_
get_ ⚠kind - Get the kind of the given sort. @param sort The sort. @return The kind of the sort.
- sort_
get_ ⚠symbol - Get the symbol of this Sort.
- sort_
get_ ⚠uninterpreted_ sort_ constructor - Get the associated uninterpreted sort constructor of an instantiated uninterpreted sort.
- sort_
has_ ⚠symbol - Determine if the given sort has a symbol (a name).
- sort_
hash ⚠ - Compute the hash value of a sort. @param sort The sort. @return The hash value of the sort.
- sort_
instantiate ⚠ - Instantiate a parameterized datatype sort or uninterpreted sort constructor sort.
- sort_
is_ ⚠abstract - Determine if given sort is an abstract sort. @param sort The sort. @return True if the sort is a abstract sort.
- sort_
is_ ⚠array - Determine if given sort is an array sort. @param sort The sort. @return True if the sort is an array sort.
- sort_
is_ ⚠bag - Determine if given sort is a Bag sort. @param sort The sort. @return True if the sort is a Bag sort.
- sort_
is_ ⚠boolean - Determine if given sort is the Boolean sort (SMT-LIB:
Bool). @param sort The sort. @return True if given sort is the Boolean sort. - sort_
is_ ⚠bv - Determine if given sort is a bit-vector sort (SMT-LIB:
(_ BitVec i)). @param sort The sort. @return True if given sort is a bit-vector sort. - sort_
is_ ⚠disequal - Compare two sorts for structural disequality. @param a The first sort. @param b The second sort. @return True if the sorts are not equal.
- sort_
is_ ⚠dt - Determine if given sort is a datatype sort. @param sort The sort. @return True if given sort is a datatype sort.
- sort_
is_ ⚠dt_ constructor - Determine if given sort is a datatype constructor sort. @param sort The sort. @return True if given sort is a datatype constructor sort.
- sort_
is_ ⚠dt_ selector - Determine if given sort is a datatype selector sort. @param sort The sort. @return True if given sort is a datatype selector sort.
- sort_
is_ ⚠dt_ tester - Determine if given sort is a datatype tester sort. @param sort The sort. @return True if given sort is a datatype tester sort.
- sort_
is_ ⚠dt_ updater - Determine if given sort is a datatype updater sort. @param sort The sort. @return True if given sort is a datatype updater sort.
- sort_
is_ ⚠equal - Compare two sorts for structural equality. @param a The first sort. @param b The second sort. @return True if the sorts are equal.
- sort_
is_ ⚠ff - Determine if given sort is a finite field sort. @param sort The sort. @return True if the sort is a finite field sort.
- sort_
is_ ⚠fp - Determine if given sort is a floatingpoint sort
(SMT-LIB:
(_ FloatingPoint eb sb)). @param sort The sort. @return True if given sort is a floating-point sort. - sort_
is_ ⚠fun - Determine if given sort is a function sort. @param sort The sort. @return True if given sort is a function sort.
- sort_
is_ ⚠instantiated - Determine if given sort is an instantiated (parametric datatype or uninterpreted sort constructor) sort.
- sort_
is_ ⚠integer - Determine if given sort is the integer sort (SMT-LIB:
Int). @param sort The sort. @return True if given sort is the integer sort. - sort_
is_ ⚠nullable - Determine if given sort is a nullable sort. @param sort The sort. @return True if given sort is a nullable sort.
- sort_
is_ ⚠predicate - Determine if given sort is a predicate sort.
- sort_
is_ ⚠real - Determine if given sort is the real sort (SMT-LIB:
Real). @param sort The sort. @return True if given sort is the real sort. - sort_
is_ ⚠record - Determine if given sort is a record sort. @warning This function is experimental and may change in future versions. @param sort The sort. @return True if the sort is a record sort.
- sort_
is_ ⚠regexp - Determine if given sort is the regular expression sort (SMT-LIB:
RegLan). @param sort The sort. @return True if given sort is the regular expression sort. - sort_
is_ ⚠rm - Determine if given sort is the rounding mode sort
(SMT-LIB:
Cvc5RoundingMode). @param sort The sort. @return True if given sort is the rounding mode sort. - sort_
is_ ⚠sequence - Determine if given sort is a Sequence sort. @param sort The sort. @return True if the sort is a Sequence sort.
- sort_
is_ ⚠set - Determine if given sort is a Set sort. @param sort The sort. @return True if the sort is a Set sort.
- sort_
is_ ⚠string - Determine if given sort is the string sort (SMT-LIB:
String). @param sort The sort. @return True if given sort is the string sort. - sort_
is_ ⚠tuple - Determine if given sort is a tuple sort. @param sort The sort. @return True if given sort is a tuple sort.
- sort_
is_ ⚠uninterpreted_ sort - Determine if given sort is an uninterpreted sort. @param sort The sort. @return True if given sort is an uninterpreted sort.
- sort_
is_ ⚠uninterpreted_ sort_ constructor - Determine if given sort is an uninterpreted sort constructor.
- sort_
kind_ ⚠hash - Hash function for Cvc5SortKinds. @param kind The kind. @return The hash value.
- sort_
kind_ ⚠to_ string - Get a string representation of a Cvc5SortKind. @param kind The sort kind. @return The string representation.
- sort_
nullable_ ⚠get_ element_ sort - Get the element sort of a nullable sort. @param sort The sort. @return The element sort of a nullable sort.
- sort_
release ⚠ - Release copy of sort, decrements reference counter of
sort. - sort_
sequence_ ⚠get_ element_ sort - Get the element sort of a sequence sort. @param sort The sort. @return The element sort of a sequence sort.
- sort_
set_ ⚠get_ element_ sort - Get the element sort of a given set sort. @param sort The sort. @return The element sort of a set sort.
- sort_
substitute ⚠ - Substitution of Sorts.
- sort_
substitute_ ⚠sorts - Simultaneous substitution of Sorts.
- sort_
to_ ⚠string - Get a string representation of a given sort. @param sort The sort. @return A string representation of the given sort. @note The returned char* pointer is only valid until the next call to this function.
- sort_
tuple_ ⚠get_ element_ sorts - Get the element sorts of a tuple sort. @param sort The sort. @param size The size of the resulting array of tuple element sorts. @return The element sorts of a tuple sort.
- sort_
tuple_ ⚠get_ length - Get the length of a tuple sort. @param sort The sort. @return The length of a tuple sort.
- sort_
uninterpreted_ ⚠sort_ constructor_ get_ arity - Get the arity of an uninterpreted sort constructor sort. @param sort The sort. @return The arity of an uninterpreted sort constructor sort.
- stat_
get_ ⚠double - Get the value of a double statistic. @param stat The statistic. @return The double value.
- stat_
get_ ⚠histogram - Get the value of a histogram statistic.
@param stat The statistic.
@param keys The resulting arrays with the keys of the statistic, map to the
values given in the resulting
valuesarray.. @param values The resulting arrays with the values of the statistic. @param size The size of the resulting keys/values arrays. - stat_
get_ ⚠int - Get the value of an integer statistic. @param stat The statistic. @return The integer value.
- stat_
get_ ⚠string - Get value of a string statistic. @param stat The statistic. @return The string value. @note The returned char pointer is only valid until the next call to this function.
- stat_
is_ ⚠default - Determine if a given statistics statistic holds the default value. @param stat The statistic. @return True if this is a defaulted statistic.
- stat_
is_ ⚠double - Determine if a given statistic holds a double value. @param stat The statistic. @return True if this value is a double.
- stat_
is_ ⚠histogram - Determine if a given statistic holds a histogram. @param stat The statistic. @return True if this value is a histogram.
- stat_
is_ ⚠int - Determine if a given statistic holds an integer value. @param stat The statistic. @return True if this value is an integer.
- stat_
is_ ⚠internal - Determine if a given statistic is intended for internal use only. @param stat The statistic. @return True if this is an internal statistic.
- stat_
is_ ⚠string - Determine if a given statistic holds a string value. @param stat The statistic. @return True if this value is a string.
- stat_
to_ ⚠string - Get a string representation of a given statistic. @param stat The statistic. @return The string representation. @note The returned char* pointer is only valid until the next call to this function.
- stats_
get ⚠ - Retrieve the statistic with the given name. @note Requires that a statistic with the given name actually exists. @param stat The statistics. @param name The name of the statistic. @return The statistic with the given name.
- stats_
iter_ ⚠has_ next - Determine if statistics iterator has more statitics to query.
@note Requires that iterator was initialized with
cvc5_stats_iter_init(). @param stat The statistics. @return True if the iterator has more statistics to query. - stats_
iter_ ⚠init - Initialize iteration over the statistics values. By default, only entries that are public and have been set are visible while the others are skipped. @param stat The statistics. @param internal If set to true, internal statistics are shown as well. @param dflt If set to true, defaulted statistics are shown as well.
- stats_
iter_ ⚠next - Get next statistic and increment iterator.
@note Requires that iterator was initialized with
cvc5_stats_iter_init()and thatcvc5_stats_iter_has_next(). @param stat The statistics. @param name The output parameter for the name of the returned statistic. May be NULL to ignore. @note The returned char* pointer are only valid until the next call to this function. @return The next statistic. - stats_
to_ ⚠string - Get a string representation of a given statistics object. @param stat The statistics. @return The string representation. @note The returned char* pointer is only valid until the next call to this function.
- synth_
fun ⚠ - Synthesize n-ary function.
- synth_
fun_ ⚠with_ grammar - Synthesize n-ary function following specified syntactic constraints.
- synth_
result_ ⚠copy - Make copy of synthesis result, increases reference counter of
result. - synth_
result_ ⚠has_ no_ solution - Determine if the given result is from a synthesis query that has no solution. @param result The result. @return True if the synthesis query has no solution. In this case, it was determined that there was no solution.
- synth_
result_ ⚠has_ solution - Determine if the given result is from a synthesis query that has a solution. @param result The result. @return True if the synthesis query has a solution.
- synth_
result_ ⚠hash - Compute the hash value of a synthesis result. @param result The synthesis result. @return The hash value of the synthesis result.
- synth_
result_ ⚠is_ disequal - Operator overloading for disequality of two synthesis results. @param a The first synthesis result to compare to for disequality. @param b The second synthesis result to compare to for disequality. @return True if the synthesis results are disequal.
- synth_
result_ ⚠is_ equal - Determine equality of two synthesis results. @param a The first synthesis result to compare to for equality. @param b The second synthesis result to compare to for equality. @return True if the synthesis results are equal.
- synth_
result_ ⚠is_ null - Determine if a given synthesis result is empty (a nullary result) and not an actual result returned from a synthesis query. @param result The result. @return True if the given result is a nullary result.
- synth_
result_ ⚠is_ unknown - Determine if the given result is from a synthesis query where its result could not be determined. @param result The result. @return True if the result of the synthesis query could not be determined.
- synth_
result_ ⚠release - Release copy of synthesis result, decrements reference counter of
result. - synth_
result_ ⚠to_ string - Get the string representation of a given result. @param result The result. @return A string representation of the given synthesis result. @note The returned char* pointer is only valid until the next call to this function.
- term_
compare ⚠ - Compare two terms for ordering.
@param a The first term.
@param b The second term.
@return An integer value indicating the ordering: 0 if both terms are equal,
-1ifa < b, and1ifb > a. - term_
copy ⚠ - Make copy of term, increases reference counter of
term. - term_
get_ ⚠boolean_ value - Get the value of a Boolean term as a native Boolean value. @note Asserts cvc5_term_is_boolean_value(). @param term The term. @return The representation of a Boolean value as a native Boolean value.
- term_
get_ ⚠bv_ value - Get the string representation of a bit-vector value.
@note Asserts cvc5_term_is_bv_value().
@param term The term.
@param base
2for binary,10for decimal, and16for hexadecimal. @return The string representation of a bit-vector value. @note The returned char* pointer is only valid until the next call to this function. - term_
get_ ⚠cardinality_ constraint - Get a cardinality constraint as a pair of its sort and upper bound. @note Asserts cvc5_term_is_cardinality_constraint(). @param term The term. @param sort The resulting sort. @param upper The resulting upper bound.
- term_
get_ ⚠child - Get the child term of a given term at a given index. @param term The term. @param index The index of the child. @return The child term at the given index.
- term_
get_ ⚠const_ array_ base - Determine the base (element stored at all indices) of a constant array. @note Requires that the term is a constant array (see isConstArray()). @param term The term. @return The base term.
- term_
get_ ⚠ff_ value - Get the string representation of a finite field value (base 10).
- term_
get_ ⚠fp_ value - Get the representation of a floating-point value as its exponent width, significand width and a bit-vector value term. @note Asserts cvc5_term_is_fp_value(). @param term The term. @param ew The resulting exponent width. @param sw The resulting significand width. @param val The resulting bit-vector value term.
- term_
get_ ⚠id - Get the id of a given term. @param term The term. @return The id of the term.
- term_
get_ ⚠int32_ value - Get the
int32_trepresentation of a given integral value. @note Requires that the term is an int32 value (see cvc5_term_is_int32_value()). @param term The term. @return The given term asint32_tvalue. - term_
get_ ⚠int64_ value - Get the
int64_trepresentation of a given integral value. @note Requires that the term is an int64 value (see cvc5_term_is_int64_value()). @param term The term. @return The term asint64_tvalue. - term_
get_ ⚠integer_ value - Get a string representation of a given integral value. @note Requires that the term is an integral value (see cvc5_term_is_integer_value()). @param term The term. @return The integral term in (decimal) string representation. @note The returned char* pointer is only valid until the next call to this function.
- term_
get_ ⚠kind - Get the kind of a given term. @param term The term. @return The kind of the term.
- term_
get_ ⚠num_ children - Get the number of children of a given term. @param term The term. @return The number of children of this term.
- term_
get_ ⚠op - Get the operator of a term with an operator.
- term_
get_ ⚠real32_ value - Get the 32 bit integer representations of the numerator and denominator of a rational value. @note Requires that the term is a rational value and its numerator and denominator fit into 32 bit integer values (see cvc5_term_is_real32_value()). @param term The term. @param num The resulting int32_t representation of the numerator. @param den The resulting uint32_t representation of the denominator.
- term_
get_ ⚠real64_ value - Get the 64 bit integer representations of the numerator and denominator of a rational value. @note Requires that the term is a rational value and its numerator and denominator fit into 64 bit integer values (see cvc5_term_is_real64_value()). @param term The term. @param num The resulting int64_t representation of the numerator. @param den The resulting uint64_t representation of the denominator.
- term_
get_ ⚠real_ algebraic_ number_ defining_ polynomial - Get the defining polynomial for a real algebraic number term, expressed in terms of the given variable. @note Asserts cvc5_term_is_real_algebraic_number(). @param term The real algebraic number term. @param v The variable over which to express the polynomial. @return The defining polynomial.
- term_
get_ ⚠real_ algebraic_ number_ lower_ bound - Get the lower bound for a real algebraic number value. @note Asserts cvc5_term_is_real_algebraic_number(). @param term The real algebraic number value. @return The lower bound.
- term_
get_ ⚠real_ algebraic_ number_ upper_ bound - Get the upper bound for a real algebraic number value. @note Asserts cvc5_term_is_real_algebraic_number(). @param term The real algebraic number value. @return The upper bound.
- term_
get_ ⚠real_ or_ integer_ value_ sign - Get the sign of a given integer or real value. @note Requires that given term is an integer or real value. @param term The value term. @return 0 if the term is zero, -1 if the term is a negative real or integer value, 1 if the term is a positive real or integer value.
- term_
get_ ⚠real_ value - Get a string representation of a given rational value. @note Requires that the term is a rational value (see cvc5_term_is_real_value()). @param term The term. @return The representation of a rational value as a (rational) string. @note The returned char* pointer is only valid until the next call to this function.
- term_
get_ ⚠rm_ value - Get the Cvc5RoundingMode value of a given rounding-mode value term. @note Asserts cvc5_term_is_rounding_mode_value(). @param term The term. @return The floating-point rounding mode value of the term.
- term_
get_ ⚠sequence_ value - Get a sequence value as an array of terms. @note Asserts cvc5_term_is_sequence_value(). @param term The term. @param size The size of the resulting array. @return The representation of a sequence value as a vector of terms.
- term_
get_ ⚠set_ value - Get a set value as an array of terms. @note Asserts cvc5_term_is_set_value(). @param term The term. @param size The size of the resulting array. @return The representation of a set value as an array of terms.
- term_
get_ ⚠skolem_ id - Get skolem identifier of a term. @note Asserts isSkolem(). @warning This function is experimental and may change in future versions. @param term The skolem. @return The skolem identifier of the term.
- term_
get_ ⚠skolem_ indices - Get the skolem indices of a term.
@note Asserts isSkolem().
@warning This function is experimental and may change in future versions.
@param term The skolem.
@param size The size of the resulting array.
@return The skolem indices of the term. This is list of terms that the
skolem function is indexed by. For example, the array diff skolem
Cvc5SkolemId::ARRAY_DEQ_DIFFis indexed by two arrays. - term_
get_ ⚠sort - Get the sort of a given term. @param term The term. @return The sort of the term.
- term_
get_ ⚠string_ value - Get the native string representation of a string value. @note Requires that the term is a string value (see cvc5_term_is_string_value()). @note This is not to be confused with cvc5_term_to_string(), which returns some string representation of the term, whatever data it may hold. @param term The term. @return The string term as a native string value.
- term_
get_ ⚠symbol - Get the symbol of a given term with a symbol.
- term_
get_ ⚠tuple_ value - Get a tuple value as an array of terms. @note Asserts cvc5_term_is_tuple_value(). @param term The term. @param size The size of the resulting array. @return The representation of a tuple value as an array of terms.
- term_
get_ ⚠u32string_ value - Get the native UTF-32 string representation of a string value. @note Requires that the term is a string value (see cvc5_term_is_string_value()). @note This is not to be confused with cvc5_term_to_string(), which returns some string representation of the term, whatever data it may hold. @param term The term. @return The string term as a native UTF-32 string value.
- term_
get_ ⚠uint32_ value - Get the
uint32_trepresentation of a given integral value. @note Requires that the term is an uint32 value (see cvc5_term_is_uint32_value()). @param term The term. @return The term asuint32_tvalue. - term_
get_ ⚠uint64_ value - Get the
uint64_trepresentation of a given integral value. @note Requires that the term is an uint64 value (see cvc5_term_is_uint64_value()). @param term The term. @return The term asuint64_tvalue. - term_
get_ ⚠uninterpreted_ sort_ value - Get a string representation of an uninterpreted sort value. @note Asserts cvc5_term_is_uninterpreted_sort_value(). @param term The term. @return The representation of an uninterpreted sort value as a string. @note The returned char* pointer is only valid until the next call to this function.
- term_
has_ ⚠op - Determine if a given term has an operator. @param term The term. @return True iff the term has an operator.
- term_
has_ ⚠symbol - Determine if a given term has a symbol (a name).
- term_
hash ⚠ - Compute the hash value of a term. @param term The term. @return The hash value of the term.
- term_
is_ ⚠boolean_ value - Determine if a given term is a Boolean value. @param term The term. @return True if the term is a Boolean value.
- term_
is_ ⚠bv_ value - Determine if a given term is a bit-vector value. @param term The term. @return True if the term is a bit-vector value.
- term_
is_ ⚠cardinality_ constraint - Determine if a given term is a cardinality constraint. @param term The term. @return True if the term is a cardinality constraint.
- term_
is_ ⚠const_ array - Determine if a given term is a constant array. @param term The term. @return True if the term is a constant array.
- term_
is_ ⚠disequal - Compare two terms for syntactic disequality. @param a The first term. @param b The second term. @return True if both term are syntactically disequal.
- term_
is_ ⚠equal - Compare two terms for syntactic equality. @param a The first term. @param b The second term. @return True if both term are syntactically identical.
- term_
is_ ⚠ff_ value - Determine if a given term is a finite field value. @param term The term. @return True if the term is a finite field value.
- term_
is_ ⚠fp_ nan - Determine if a given term is a floating-point NaN value. @param term The term. @return True if the term is the floating-point value for not a number.
- term_
is_ ⚠fp_ neg_ inf - Determine if a given term is a floating-point negative infinity value (-oo). @param term The term. @return True if the term is the floating-point value for negative. infinity.
- term_
is_ ⚠fp_ neg_ zero - Determine if a given term is a floating-point negative zero value (-zero). @param term The term. @return True if the term is the floating-point value for negative zero.
- term_
is_ ⚠fp_ pos_ inf - Determine if a given term is a floating-point positive infinity value (+oo). @param term The term. @return True if the term is the floating-point value for positive. infinity.
- term_
is_ ⚠fp_ pos_ zero - Determine if a given term is a floating-point positive zero value (+zero). @param term The term. @return True if the term is the floating-point value for positive zero.
- term_
is_ ⚠fp_ value - Determine if a given term is a floating-point value. @param term The term. @return True if the term is a floating-point value.
- term_
is_ ⚠int32_ value - Determine if a given term is an int32 value. @note This will return true for integer constants and real constants that have integer value. @param term The term. @return True if the term is an integer value that fits within int32_t.
- term_
is_ ⚠int64_ value - Determine if a given term is an int64 value. @note This will return true for integer constants and real constants that have integral value. @param term The term. @return True if the term is an integral value that fits within int64_t.
- term_
is_ ⚠integer_ value - Determine if a given term is an integral value. @param term The term. @return True if the term is an integer constant or a real constant that has an integral value.
- term_
is_ ⚠real32_ value - Determine if a given term is a rational value whose numerator fits into an int32 value and its denominator fits into a uint32 value. @param term The term. @return True if the term is a rational and its numerator and denominator fit into 32 bit integer values.
- term_
is_ ⚠real64_ value - Determine if a given term is a rational value whose numerator fits into an int64 value and its denominator fits into a uint64 value. @param term The term. @return True if the term is a rational value whose numerator and denominator fit within int64_t and uint64_t, respectively.
- term_
is_ ⚠real_ algebraic_ number - Determine if a given term is a real algebraic number. @param term The term. @return True if the term is a real algebraic number.
- term_
is_ ⚠real_ value - Determine if a given term is a rational value. @note A term of kind PI is not considered to be a real value. @param term The term. @return True if the term is a rational value.
- term_
is_ ⚠rm_ value - Determine if a given term is a floating-point rounding mode value. @param term The term. @return True if the term is a rounding mode value.
- term_
is_ ⚠sequence_ value - Determine if a given term is a sequence value.
- term_
is_ ⚠set_ value - Determine if a given term is a set value.
- term_
is_ ⚠skolem - Is the given term a skolem? @warning This function is experimental and may change in future versions. @param term The skolem. @return True if the term is a skolem function.
- term_
is_ ⚠string_ value - Determine if a given term is a string value. @param term The term. @return True if the term is a string value.
- term_
is_ ⚠tuple_ value - Determine if a given term is a tuple value. @param term The term. @return True if the term is a tuple value.
- term_
is_ ⚠uint32_ value - Determine if a given term is an uint32 value. @note This will return true for integer constants and real constants that have integral value. @return True if the term is an integral value and fits within uint32_t.
- term_
is_ ⚠uint64_ value - Determine if a given term is an uint64 value. @note This will return true for integer constants and real constants that have integral value. @param term The term. @return True if the term is an integral value that fits within uint64_t.
- term_
is_ ⚠uninterpreted_ sort_ value - Determine if a given term is an uninterpreted sort value. @param term The term. @return True if the term is an abstract value.
- term_
manager_ ⚠delete - Delete a cvc5 term manager instance. @param tm The term manager instance.
- term_
manager_ ⚠get_ statistics - Get a snapshot of the current state of the statistic values of this term manager. The returned object is completely decoupled from the term manager and will not change when the term manager is used again. @param tm The term manager instance. @return A snapshot of the current state of the statistic values.
- term_
manager_ ⚠new - Construct a new instance of a cvc5 term manager. @return The cvc5 term manager.
- term_
manager_ ⚠print_ stats_ safe - Print the term manager statistics to the given file descriptor, suitable for usage in signal handlers. @param tm The term manager instance. @param fd The file descriptor.
- term_
manager_ ⚠release - Release all managed references.
- term_
release ⚠ - Release copy of term, decrements reference counter of
term. - term_
substitute_ ⚠term - Replace a given term
twith termreplacementin a given term. - term_
substitute_ ⚠terms - Simultaneously replace given terms
termswith termsreplacementsin a given term. - term_
to_ ⚠string - Get a string representation of a given term. @param term The term. @return A string representation of the term. @note The returned char* pointer is only valid until the next call to this function.
- unknown_
explanation_ ⚠to_ string - Get a string representation of a Cvc5UnknownExplanation. @param exp The unknown explanation. @return The string representation.
Type Aliases§
- Datatype
- A cvc5 datatype.
- Datatype
Constructor - A cvc5 datatype constructor.
- Datatype
Constructor Decl - A cvc5 datatype constructor declaration. A datatype constructor declaration is a specification used for creating a datatype constructor.
- Datatype
Decl - A cvc5 datatype declaration. A datatype declaration is not itself a datatype (see Datatype), but a specification for creating a datatype sort.
- Datatype
Selector - A cvc5 datatype selector.
- Grammar
- A Sygus Grammar. This can be used to define a context-free grammar
of terms. Its interface coincides with the definition of grammars
(
GrammarDef) in the SyGuS IF 2.1 standard. - Op
- A cvc5 operator.
- Proof
- A cvc5 proof.
- Result
- Encapsulation of a three-valued solver result, with explanations.
- Sort
- The sort of a cvc5 term.
- Stat
- A cvc5 statistic.
- Statistics
- A cvc5 statistics instance.
- Synth
Result - Encapsulation of a solver synth result.
- Term
- A cvc5 term.
- __
uint32_ t - __
uint_ least32_ t - char32_
t - wchar_t