Produces a string representation.
Equations
- cvc5.Kind.instToString = { toString := cvc5.Kind.toString }
Equations
- cvc5.Kind.instHashable = { hash := cvc5.Kind.hash }
Produces a string representation.
Equations
- cvc5.SortKind.instToString = { toString := cvc5.SortKind.toString }
Equations
- cvc5.SortKind.instHashable = { hash := cvc5.SortKind.hash }
Produces a string representation.
Equations
- cvc5.ProofRule.instToString = { toString := cvc5.ProofRule.toString }
Equations
Produces a string representation.
Equations
- cvc5.SkolemId.instToString = { toString := cvc5.SkolemId.toString }
Equations
- cvc5.SkolemId.instHashable = { hash := cvc5.SkolemId.hash }
Produces a string representation.
Equations
Produces a hash.
Equations
Produces a string representation.
Equations
Produces a hash.
Produces a string representation.
Equations
- cvc5.RoundingMode.instToString = { toString := cvc5.RoundingMode.toString }
Produces a hash.
Equations
Produces a string representation.
Equations
Produces a hash.
Equations
Produces a string representation.
Equations
- cvc5.LearnedLitType.instToString = { toString := cvc5.LearnedLitType.toString }
Produces a hash.
Equations
Produces a string representation.
Equations
- cvc5.ProofComponent.instToString = { toString := cvc5.ProofComponent.toString }
Produces a hash.
Equations
Produces a string representation.
Equations
- cvc5.ProofFormat.instToString = { toString := cvc5.ProofFormat.toString }
Equations
Produces a string representation.
Equations
Produces a hash.
Equations
Produces a string representation.
Equations
- cvc5.InputLanguage.instToString = { toString := cvc5.InputLanguage.toString }
Produces a hash.
Equations
Encapsulation of a three-valued solver result, with explanations.
Equations
Instances For
A cvc5 proof.
Proofs are trees and every proof object corresponds to the root step of a proof. The branches of the root step are the premises of the step.
Equations
Instances For
Manager for cvc5 terms.
Equations
Instances For
Equations
- cvc5.instReprError = { reprPrec := cvc5.reprError✝ }
Solver error/state-monad transformer.
Equations
Instances For
String representation of an error.
Equations
Instances For
Panics on errors, otherwise yields the ok result.
Equations
- cvc5.Error.unwrap! (Except.ok a) = a
- cvc5.Error.unwrap! (Except.error e) = panicWithPosWithDecl "cvc5" "cvc5.Error.unwrap!" 311 14 e.toString
Instances For
Equations
- cvc5.Error.instToString = { toString := cvc5.Error.toString }
Comparison for structural equality.
Equations
- cvc5.Result.instBEq = { beq := cvc5.Result.beq }
Equations
- cvc5.Result.instHashable = { hash := cvc5.Result.hash }
True if this result is from a satisfiable checkSat or checkSatAssuming query.
True if this result is from a unsatisfiable checkSat or checkSatAssuming query.
True if this result is from a checkSat or checkSatAssuming query and cvc5 was not able to
determine (un)satisfiability.
An explanation for an unknown query result.
Note that if the result is (un)sat, this function returns UnknownExplanation.UNKNOWN_REASON.
An explanation for an unknown query result, none if the result in not unknown.
Equations
Instances For
A string representation of this result.
Equations
- cvc5.Result.instToString = { toString := cvc5.Result.toString }
Equations
- cvc5.Sort.instInhabited = { default := cvc5.Sort.null () }
Comparison for structural equality.
Greater than or equal comparison.
Equations
- cvc5.Sort.instOrd = { compare := cvc5.Sort.compare }
Equations
- cvc5.Sort.instHashable = { hash := cvc5.Sort.hash }
Determine if this is the null sort (cvc5.Sort).
Determine if this is the Boolean sort (SMT-LIB: Bool).
Determine if this is the Integer sort (SMT-LIB: Int).
Determine if this is the Real sort (SMT-LIB: Real).
Determine if this is the String sort (SMT-LIB: String).
Determine if this is the regular expression sort (SMT-LIB: RegLan).
Determine if this is the rounding mode sort (SMT-LIB: RoundingMode).
Determine if this is a bit-vector sort (SMT-LIB: (_ BitVec i)).
Determine if this is a floating-point sort (SMT-LIB: (_ FloatingPoint eb sb)).
Determine if this is a datatype sort.
Determine if this is a datatype constructor sort.
Determine if this is a datatype selector sort.
Determine if this is a datatype tester sort.
Determine if this is a datatype updater sort.
Determine if this is a function sort.
Determine if this is a predicate sort.
A predicate sort is a function sort that maps to the Boolean sort. All predicate sorts are also function sorts.
Determine if this is a tuple sort.
Determine if this is a nullable sort.
Determine if this is a record sort.
Warning: this function is experimental and may change in future versions.
Determine if this is an array sort.
Determine if this is a finite field sort.
Determine if this is a Sequence sort.
Determine if this is an abstract sort.
Determine if this is an uninterpreted sort.
Determine if this is an uninterpreted sort constructor.
An uninterpreted sort constructor has arity > 0 and can be instantiated to construct uninterpreted
sorts with given sort parameters.
Determine if this is an instantiated (parametric datatype or uninterpreted sort constructor) sort.
An instantiated sort is a sort that has been constructed from instantiating a sort with sort
arguments --- see also cvc5.Sort.instantiate.
A string representation of this sort.
Determine if this term has a symbol (a name).
For example, free constants and variables have symbols.
Equations
- v0.hasSymbol? = v0.hasSymbol.toOption
Instances For
Determine if this term has a symbol (a name).
For example, free constants and variables have symbols.
Equations
Instances For
Get the symbol of this sort.
The symbol of this sort is the string that was provided when consrtucting it via one of
Solver.mkUninterpretedSort, Solver.mkUnresolvedSort, or
Solver.mkUninterpretedSortConstructorSort.
Equations
Instances For
Get the symbol of this sort.
The symbol of this sort is the string that was provided when consrtucting it via one of
Solver.mkUninterpretedSort, Solver.mkUnresolvedSort, or
Solver.mkUninterpretedSortConstructorSort.
Equations
- v0.getSymbol? = v0.getSymbol.toOption
Instances For
Get the symbol of this sort.
The symbol of this sort is the string that was provided when consrtucting it via one of
Solver.mkUninterpretedSort, Solver.mkUnresolvedSort, or
Solver.mkUninterpretedSortConstructorSort.
The arity of a function sort.
Equations
Instances For
The arity of a function sort.
Equations
Instances For
The domain sorts of a function sort.
Equations
Instances For
The domain sorts of a function sort.
Equations
Instances For
The codomain sort of a function sort.
Equations
Instances For
The codomain sort of a function sort.
Equations
Instances For
The array index sort of an array index.
Equations
Instances For
The array index sort of an array index.
Equations
Instances For
The array element sort of an array index.
Equations
Instances For
The array element sort of an array index.
Equations
Instances For
The element sort of a set sort.
Equations
Instances For
The element sort of a set sort.
Equations
Instances For
The element sort of a bag sort.
Equations
Instances For
The element sort of a bag sort.
Equations
Instances For
The element sort of a sequence sort.
Equations
Instances For
The element sort of a sequence sort.
Equations
Instances For
The sort kind of an abstract sort, which denotes the kind of sorts that this abstract sort denotes.
Equations
Instances For
The sort kind of an abstract sort, which denotes the kind of sorts that this abstract sort denotes.
Equations
Instances For
The arity of an uninterpreted sort constructor sort.
Equations
Instances For
The arity of an uninterpreted sort constructor sort.
Equations
Instances For
The bit-width of the bit-vector sort.
Equations
Instances For
The bit-width of the bit-vector sort.
Equations
Instances For
The size of the finite field sort.
Equations
Instances For
The size of the finite field sort.
Equations
Instances For
The bit-width of the exponent of the floating-point sort.
Equations
Instances For
The bit-width of the exponent of the floating-point sort.
Instances For
The width of the significand of the floating-point sort.
Equations
Instances For
The width of the significand of the floating-point sort.
Equations
Instances For
The length of a tuple sort.
Equations
Instances For
The length of a tuple sort.
Equations
Instances For
The element sorts of a tuple sort.
Equations
Instances For
The element sorts of a tuple sort.
Equations
- v0.getTupleSorts? = v0.getTupleSorts.toOption
Instances For
The element sort of a nullable sort.
Equations
Instances For
The element sort of a nullable sort.
Equations
Instances For
Get the associated uninterpreted sort constructor of an instantiated uninterpreted sort.
Equations
Instances For
Get the associated uninterpreted sort constructor of an instantiated uninterpreted sort.
Equations
Instances For
Instantiate a parameterized datatype sort or uninterpreted sort constructor sort.
Create sort parameters with TermManager.mkParamSort symbol.
paramsThe list of sort parameters to instantiate with.
Equations
- v0.instantiate? v1 = (v0.instantiate v1).toOption
Instances For
Instantiate a parameterized datatype sort or uninterpreted sort constructor sort.
Create sort parameters with TermManager.mkParamSort symbol.
paramsThe list of sort parameters to instantiate with.
Equations
- v0.instantiate! v1 = cvc5.Error.unwrap! (v0.instantiate v1)
Instances For
Instantiate a parameterized datatype sort or uninterpreted sort constructor sort.
Create sort parameters with TermManager.mkParamSort symbol.
paramsThe list of sort parameters to instantiate with.
Simultaneous substitution of Sorts.
Note that this replacement is applied during a pre-order traversal and only once to the sort. It is not run until fix point. In the case that sorts contains duplicates, the replacement earliest in
the vector takes priority.
Warning: This function is experimental and may change in future versions.
sortsThe sub-sorts to be substituted within this sort.replacementsThe sort replacing the substituted sub-sorts.
Equations
- v0.substitute! v1 v2 = cvc5.Error.unwrap! (v0.substitute v1 v2)
Instances For
Simultaneous substitution of Sorts.
Note that this replacement is applied during a pre-order traversal and only once to the sort. It is not run until fix point. In the case that sorts contains duplicates, the replacement earliest in
the vector takes priority.
Warning: This function is experimental and may change in future versions.
sortsThe sub-sorts to be substituted within this sort.replacementsThe sort replacing the substituted sub-sorts.
Equations
- v0.substitute? v1 v2 = (v0.substitute v1 v2).toOption
Instances For
Simultaneous substitution of Sorts.
Note that this replacement is applied during a pre-order traversal and only once to the sort. It is not run until fix point. In the case that sorts contains duplicates, the replacement earliest in
the vector takes priority.
Warning: This function is experimental and may change in future versions.
sortsThe sub-sorts to be substituted within this sort.replacementsThe sort replacing the substituted sub-sorts.
Equations
- cvc5.Sort.instToString = { toString := cvc5.Sort.toString }
Equations
- cvc5.Sort.instRepr = { reprPrec := fun (self : cvc5.Sort) (x : Nat) => Std.Format.text self.toString }
Equations
- cvc5.Op.instInhabited = { default := cvc5.Op.null () }
Determine if this operator is indexed.
Get the number of indices of this operator.
Get the index at position i of an indexed operator.
Get the string representation of this operator.
Equations
- cvc5.Op.instToString = { toString := cvc5.Op.toString }
Equations
- cvc5.Term.instInhabited = { default := cvc5.Term.null () }
Equations
- cvc5.Term.instHashable = { hash := cvc5.Term.hash }
Determine if this term has an operator.
Determine if this term has a symbol (a name).
For example, free constants and variables have symbols.
Get the number of children of this term.
Get the child term of this term at a given index.
Get the operator of a term with an operator.
Requires that this term has an operator (see hasOp).
Equations
- v0.getOp! = cvc5.Error.unwrap! v0.getOp
Instances For
Get the value of a Boolean term as a native Boolean value.
Requires term to have sort Bool.
Equations
Instances For
Get the value of a Boolean term as a native Boolean value.
Requires term to have sort Bool.
Equations
Instances For
Get the string representation of a bit-vector value.
Requires term to have a bit-vector sort.
base:2for binary,10for decimal, and16for hexadecimal.
Equations
- v0.getBitVectorValue? v1 = (v0.getBitVectorValue v1).toOption
Instances For
Get the string representation of a bit-vector value.
Requires term to have a bit-vector sort.
base:2for binary,10for decimal, and16for hexadecimal.
Equations
- v0.getBitVectorValue! v1 = cvc5.Error.unwrap! (v0.getBitVectorValue v1)
Instances For
Get the native integral value of an integral value.
Equations
Instances For
Get the native integral value of an integral value.
Equations
Instances For
Get the native rational value of a real, rational-compatible value.
Equations
Instances For
Get the native rational value of a real, rational-compatible value.
Get the native rational value of a real, rational-compatible value.
Equations
Instances For
Get the symbol of this term.
Requires that this term has a symbol (see hasSymbol).
The symbol of the term is the string that was provided when constructing it via
TermManager.mkConst or TermManager.mkVar.
Equations
Instances For
Get the symbol of this term.
Requires that this term has a symbol (see hasSymbol).
The symbol of the term is the string that was provided when constructing it via
TermManager.mkConst or TermManager.mkVar.
Equations
- v0.getSymbol? = v0.getSymbol.toOption
Instances For
Get skolem identifier of this term.
Requires isSkolem.
Equations
- v0.getSkolemId? = v0.getSkolemId.toOption
Instances For
Get the skolem indices of this term.
Requires isSkolem.
Returns the skolem indices of this term. This is a list of terms that the skolem function is indexed
by. For example, the array diff skolem SkolemId.ARRAY_DEQ_DIFF is indexed by two arrays.
Equations
Instances For
Get the skolem indices of this term.
Requires isSkolem.
Returns the skolem indices of this term. This is a list of terms that the skolem function is indexed
by. For example, the array diff skolem SkolemId.ARRAY_DEQ_DIFF is indexed by two arrays.
Get the skolem indices of this term.
Requires isSkolem.
Returns the skolem indices of this term. This is a list of terms that the skolem function is indexed
by. For example, the array diff skolem SkolemId.ARRAY_DEQ_DIFF is indexed by two arrays.
Equations
Instances For
Equations
- t.forIn b f = cvc5.Term.forIn.loop t f t.getNumChildren ⋯ b
Instances For
Equations
- One or more equations did not get rendered due to their size.
- cvc5.Term.forIn.loop t f 0 x b = pure b
Instances For
Equations
- cvc5.Term.instForIn = { forIn := fun {β : Type ?u.10} [Monad m] => cvc5.Term.forIn }
Get the children of a term.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If-then-else.
cnd: condition, must be a Boolean term;thn: then-branch of some sortS;els: else-branch of the same sortS.
Equations
- v0.ite! v1 v2 = cvc5.Error.unwrap! (v0.ite v1 v2)
Instances For
A string representation of this term.
Equations
- cvc5.Term.instToString = { toString := cvc5.Term.toString }
Equations
- cvc5.Proof.instInhabited = { default := cvc5.Proof.null () }
Get the proof rule used by the root step of the root.
Get the proof rewrite rule used by the root step of the proof.
Requires that getRule does not return ProofRule.DSL_REWRITE or ProofRule.REWRITE.
Equations
Instances For
Get the proof rewrite rule used by the root step of the proof.
Requires that getRule does not return ProofRule.DSL_REWRITE or ProofRule.REWRITE.
Get the proof rewrite rule used by the root step of the proof.
Requires that getRule does not return ProofRule.DSL_REWRITE or ProofRule.REWRITE.
Equations
Instances For
The conclusion of the root step of the proof.
The premises of the root step of the proof.
The arguments of the root step of the proof as a vector of terms.
Some of those terms might be strings.
Operator overloading for referential equality of two proofs.
Equations
- cvc5.Proof.instHashable = { hash := cvc5.Proof.hash }
Get the Boolean sort.
Get the Integer sort.
Get the Real sort.
Get the regular expression sort.
Get the rounding mode sort.
Get the string sort.
Create an array sort.
indexSortThe array index sort.elemSortThe array element sort.
Equations
- v0.mkArraySort! v1 v2 = cvc5.Error.unwrap! (v0.mkArraySort v1 v2)
Instances For
Create an array sort.
indexSortThe array index sort.elemSortThe array element sort.
Equations
- v0.mkArraySort? v1 v2 = (v0.mkArraySort v1 v2).toOption
Instances For
Create an array sort.
indexSortThe array index sort.elemSortThe array element sort.
Create a bit-vector sort.
sizeThe bit-width of the bit-vector sort.
Equations
- v0.mkBitVectorSort! v1 = cvc5.Error.unwrap! (v0.mkBitVectorSort v1)
Instances For
Create a bit-vector sort.
sizeThe bit-width of the bit-vector sort.
Equations
- v0.mkBitVectorSort? v1 = (v0.mkBitVectorSort v1).toOption
Instances For
Create a bit-vector sort.
sizeThe bit-width of the bit-vector sort.
Create a floating-point sort.
expThe bit-width of the exponent of the floating-point sort.sigThe bit-width of the significand of the floating-point sort.
Equations
- v0.mkFloatingPointSort? v1 v2 = (v0.mkFloatingPointSort v1 v2).toOption
Instances For
Create a floating-point sort.
expThe bit-width of the exponent of the floating-point sort.sigThe bit-width of the significand of the floating-point sort.
Create a floating-point sort.
expThe bit-width of the exponent of the floating-point sort.sigThe bit-width of the significand of the floating-point sort.
Equations
- v0.mkFloatingPointSort! v1 v2 = cvc5.Error.unwrap! (v0.mkFloatingPointSort v1 v2)
Instances For
Create a finite-field sort from a given string of base n.
sizeThe modulus of the field. Must be a prime.
Equations
- tm.mkFiniteFieldSort = (fun (x : String) => cvc5.TermManager.mkFiniteFieldSortFromString✝ tm x) ∘ toString
Instances For
Create a finite-field sort from a given string of base n.
sizeThe modulus of the field. Must be a prime.
Equations
- tm.mkFiniteFieldSort! = cvc5.Error.unwrap! ∘ (fun (x : String) => cvc5.TermManager.mkFiniteFieldSortFromString✝ tm x) ∘ toString
Instances For
Create a finite-field sort from a given string of base n.
sizeThe modulus of the field. Must be a prime.
Equations
- tm.mkFiniteFieldSort? = Except.toOption ∘ (fun (x : String) => cvc5.TermManager.mkFiniteFieldSortFromString✝ tm x) ∘ toString
Instances For
Create function sort.
sortsThe sort of the function arguments.codomainThe sort of the function return value.
Equations
- v0.mkFunctionSort? v1 v2 = (v0.mkFunctionSort v1 v2).toOption
Instances For
Create function sort.
sortsThe sort of the function arguments.codomainThe sort of the function return value.
Create function sort.
sortsThe sort of the function arguments.codomainThe sort of the function return value.
Equations
- v0.mkFunctionSort! v1 v2 = cvc5.Error.unwrap! (v0.mkFunctionSort v1 v2)
Instances For
Create a predicate sort.
This is equivalent to calling mkFunctionSort with Boolean sort as the codomain.
sortsThe list of sorts of the predicate.
Equations
- v0.mkPredicateSort! v1 = cvc5.Error.unwrap! (v0.mkPredicateSort v1)
Instances For
Create a predicate sort.
This is equivalent to calling mkFunctionSort with Boolean sort as the codomain.
sortsThe list of sorts of the predicate.
Equations
- v0.mkPredicateSort? v1 = (v0.mkPredicateSort v1).toOption
Instances For
Create a predicate sort.
This is equivalent to calling mkFunctionSort with Boolean sort as the codomain.
sortsThe list of sorts of the predicate.
Create a tuple sort.
sortsThe sorts of the elements of the tuple.
Equations
- v0.mkTupleSort! v1 = cvc5.Error.unwrap! (v0.mkTupleSort v1)
Instances For
Create a tuple sort.
sortsThe sorts of the elements of the tuple.
Equations
- v0.mkTupleSort? v1 = (v0.mkTupleSort v1).toOption
Instances For
Create a tuple sort.
sortsThe sorts of the elements of the tuple.
Create an uninterpreted sort constructor sort.
An uninterpreted sort constructor is an uninterpreted sort with arity > 0.
arityThe arity of the sort (must be > 0).symbolThe symbol of the sort.
Equations
- v0.mkUninterpretedSortConstructorSort? v1 v2 = (v0.mkUninterpretedSortConstructorSort v1 v2).toOption
Instances For
Create an uninterpreted sort constructor sort.
An uninterpreted sort constructor is an uninterpreted sort with arity > 0.
arityThe arity of the sort (must be > 0).symbolThe symbol of the sort.
Create an uninterpreted sort constructor sort.
An uninterpreted sort constructor is an uninterpreted sort with arity > 0.
arityThe arity of the sort (must be > 0).symbolThe symbol of the sort.
Equations
- v0.mkUninterpretedSortConstructorSort! v1 v2 = cvc5.Error.unwrap! (v0.mkUninterpretedSortConstructorSort v1 v2)
Instances For
Create a set parameter.
elemSortThe sort of the set elements.
Equations
- v0.mkSetSort! v1 = cvc5.Error.unwrap! (v0.mkSetSort v1)
Instances For
Create a set parameter.
elemSortThe sort of the set elements.
Create a set parameter.
elemSortThe sort of the set elements.
Equations
- v0.mkSetSort? v1 = (v0.mkSetSort v1).toOption
Instances For
Create a set parameter.
elemSortThe sort of the set elements.
Equations
- v0.mkBagSort! v1 = cvc5.Error.unwrap! (v0.mkBagSort v1)
Instances For
Create a set parameter.
elemSortThe sort of the set elements.
Equations
- v0.mkBagSort? v1 = (v0.mkBagSort v1).toOption
Instances For
Create a set parameter.
elemSortThe sort of the set elements.
Create a set parameter.
elemSortThe sort of the set elements.
Equations
- v0.mkSequenceSort? v1 = (v0.mkSequenceSort v1).toOption
Instances For
Create a set parameter.
elemSortThe sort of the set elements.
Equations
- v0.mkSequenceSort! v1 = cvc5.Error.unwrap! (v0.mkSequenceSort v1)
Instances For
Create a set parameter.
elemSortThe sort of the set elements.
Create an abstract sort. An abstract sort represents a sort for a given kind whose parameters and arguments are unspecified.
The kind k must be the kind of a sort that can be abstracted, i.e. a sort that has indices or
arguments sorts. For example, SortKind.ARRAY_SORT and SortKind.BITVECTOR_SORT can be passed as
the kind k to this function, while SortKind.INTEGER_SORT and SortKind.STRING_SORT cannot.
NB: Providing the kind SortKind.ABSTRACT_SORT as an argument to this function returns the
(fully) unspecified sort, denoted ?.
NB: Providing a kind k that has no indices and a fixed arity of argument sorts will return the
sort of kind k whose arguments are the unspecified sort. For example, mkAbstractSort SortKind.ARRAY_SORT will return the sort (ARRAY_SORT ? ?) instead of the abstract sort whose
abstract kind is SortKind.ARRAY_SORT.
Create an abstract sort. An abstract sort represents a sort for a given kind whose parameters and arguments are unspecified.
The kind k must be the kind of a sort that can be abstracted, i.e. a sort that has indices or
arguments sorts. For example, SortKind.ARRAY_SORT and SortKind.BITVECTOR_SORT can be passed as
the kind k to this function, while SortKind.INTEGER_SORT and SortKind.STRING_SORT cannot.
NB: Providing the kind SortKind.ABSTRACT_SORT as an argument to this function returns the
(fully) unspecified sort, denoted ?.
NB: Providing a kind k that has no indices and a fixed arity of argument sorts will return the
sort of kind k whose arguments are the unspecified sort. For example, mkAbstractSort SortKind.ARRAY_SORT will return the sort (ARRAY_SORT ? ?) instead of the abstract sort whose
abstract kind is SortKind.ARRAY_SORT.
Equations
- v0.mkAbstractSort? v1 = (v0.mkAbstractSort v1).toOption
Instances For
Create an abstract sort. An abstract sort represents a sort for a given kind whose parameters and arguments are unspecified.
The kind k must be the kind of a sort that can be abstracted, i.e. a sort that has indices or
arguments sorts. For example, SortKind.ARRAY_SORT and SortKind.BITVECTOR_SORT can be passed as
the kind k to this function, while SortKind.INTEGER_SORT and SortKind.STRING_SORT cannot.
NB: Providing the kind SortKind.ABSTRACT_SORT as an argument to this function returns the
(fully) unspecified sort, denoted ?.
NB: Providing a kind k that has no indices and a fixed arity of argument sorts will return the
sort of kind k whose arguments are the unspecified sort. For example, mkAbstractSort SortKind.ARRAY_SORT will return the sort (ARRAY_SORT ? ?) instead of the abstract sort whose
abstract kind is SortKind.ARRAY_SORT.
Equations
- v0.mkAbstractSort! v1 = cvc5.Error.unwrap! (v0.mkAbstractSort v1)
Instances For
Create an uninterpreted sort.
symbolThe name of the sort.
Create a nullable sort.
sortThe sort of the element of the nullable.
Create a nullable sort.
sortThe sort of the element of the nullable.
Equations
- v0.mkNullableSort? v1 = (v0.mkNullableSort v1).toOption
Instances For
Create a nullable sort.
sortThe sort of the element of the nullable.
Equations
- v0.mkNullableSort! v1 = cvc5.Error.unwrap! (v0.mkNullableSort v1)
Instances For
Create a sort parameter.
symbolThe name of the sort.
Warning: This function is experimental and may change in future versions.
Create a Boolean constant.
b: The Boolean constant.
Create an integer-value term.
Equations
Instances For
Create a real-value term from numerator/denominator Int-s.
Equations
- tm.mkReal num (Int.ofNat 0) den_ne_0 = match ⋯.elim with | (num, den) => tm.mkRealOfRat (Std.Internal.mkRat num den)
- tm.mkReal num (Int.ofNat den_2) den_ne_0 = tm.mkRealOfRat (Std.Internal.mkRat num den_2)
- tm.mkReal num (Int.negSucc denMinus1) den_ne_0 = tm.mkRealOfRat (Std.Internal.mkRat (-num) denMinus1.succ)
Instances For
Create a real-value term from a Std.Internal.Rat.
Equations
- tm.mkRealOfRat rat = cvc5.Error.unwrap! (cvc5.TermManager.mkRealFromString✝ tm (toString "" ++ toString rat.num ++ toString "/" ++ toString rat.den ++ toString ""))
Instances For
Create operator of Kind:
Kind.BITVECTOR_EXTRACTKind.BITVECTOR_REPEATKind.BITVECTOR_ROTATE_LEFTKind.BITVECTOR_ROTATE_RIGHTKind.BITVECTOR_SIGN_EXTENDKind.BITVECTOR_ZERO_EXTENDKind.DIVISIBLEKind.FLOATINGPOINT_TO_FP_FROM_FPKind.FLOATINGPOINT_TO_FP_FROM_IEEE_BVKind.FLOATINGPOINT_TO_FP_FROM_REALKind.FLOATINGPOINT_TO_FP_FROM_SBVKind.FLOATINGPOINT_TO_FP_FROM_UBVKind.FLOATINGPOINT_TO_SBVKind.FLOATINGPOINT_TO_UBVKind.INT_TO_BITVECTORKind.TUPLE_PROJECT
See cvc5.Kind for a description of the parameters.
kindThe kind of the operator.argsThe arguments (indices) of the operator.
If args is empty, the Op simply wraps the cvc5.Kind. The Kind can be used in
Solver.mkTerm directly without creating an Op first.
Create operator of Kind:
Kind.BITVECTOR_EXTRACTKind.BITVECTOR_REPEATKind.BITVECTOR_ROTATE_LEFTKind.BITVECTOR_ROTATE_RIGHTKind.BITVECTOR_SIGN_EXTENDKind.BITVECTOR_ZERO_EXTENDKind.DIVISIBLEKind.FLOATINGPOINT_TO_FP_FROM_FPKind.FLOATINGPOINT_TO_FP_FROM_IEEE_BVKind.FLOATINGPOINT_TO_FP_FROM_REALKind.FLOATINGPOINT_TO_FP_FROM_SBVKind.FLOATINGPOINT_TO_FP_FROM_UBVKind.FLOATINGPOINT_TO_SBVKind.FLOATINGPOINT_TO_UBVKind.INT_TO_BITVECTORKind.TUPLE_PROJECT
See cvc5.Kind for a description of the parameters.
kindThe kind of the operator.argsThe arguments (indices) of the operator.
If args is empty, the Op simply wraps the cvc5.Kind. The Kind can be used in
Solver.mkTerm directly without creating an Op first.
Equations
- v0.mkOpOfIndices? v1 v2 = (v0.mkOpOfIndices v1 v2).toOption
Instances For
Create operator of Kind:
Kind.BITVECTOR_EXTRACTKind.BITVECTOR_REPEATKind.BITVECTOR_ROTATE_LEFTKind.BITVECTOR_ROTATE_RIGHTKind.BITVECTOR_SIGN_EXTENDKind.BITVECTOR_ZERO_EXTENDKind.DIVISIBLEKind.FLOATINGPOINT_TO_FP_FROM_FPKind.FLOATINGPOINT_TO_FP_FROM_IEEE_BVKind.FLOATINGPOINT_TO_FP_FROM_REALKind.FLOATINGPOINT_TO_FP_FROM_SBVKind.FLOATINGPOINT_TO_FP_FROM_UBVKind.FLOATINGPOINT_TO_SBVKind.FLOATINGPOINT_TO_UBVKind.INT_TO_BITVECTORKind.TUPLE_PROJECT
See cvc5.Kind for a description of the parameters.
kindThe kind of the operator.argsThe arguments (indices) of the operator.
If args is empty, the Op simply wraps the cvc5.Kind. The Kind can be used in
Solver.mkTerm directly without creating an Op first.
Equations
- v0.mkOpOfIndices! v1 v2 = cvc5.Error.unwrap! (v0.mkOpOfIndices v1 v2)
Instances For
Create operator of Kind:
Kind.BITVECTOR_EXTRACTKind.BITVECTOR_REPEATKind.BITVECTOR_ROTATE_LEFTKind.BITVECTOR_ROTATE_RIGHTKind.BITVECTOR_SIGN_EXTENDKind.BITVECTOR_ZERO_EXTENDKind.DIVISIBLEKind.FLOATINGPOINT_TO_FP_FROM_FPKind.FLOATINGPOINT_TO_FP_FROM_IEEE_BVKind.FLOATINGPOINT_TO_FP_FROM_REALKind.FLOATINGPOINT_TO_FP_FROM_SBVKind.FLOATINGPOINT_TO_FP_FROM_UBVKind.FLOATINGPOINT_TO_SBVKind.FLOATINGPOINT_TO_UBVKind.INT_TO_BITVECTORKind.TUPLE_PROJECT
See cvc5.Kind for a description of the parameters.
kindThe kind of the operator.argsThe arguments (indices) of the operator.
If args is empty, the Op simply wraps the cvc5.Kind. The Kind can be used in
Solver.mkTerm directly without creating an Op first.
Equations
Instances For
Create operator of Kind:
Kind.BITVECTOR_EXTRACTKind.BITVECTOR_REPEATKind.BITVECTOR_ROTATE_LEFTKind.BITVECTOR_ROTATE_RIGHTKind.BITVECTOR_SIGN_EXTENDKind.BITVECTOR_ZERO_EXTENDKind.DIVISIBLEKind.FLOATINGPOINT_TO_FP_FROM_FPKind.FLOATINGPOINT_TO_FP_FROM_IEEE_BVKind.FLOATINGPOINT_TO_FP_FROM_REALKind.FLOATINGPOINT_TO_FP_FROM_SBVKind.FLOATINGPOINT_TO_FP_FROM_UBVKind.FLOATINGPOINT_TO_SBVKind.FLOATINGPOINT_TO_UBVKind.INT_TO_BITVECTORKind.TUPLE_PROJECT
See cvc5.Kind for a description of the parameters.
kindThe kind of the operator.argsThe arguments (indices) of the operator.
If args is empty, the Op simply wraps the cvc5.Kind. The Kind can be used in
Solver.mkTerm directly without creating an Op first.
Instances For
Create operator of Kind:
Kind.BITVECTOR_EXTRACTKind.BITVECTOR_REPEATKind.BITVECTOR_ROTATE_LEFTKind.BITVECTOR_ROTATE_RIGHTKind.BITVECTOR_SIGN_EXTENDKind.BITVECTOR_ZERO_EXTENDKind.DIVISIBLEKind.FLOATINGPOINT_TO_FP_FROM_FPKind.FLOATINGPOINT_TO_FP_FROM_IEEE_BVKind.FLOATINGPOINT_TO_FP_FROM_REALKind.FLOATINGPOINT_TO_FP_FROM_SBVKind.FLOATINGPOINT_TO_FP_FROM_UBVKind.FLOATINGPOINT_TO_SBVKind.FLOATINGPOINT_TO_UBVKind.INT_TO_BITVECTORKind.TUPLE_PROJECT
See cvc5.Kind for a description of the parameters.
kindThe kind of the operator.argsThe arguments (indices) of the operator.
If args is empty, the Op simply wraps the cvc5.Kind. The Kind can be used in
Solver.mkTerm directly without creating an Op first.
Instances For
Create operator of kind:
Kind.DIVISIBLE(to support arbitrary precision integers)
See cvc5.Kind for a description of the parameters.
kindThe kind of the operator.argThe string argument to this operator.
Equations
- v0.mkOpOfString! v1 v2 = cvc5.Error.unwrap! (v0.mkOpOfString v1 v2)
Instances For
Create operator of kind:
Kind.DIVISIBLE(to support arbitrary precision integers)
See cvc5.Kind for a description of the parameters.
kindThe kind of the operator.argThe string argument to this operator.
Equations
- v0.mkOpOfString? v1 v2 = (v0.mkOpOfString v1 v2).toOption
Instances For
Create operator of kind:
Kind.DIVISIBLE(to support arbitrary precision integers)
See cvc5.Kind for a description of the parameters.
kindThe kind of the operator.argThe string argument to this operator.
Create n-ary term of given kind.
kindThe kind of the term.childrenThe children of the term.
Equations
- v0.mkTerm! v1 v2 = cvc5.Error.unwrap! (v0.mkTerm v1 v2)
Instances For
Create n-ary term of given kind from a given operator.
Create operators with mkOp.
opThe operator.childrenThe children of the term.
Equations
- v0.mkTermOfOp? v1 v2 = (v0.mkTermOfOp v1 v2).toOption
Instances For
Create n-ary term of given kind from a given operator.
Create operators with mkOp.
opThe operator.childrenThe children of the term.
Equations
- v0.mkTermOfOp! v1 v2 = cvc5.Error.unwrap! (v0.mkTermOfOp v1 v2)
Instances For
Simplify a term or formula based on rewriting and (optionally) applying substitutions for solved variables.
If applySubs is true, then for example, if (= x 0) was asserted to this solver, this function
may replace occurrences of x with 0.
tThe term to simplify.applySubsTrue to apply substitutions for solved variables.
Declare n-ary function symbol.
SMT-LIB:
\verbatim embed:rst:leading-asterisk .. code:: smtlib
(declare-fun <symbol> ( <sort>* ) <sort>)
\endverbatim
symbol: The name of the function.sorts: The sorts of the parameters to this function.sort: The sort of the return value of this function.fresh: If true, then this method always returns a new Term. Otherwise, this method will always return the same Term for each call with the given sorts and symbol where fresh is false.
Get the values of the given term in the current model.
SMT-LIB:
\verbatim embed:rst:leading-asterisk .. code:: smtlib
(get-value ( <term>* ))
\endverbatim
terms: The term for which the value is queried.
Get the values of the given terms in the current model.
SMT-LIB:
\verbatim embed:rst:leading-asterisk .. code:: smtlib
(get-value ( <term>* ))
\endverbatim
terms: The terms for which the values are queried.
Run a query given a term manager tm.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Run a query given a term manager tm.
Equations
- One or more equations did not get rendered due to their size.