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::Datatypeoperator<<()
- DatatypeConstructor
- DatatypeConstructorDecl
- DatatypeDecl
- DatatypeSelector
- DriverOptions
- Grammar
- InputParser
- Kind
KindINTERNAL_KINDUNDEFINED_KINDNULL_TERMUNINTERPRETED_SORT_VALUEEQUALDISTINCTCONSTANTVARIABLESKOLEMSEXPRLAMBDAWITNESSCONST_BOOLEANNOTANDIMPLIESORXORITEAPPLY_UFCARDINALITY_CONSTRAINTHO_APPLYADDMULTIANDPOW2SUBNEGDIVISIONDIVISION_TOTALINTS_DIVISIONINTS_DIVISION_TOTALINTS_MODULUSINTS_MODULUS_TOTALABSPOWEXPONENTIALSINECOSINETANGENTCOSECANTSECANTCOTANGENTARCSINEARCCOSINEARCTANGENTARCCOSECANTARCSECANTARCCOTANGENTSQRTDIVISIBLECONST_RATIONALCONST_INTEGERLTLEQGTGEQIS_INTEGERTO_INTEGERTO_REALPICONST_BITVECTORBITVECTOR_CONCATBITVECTOR_ANDBITVECTOR_ORBITVECTOR_XORBITVECTOR_NOTBITVECTOR_NANDBITVECTOR_NORBITVECTOR_XNORBITVECTOR_COMPBITVECTOR_MULTBITVECTOR_ADDBITVECTOR_SUBBITVECTOR_NEGBITVECTOR_UDIVBITVECTOR_UREMBITVECTOR_SDIVBITVECTOR_SREMBITVECTOR_SMODBITVECTOR_SHLBITVECTOR_LSHRBITVECTOR_ASHRBITVECTOR_ULTBITVECTOR_ULEBITVECTOR_UGTBITVECTOR_UGEBITVECTOR_SLTBITVECTOR_SLEBITVECTOR_SGTBITVECTOR_SGEBITVECTOR_ULTBVBITVECTOR_SLTBVBITVECTOR_ITEBITVECTOR_REDORBITVECTOR_REDANDBITVECTOR_NEGOBITVECTOR_UADDOBITVECTOR_SADDOBITVECTOR_UMULOBITVECTOR_SMULOBITVECTOR_USUBOBITVECTOR_SSUBOBITVECTOR_SDIVOBITVECTOR_EXTRACTBITVECTOR_REPEATBITVECTOR_ZERO_EXTENDBITVECTOR_SIGN_EXTENDBITVECTOR_ROTATE_LEFTBITVECTOR_ROTATE_RIGHTINT_TO_BITVECTORBITVECTOR_TO_NATBITVECTOR_UBV_TO_INTBITVECTOR_SBV_TO_INTBITVECTOR_FROM_BOOLSBITVECTOR_BITCONST_FINITE_FIELDFINITE_FIELD_NEGFINITE_FIELD_ADDFINITE_FIELD_BITSUMFINITE_FIELD_MULTCONST_FLOATINGPOINTCONST_ROUNDINGMODEFLOATINGPOINT_FPFLOATINGPOINT_EQFLOATINGPOINT_ABSFLOATINGPOINT_NEGFLOATINGPOINT_ADDFLOATINGPOINT_SUBFLOATINGPOINT_MULTFLOATINGPOINT_DIVFLOATINGPOINT_FMAFLOATINGPOINT_SQRTFLOATINGPOINT_REMFLOATINGPOINT_RTIFLOATINGPOINT_MINFLOATINGPOINT_MAXFLOATINGPOINT_LEQFLOATINGPOINT_LTFLOATINGPOINT_GEQFLOATINGPOINT_GTFLOATINGPOINT_IS_NORMALFLOATINGPOINT_IS_SUBNORMALFLOATINGPOINT_IS_ZEROFLOATINGPOINT_IS_INFFLOATINGPOINT_IS_NANFLOATINGPOINT_IS_NEGFLOATINGPOINT_IS_POSFLOATINGPOINT_TO_FP_FROM_IEEE_BVFLOATINGPOINT_TO_FP_FROM_FPFLOATINGPOINT_TO_FP_FROM_REALFLOATINGPOINT_TO_FP_FROM_SBVFLOATINGPOINT_TO_FP_FROM_UBVFLOATINGPOINT_TO_UBVFLOATINGPOINT_TO_SBVFLOATINGPOINT_TO_REALSELECTSTORECONST_ARRAYEQ_RANGEAPPLY_CONSTRUCTORAPPLY_SELECTORAPPLY_TESTERAPPLY_UPDATERMATCHMATCH_CASEMATCH_BIND_CASETUPLE_PROJECTNULLABLE_LIFTSEP_NILSEP_EMPSEP_PTOSEP_STARSEP_WANDSET_EMPTYSET_UNIONSET_INTERSET_MINUSSET_SUBSETSET_MEMBERSET_SINGLETONSET_INSERTSET_CARDSET_COMPLEMENTSET_UNIVERSESET_COMPREHENSIONSET_CHOOSESET_IS_EMPTYSET_IS_SINGLETONSET_MAPSET_FILTERSET_ALLSET_SOMESET_FOLDRELATION_JOINRELATION_TABLE_JOINRELATION_PRODUCTRELATION_TRANSPOSERELATION_TCLOSURERELATION_JOIN_IMAGERELATION_IDENRELATION_GROUPRELATION_AGGREGATERELATION_PROJECTBAG_EMPTYBAG_UNION_MAXBAG_UNION_DISJOINTBAG_INTER_MINBAG_DIFFERENCE_SUBTRACTBAG_DIFFERENCE_REMOVEBAG_SUBBAGBAG_COUNTBAG_MEMBERBAG_SETOFBAG_MAKEBAG_CARDBAG_CHOOSEBAG_MAPBAG_FILTERBAG_ALLBAG_SOMEBAG_FOLDBAG_PARTITIONTABLE_PRODUCTTABLE_PROJECTTABLE_AGGREGATETABLE_JOINTABLE_GROUPSTRING_CONCATSTRING_IN_REGEXPSTRING_LENGTHSTRING_SUBSTRSTRING_UPDATESTRING_CHARATSTRING_CONTAINSSTRING_INDEXOFSTRING_INDEXOF_RESTRING_REPLACESTRING_REPLACE_ALLSTRING_REPLACE_RESTRING_REPLACE_RE_ALLSTRING_TO_LOWERSTRING_TO_UPPERSTRING_REVSTRING_TO_CODESTRING_FROM_CODESTRING_LTSTRING_LEQSTRING_PREFIXSTRING_SUFFIXSTRING_IS_DIGITSTRING_FROM_INTSTRING_TO_INTCONST_STRINGSTRING_TO_REGEXPREGEXP_CONCATREGEXP_UNIONREGEXP_INTERREGEXP_DIFFREGEXP_STARREGEXP_PLUSREGEXP_OPTREGEXP_RANGEREGEXP_REPEATREGEXP_LOOPREGEXP_NONEREGEXP_ALLREGEXP_ALLCHARREGEXP_COMPLEMENTSEQ_CONCATSEQ_LENGTHSEQ_EXTRACTSEQ_UPDATESEQ_ATSEQ_CONTAINSSEQ_INDEXOFSEQ_REPLACESEQ_REPLACE_ALLSEQ_REVSEQ_PREFIXSEQ_SUFFIXCONST_SEQUENCESEQ_UNITSEQ_NTHFORALLEXISTSVARIABLE_LISTINST_PATTERNINST_NO_PATTERNINST_POOLINST_ADD_TO_POOLSKOLEM_ADD_TO_POOLINST_ATTRIBUTEINST_PATTERN_LISTLAST_KIND
operator<<()to_string()std::hash< cvc5::Kind >
- Modes
- Op
- OptionInfo
cvc5::OptionInfooperator<<()
- Plugin
- Proof
- Result
- RoundingMode
- Solver
cvc5::SolverSolver()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::SortSort()~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
SortKindINTERNAL_SORT_KINDUNDEFINED_SORT_KINDNULL_SORTABSTRACT_SORTARRAY_SORTBAG_SORTBOOLEAN_SORTBITVECTOR_SORTDATATYPE_SORTFINITE_FIELD_SORTFLOATINGPOINT_SORTFUNCTION_SORTINTEGER_SORTREAL_SORTREGLAN_SORTROUNDINGMODE_SORTSEQUENCE_SORTSET_SORTSTRING_SORTTUPLE_SORTNULLABLE_SORTUNINTERPRETED_SORTLAST_SORT_KIND
operator<<()to_string()std::hash< cvc5::SortKind >
- Statistics
- SymbolManager
- SynthResult
- Term
cvc5::TermTerm()~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::TermManagerTermManager()~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
CVC5ApiExceptionclass 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
Statclass 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
ProofRuleenum class
ProofRewriteRule
namespace modes {enum classes for configuration modes
enum class for
cvc5::modes::BlockModelsModeenum class for
cvc5::modes::LearnedLitTypeenum class for
cvc5::modes::FindSynthTargetenum class for
cvc5::modes::OptionCategoryenum class for
cvc5::modes::ProofComponentenum class for
cvc5::modes::ProofFormat
}
namespace parser {class
ParserExceptionclass
Commandclass InputParser
class
SymbolManager
}
}