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
POW2
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
}
}