C++ API
The C++ API is the primary interface for cvc5 and exposes the full functionality of cvc5.
The
quickstart guide
gives a short introduction, while the
following class hierarchy of the
cvc5
namespace provides more details on
the individual classes.
For most applications, the
Solver
class is the main
entry point to cvc5.
- Quickstart Guide
- Exceptions
- Command
-
Datatype
-
cvc5::Datatype -
operator<<()
-
- DatatypeConstructor
- DatatypeConstructorDecl
- DatatypeDecl
- DatatypeSelector
- DriverOptions
- Grammar
- InputParser
-
Kind
-
Kind-
INTERNAL_KIND -
UNDEFINED_KIND -
NULL_TERM -
UNINTERPRETED_SORT_VALUE -
EQUAL -
DISTINCT -
CONSTANT -
VARIABLE -
SKOLEM -
SEXPR -
LAMBDA -
WITNESS -
CONST_BOOLEAN -
NOT -
AND -
IMPLIES -
OR -
XOR -
ITE -
APPLY_UF -
CARDINALITY_CONSTRAINT -
HO_APPLY -
ADD -
MULT -
IAND -
PIAND -
POW2 -
LOG2 -
SUB -
NEG -
DIVISION -
DIVISION_TOTAL -
INTS_DIVISION -
INTS_DIVISION_TOTAL -
INTS_MODULUS -
INTS_MODULUS_TOTAL -
ABS -
POW -
EXPONENTIAL -
SINE -
COSINE -
TANGENT -
COSECANT -
SECANT -
COTANGENT -
ARCSINE -
ARCCOSINE -
ARCTANGENT -
ARCCOSECANT -
ARCSECANT -
ARCCOTANGENT -
SQRT -
DIVISIBLE -
CONST_RATIONAL -
CONST_INTEGER -
LT -
LEQ -
GT -
GEQ -
IS_INTEGER -
TO_INTEGER -
TO_REAL -
PI -
CONST_BITVECTOR -
BITVECTOR_CONCAT -
BITVECTOR_AND -
BITVECTOR_OR -
BITVECTOR_XOR -
BITVECTOR_NOT -
BITVECTOR_NAND -
BITVECTOR_NOR -
BITVECTOR_XNOR -
BITVECTOR_COMP -
BITVECTOR_MULT -
BITVECTOR_ADD -
BITVECTOR_SUB -
BITVECTOR_NEG -
BITVECTOR_UDIV -
BITVECTOR_UREM -
BITVECTOR_SDIV -
BITVECTOR_SREM -
BITVECTOR_SMOD -
BITVECTOR_SHL -
BITVECTOR_LSHR -
BITVECTOR_ASHR -
BITVECTOR_ULT -
BITVECTOR_ULE -
BITVECTOR_UGT -
BITVECTOR_UGE -
BITVECTOR_SLT -
BITVECTOR_SLE -
BITVECTOR_SGT -
BITVECTOR_SGE -
BITVECTOR_ULTBV -
BITVECTOR_SLTBV -
BITVECTOR_ITE -
BITVECTOR_REDOR -
BITVECTOR_REDAND -
BITVECTOR_NEGO -
BITVECTOR_UADDO -
BITVECTOR_SADDO -
BITVECTOR_UMULO -
BITVECTOR_SMULO -
BITVECTOR_USUBO -
BITVECTOR_SSUBO -
BITVECTOR_SDIVO -
BITVECTOR_EXTRACT -
BITVECTOR_REPEAT -
BITVECTOR_ZERO_EXTEND -
BITVECTOR_SIGN_EXTEND -
BITVECTOR_ROTATE_LEFT -
BITVECTOR_ROTATE_RIGHT -
INT_TO_BITVECTOR -
BITVECTOR_TO_NAT -
BITVECTOR_UBV_TO_INT -
BITVECTOR_SBV_TO_INT -
BITVECTOR_FROM_BOOLS -
BITVECTOR_BIT -
CONST_FINITE_FIELD -
FINITE_FIELD_NEG -
FINITE_FIELD_ADD -
FINITE_FIELD_BITSUM -
FINITE_FIELD_MULT -
CONST_FLOATINGPOINT -
CONST_ROUNDINGMODE -
FLOATINGPOINT_FP -
FLOATINGPOINT_EQ -
FLOATINGPOINT_ABS -
FLOATINGPOINT_NEG -
FLOATINGPOINT_ADD -
FLOATINGPOINT_SUB -
FLOATINGPOINT_MULT -
FLOATINGPOINT_DIV -
FLOATINGPOINT_FMA -
FLOATINGPOINT_SQRT -
FLOATINGPOINT_REM -
FLOATINGPOINT_RTI -
FLOATINGPOINT_MIN -
FLOATINGPOINT_MAX -
FLOATINGPOINT_LEQ -
FLOATINGPOINT_LT -
FLOATINGPOINT_GEQ -
FLOATINGPOINT_GT -
FLOATINGPOINT_IS_NORMAL -
FLOATINGPOINT_IS_SUBNORMAL -
FLOATINGPOINT_IS_ZERO -
FLOATINGPOINT_IS_INF -
FLOATINGPOINT_IS_NAN -
FLOATINGPOINT_IS_NEG -
FLOATINGPOINT_IS_POS -
FLOATINGPOINT_TO_FP_FROM_IEEE_BV -
FLOATINGPOINT_TO_FP_FROM_FP -
FLOATINGPOINT_TO_FP_FROM_REAL -
FLOATINGPOINT_TO_FP_FROM_SBV -
FLOATINGPOINT_TO_FP_FROM_UBV -
FLOATINGPOINT_TO_UBV -
FLOATINGPOINT_TO_SBV -
FLOATINGPOINT_TO_REAL -
SELECT -
STORE -
CONST_ARRAY -
EQ_RANGE -
APPLY_CONSTRUCTOR -
APPLY_SELECTOR -
APPLY_TESTER -
APPLY_UPDATER -
MATCH -
MATCH_CASE -
MATCH_BIND_CASE -
TUPLE_PROJECT -
NULLABLE_LIFT -
SEP_NIL -
SEP_EMP -
SEP_PTO -
SEP_STAR -
SEP_WAND -
SET_EMPTY -
SET_UNION -
SET_INTER -
SET_MINUS -
SET_SUBSET -
SET_MEMBER -
SET_SINGLETON -
SET_INSERT -
SET_CARD -
SET_COMPLEMENT -
SET_UNIVERSE -
SET_COMPREHENSION -
SET_CHOOSE -
SET_IS_EMPTY -
SET_IS_SINGLETON -
SET_MAP -
SET_FILTER -
SET_ALL -
SET_SOME -
SET_FOLD -
RELATION_JOIN -
RELATION_TABLE_JOIN -
RELATION_PRODUCT -
RELATION_TRANSPOSE -
RELATION_TCLOSURE -
RELATION_JOIN_IMAGE -
RELATION_IDEN -
RELATION_GROUP -
RELATION_AGGREGATE -
RELATION_PROJECT -
BAG_EMPTY -
BAG_UNION_MAX -
BAG_UNION_DISJOINT -
BAG_INTER_MIN -
BAG_DIFFERENCE_SUBTRACT -
BAG_DIFFERENCE_REMOVE -
BAG_SUBBAG -
BAG_COUNT -
BAG_MEMBER -
BAG_SETOF -
BAG_MAKE -
BAG_CARD -
BAG_CHOOSE -
BAG_MAP -
BAG_FILTER -
BAG_ALL -
BAG_SOME -
BAG_FOLD -
BAG_PARTITION -
TABLE_PRODUCT -
TABLE_PROJECT -
TABLE_AGGREGATE -
TABLE_JOIN -
TABLE_GROUP -
STRING_CONCAT -
STRING_IN_REGEXP -
STRING_LENGTH -
STRING_SUBSTR -
STRING_UPDATE -
STRING_CHARAT -
STRING_CONTAINS -
STRING_INDEXOF -
STRING_INDEXOF_RE -
STRING_REPLACE -
STRING_REPLACE_ALL -
STRING_REPLACE_RE -
STRING_REPLACE_RE_ALL -
STRING_TO_LOWER -
STRING_TO_UPPER -
STRING_REV -
STRING_TO_CODE -
STRING_FROM_CODE -
STRING_LT -
STRING_LEQ -
STRING_PREFIX -
STRING_SUFFIX -
STRING_IS_DIGIT -
STRING_FROM_INT -
STRING_TO_INT -
CONST_STRING -
STRING_TO_REGEXP -
REGEXP_CONCAT -
REGEXP_UNION -
REGEXP_INTER -
REGEXP_DIFF -
REGEXP_STAR -
REGEXP_PLUS -
REGEXP_OPT -
REGEXP_RANGE -
REGEXP_REPEAT -
REGEXP_LOOP -
REGEXP_NONE -
REGEXP_ALL -
REGEXP_ALLCHAR -
REGEXP_COMPLEMENT -
SEQ_CONCAT -
SEQ_LENGTH -
SEQ_EXTRACT -
SEQ_UPDATE -
SEQ_AT -
SEQ_CONTAINS -
SEQ_INDEXOF -
SEQ_REPLACE -
SEQ_REPLACE_ALL -
SEQ_REV -
SEQ_PREFIX -
SEQ_SUFFIX -
CONST_SEQUENCE -
SEQ_UNIT -
SEQ_NTH -
FORALL -
EXISTS -
VARIABLE_LIST -
INST_PATTERN -
INST_NO_PATTERN -
INST_POOL -
INST_ADD_TO_POOL -
SKOLEM_ADD_TO_POOL -
INST_ATTRIBUTE -
INST_PATTERN_LIST -
LAST_KIND
-
-
operator<<() -
to_string() -
std::hash< cvc5::Kind >
-
- Modes
- Op
-
OptionInfo
-
cvc5::OptionInfo -
operator<<()
-
- Plugin
- Proof
- Result
- RoundingMode
-
Solver
-
cvc5::Solver-
Solver() -
Solver() -
~Solver() -
Solver() -
operator=() -
getBooleanSort() -
getIntegerSort() -
getRealSort() -
getRegExpSort() -
getRoundingModeSort() -
getStringSort() -
mkArraySort() -
mkBitVectorSort() -
mkFloatingPointSort() -
mkFiniteFieldSort() -
mkDatatypeSort() -
mkDatatypeSorts() -
mkFunctionSort() -
mkParamSort() -
mkPredicateSort() -
mkRecordSort() -
mkSetSort() -
mkBagSort() -
mkSequenceSort() -
mkAbstractSort() -
mkUninterpretedSort() -
mkUnresolvedDatatypeSort() -
mkUninterpretedSortConstructorSort() -
mkTupleSort() -
mkNullableSort() -
mkTerm() -
mkTerm() -
mkTuple() -
mkNullableSome() -
mkNullableVal() -
mkNullableIsNull() -
mkNullableIsSome() -
mkNullableNull() -
mkNullableLift() -
mkOp() -
mkOp() -
mkTrue() -
mkFalse() -
mkBoolean() -
mkPi() -
mkInteger() -
mkInteger() -
mkReal() -
mkReal() -
mkReal() -
mkRegexpAll() -
mkRegexpAllchar() -
mkRegexpNone() -
mkEmptySet() -
mkEmptyBag() -
mkSepEmp() -
mkSepNil() -
mkString() -
mkString() -
mkEmptySequence() -
mkUniverseSet() -
mkBitVector() -
mkBitVector() -
mkFiniteFieldElem() -
mkConstArray() -
mkFloatingPointPosInf() -
mkFloatingPointNegInf() -
mkFloatingPointNaN() -
mkFloatingPointPosZero() -
mkFloatingPointNegZero() -
mkRoundingMode() -
mkFloatingPoint() -
mkFloatingPoint() -
mkCardinalityConstraint() -
mkConst() -
mkVar() -
mkDatatypeConstructorDecl() -
mkDatatypeDecl() -
mkDatatypeDecl() -
simplify() -
assertFormula() -
checkSat() -
checkSatAssuming() -
checkSatAssuming() -
declareDatatype() -
declareFun() -
declareSort() -
defineFun() -
defineFunRec() -
defineFunRec() -
defineFunsRec() -
getAssertions() -
getInfo() -
getOption() -
getOptionNames() -
getOptionInfo() -
getDriverOptions() -
getUnsatAssumptions() -
getUnsatCore() -
getUnsatCoreLemmas() -
getDifficulty() -
getTimeoutCore() -
getTimeoutCoreAssuming() -
getProof() -
proofToString() -
getLearnedLiterals() -
getValue() -
getValue() -
getModelDomainElements() -
isModelCoreSymbol() -
getModel() -
getQuantifierElimination() -
getQuantifierEliminationDisjunct() -
declareSepHeap() -
getValueSepHeap() -
getValueSepNil() -
declarePool() -
declareOracleFun() -
addPlugin() -
pop() -
getInterpolant() -
getInterpolant() -
getInterpolantNext() -
getAbduct() -
getAbduct() -
getAbductNext() -
blockModel() -
blockModelValues() -
getInstantiations() -
push() -
resetAssertions() -
setInfo() -
setLogic() -
isLogicSet() -
getLogic() -
setOption() -
declareSygusVar() -
mkGrammar() -
synthFun() -
synthFun() -
addSygusConstraint() -
getSygusConstraints() -
addSygusAssume() -
getSygusAssumptions() -
addSygusInvConstraint() -
checkSynth() -
checkSynthNext() -
getSynthSolution() -
getSynthSolutions() -
findSynth() -
findSynth() -
findSynthNext() -
getStatistics() -
printStatisticsSafe() -
isOutputOn() -
getOutput() -
getVersion() -
getTermManager()
-
-
-
Sort
-
cvc5::Sort-
Sort() -
~Sort() -
operator==() -
operator!=() -
operator<() -
operator>() -
operator<=() -
operator>=() -
getKind() -
hasSymbol() -
getSymbol() -
isNull() -
isBoolean() -
isInteger() -
isReal() -
isString() -
isRegExp() -
isRoundingMode() -
isBitVector() -
isFloatingPoint() -
isDatatype() -
isDatatypeConstructor() -
isDatatypeSelector() -
isDatatypeTester() -
isDatatypeUpdater() -
isFunction() -
isPredicate() -
isTuple() -
isNullable() -
isRecord() -
isArray() -
isFiniteField() -
isSet() -
isBag() -
isSequence() -
isAbstract() -
isUninterpretedSort() -
isUninterpretedSortConstructor() -
isInstantiated() -
getUninterpretedSortConstructor() -
getDatatype() -
instantiate() -
getInstantiatedParameters() -
substitute() -
substitute() -
toStream() -
toString() -
getDatatypeConstructorArity() -
getDatatypeConstructorDomainSorts() -
getDatatypeConstructorCodomainSort() -
getDatatypeSelectorDomainSort() -
getDatatypeSelectorCodomainSort() -
getDatatypeTesterDomainSort() -
getDatatypeTesterCodomainSort() -
getFunctionArity() -
getFunctionDomainSorts() -
getFunctionCodomainSort() -
getArrayIndexSort() -
getArrayElementSort() -
getSetElementSort() -
getBagElementSort() -
getSequenceElementSort() -
getAbstractedKind() -
getUninterpretedSortConstructorArity() -
getBitVectorSize() -
getFiniteFieldSize() -
getFloatingPointExponentSize() -
getFloatingPointSignificandSize() -
getDatatypeArity() -
getTupleLength() -
getTupleSorts() -
getNullableElementSort()
-
-
operator<<() -
std::hash< cvc5::Sort >
-
-
SortKind
-
SortKind-
INTERNAL_SORT_KIND -
UNDEFINED_SORT_KIND -
NULL_SORT -
ABSTRACT_SORT -
ARRAY_SORT -
BAG_SORT -
BOOLEAN_SORT -
BITVECTOR_SORT -
DATATYPE_SORT -
FINITE_FIELD_SORT -
FLOATINGPOINT_SORT -
FUNCTION_SORT -
INTEGER_SORT -
REAL_SORT -
REGLAN_SORT -
ROUNDINGMODE_SORT -
SEQUENCE_SORT -
SET_SORT -
STRING_SORT -
TUPLE_SORT -
NULLABLE_SORT -
UNINTERPRETED_SORT -
LAST_SORT_KIND
-
-
operator<<() -
to_string() -
std::hash< cvc5::SortKind >
-
- Statistics
- SymbolManager
- SynthResult
-
Term
-
cvc5::Term-
Term() -
~Term() -
operator==() -
operator!=() -
operator<() -
operator>() -
operator<=() -
operator>=() -
getNumChildren() -
operator[]() -
getId() -
getKind() -
getSort() -
substitute() -
substitute() -
hasOp() -
getOp() -
hasSymbol() -
getSymbol() -
isNull() -
notTerm() -
andTerm() -
orTerm() -
xorTerm() -
eqTerm() -
impTerm() -
iteTerm() -
toString() -
begin() -
end() -
getRealOrIntegerValueSign() -
isInt32Value() -
getInt32Value() -
isUInt32Value() -
getUInt32Value() -
isInt64Value() -
getInt64Value() -
isUInt64Value() -
getUInt64Value() -
isIntegerValue() -
getIntegerValue() -
isStringValue() -
getStringValue() -
getU32StringValue() -
isReal32Value() -
getReal32Value() -
isReal64Value() -
getReal64Value() -
isRealValue() -
getRealValue() -
isConstArray() -
getConstArrayBase() -
isBooleanValue() -
getBooleanValue() -
isBitVectorValue() -
getBitVectorValue() -
isFiniteFieldValue() -
getFiniteFieldValue() -
isUninterpretedSortValue() -
getUninterpretedSortValue() -
isTupleValue() -
getTupleValue() -
isRoundingModeValue() -
getRoundingModeValue() -
isFloatingPointPosZero() -
isFloatingPointNegZero() -
isFloatingPointPosInf() -
isFloatingPointNegInf() -
isFloatingPointNaN() -
isFloatingPointValue() -
getFloatingPointValue() -
isSetValue() -
getSetValue() -
isSequenceValue() -
getSequenceValue() -
isCardinalityConstraint() -
getCardinalityConstraint() -
isRealAlgebraicNumber() -
getRealAlgebraicNumberDefiningPolynomial() -
getRealAlgebraicNumberLowerBound() -
getRealAlgebraicNumberUpperBound() -
isSkolem() -
getSkolemId() -
getSkolemIndices() -
cvc5::Term::const_iterator
-
-
operator<<() -
operator<<() -
operator<<() -
operator<<() -
operator<<() -
operator<<() -
std::hash< cvc5::Term >
-
-
TermManager
-
cvc5::TermManager-
TermManager() -
~TermManager() -
getStatistics() -
printStatisticsSafe() -
getBooleanSort() -
getIntegerSort() -
getRealSort() -
getRegExpSort() -
getRoundingModeSort() -
getStringSort() -
mkArraySort() -
mkBitVectorSort() -
mkFloatingPointSort() -
mkFiniteFieldSort() -
mkDatatypeSort() -
mkDatatypeSorts() -
mkFunctionSort() -
mkSkolem() -
getNumIndicesForSkolemId() -
mkParamSort() -
mkPredicateSort() -
mkRecordSort() -
mkSetSort() -
mkBagSort() -
mkSequenceSort() -
mkAbstractSort() -
mkUninterpretedSort() -
mkUnresolvedDatatypeSort() -
mkUninterpretedSortConstructorSort() -
mkTupleSort() -
mkNullableSort() -
mkOp() -
mkOp() -
mkTerm() -
mkTerm() -
mkTrue() -
mkFalse() -
mkBoolean() -
mkPi() -
mkInteger() -
mkInteger() -
mkReal() -
mkReal() -
mkReal() -
mkRegexpAll() -
mkRegexpAllchar() -
mkRegexpNone() -
mkEmptySet() -
mkEmptyBag() -
mkSepEmp() -
mkSepNil() -
mkString() -
mkString() -
mkString() -
mkEmptySequence() -
mkUniverseSet() -
mkBitVector() -
mkBitVector() -
mkFiniteFieldElem() -
mkConstArray() -
mkFloatingPointPosInf() -
mkFloatingPointNegInf() -
mkFloatingPointNaN() -
mkFloatingPointPosZero() -
mkFloatingPointNegZero() -
mkRoundingMode() -
mkFloatingPoint() -
mkFloatingPoint() -
mkCardinalityConstraint() -
mkTuple() -
mkNullableSome() -
mkNullableVal() -
mkNullableIsNull() -
mkNullableIsSome() -
mkNullableNull() -
mkNullableLift() -
mkConst() -
mkVar() -
mkDatatypeConstructorDecl() -
mkDatatypeDecl() -
mkDatatypeDecl()
-
-
- UnknownExplanation
Class hierarchy
-
namespace cvc5 { -
-
class
CVC5ApiException -
class Datatype
-
class
const_iterator
-
-
class DatatypeConstructor
-
class
const_iterator
-
-
class DatatypeConstructorDecl
-
class DatatypeDecl
-
class DatatypeSelector
-
class DriverOptions
-
class Grammar
-
class Op
-
class OptionInfo
-
class Proof
-
class Result
-
class Plugin
-
class TermManager
-
class Solver
-
class Sort
-
class
Stat -
class Statistics
-
class SynthResult
-
class Term
-
class
const_iterator
-
-
enum class Kind
-
enum class SortKind
-
enum class RoundingMode
-
enum class UnknownExplanation
-
enum classes for proof rules
-
enum class
ProofRule -
enum class
ProofRewriteRule
-
-
-
namespace modes { -
-
enum classes for configuration modes
-
enum class for
cvc5::modes::BlockModelsMode -
enum class for
cvc5::modes::LearnedLitType -
enum class for
cvc5::modes::FindSynthTarget -
enum class for
cvc5::modes::OptionCategory -
enum class for
cvc5::modes::ProofComponent -
enum class for
cvc5::modes::ProofFormat
-
-
}
-
namespace parser { -
-
class
ParserException -
class
Command -
class InputParser
-
class
SymbolManager
-
}
}