Generated arithmetic constructors, sort-erased #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Euclidean integer division, left-associative; unspecified on a zero divisor.
Equations
- lft.intDiv rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.INTS_DIVISION #[lft, rgt]
Instances For
Base-two logarithm.
Equations
- arg.log2 = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.LOG2 #[arg]
Instances For
Arithmetic negation.
Equations
- arithTerm.neg = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.NEG #[arithTerm]
Instances For
sub over two or more terms.
Equations
- Cvc.Untyped.Term.subN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SUB terms
Instances For
A real literal.
Equations
- Cvc.Untyped.Term.mkReal r = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkRealOfRat r
Instances For
An integer literal, read from its decimal representation.
Equations
- Cvc.Untyped.Term.mkIntOfString repr = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkIntegerOfString repr
Instances For
Binary greater-than; gtN chains, as ltN does.
Equations
- lft.gt rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.GT #[lft, rgt]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The constant π.
Equations
- Cvc.Untyped.Term.pi = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkPi
Instances For
Binary less-than-or-equal-to; leN chains, as ltN does.
Equations
- lft.le rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.LEQ #[lft, rgt]
Instances For
Cosecant.
Equations
- arg.cosecant = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.COSECANT #[arg]
Instances For
Two raised to a non-negative exponent.
Equations
- exponent.pow2 = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.POW2 #[exponent]
Instances For
Conversion to an integer, rounding towards negative infinity.
Equations
- arithTerm.toInt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.TO_INTEGER #[arithTerm]
Instances For
ge over two or more terms.
Equations
- Cvc.Untyped.Term.geN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.GEQ terms
Instances For
Real division, left-associative; unspecified on a zero divisor.
Equations
- lft.realDiv rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.DIVISION #[lft, rgt]
Instances For
intDivTotal over two or more terms.
Equations
- Cvc.Untyped.Term.intDivTotalN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.INTS_DIVISION_TOTAL terms
Instances For
Bit-wise and of the low size bits of lft and rgt; zero when size ≤ 0.
Equations
- size.piand lft rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.PIAND #[size, lft, rgt]
Instances For
Euclidean integer division, left-associative; zero on a zero divisor.
Equations
- lft.intDivTotal rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.INTS_DIVISION_TOTAL #[lft, rgt]
Instances For
Absolute value.
Equations
- arithTerm.abs = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.ABS #[arithTerm]
Instances For
Arc cotangent.
Equations
- arg.arccotangent = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.ARCCOTANGENT #[arg]
Instances For
lt over two or more terms.
Equations
- Cvc.Untyped.Term.ltN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.LT terms
Instances For
Exponentiation.
Equations
- base.pow exponent = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.POW #[base, exponent]
Instances For
Arc tangent.
Equations
- arg.arctangent = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.ARCTANGENT #[arg]
Instances For
Arc cosecant.
Equations
- arg.arccosecant = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.ARCCOSECANT #[arg]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
le over two or more terms.
Equations
- Cvc.Untyped.Term.leN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.LEQ terms
Instances For
Binary subtraction; subN is left-associative.
Equations
- lft.sub rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SUB #[lft, rgt]
Instances For
Whether arg is divisible by divisor.
Equations
- Cvc.Untyped.Term.divisible divisor arg = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => do let __do_lift ← tm.mkOpOfIndices cvc5.Kind.DIVISIBLE #[divisor] tm.mkTermOfOp __do_lift #[arg]
Instances For
Cosine.
Equations
- arg.cosine = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.COSINE #[arg]
Instances For
Euclidean integer modulus; the dividend on a zero divisor.
Equations
- lft.intModTotal rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.INTS_MODULUS_TOTAL #[lft, rgt]
Instances For
realDiv over two or more terms.
Equations
- Cvc.Untyped.Term.realDivN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.DIVISION terms
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Binary addition.
Equations
- lft.add rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.ADD #[lft, rgt]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
A real literal, read from a decimal ("1.5") or a fraction ("3/4").
Equations
- Cvc.Untyped.Term.mkRealOfString repr = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkRealOfString repr
Instances For
Cotangent.
Equations
- arg.cotangent = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.COTANGENT #[arg]
Instances For
Arc secant.
Equations
- arg.arcsecant = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.ARCSECANT #[arg]
Instances For
Binary multiplication.
Equations
- lft.mul rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.MULT #[lft, rgt]
Instances For
Binary greater-than-or-equal-to; geN chains, as ltN does.
Equations
- lft.ge rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.GEQ #[lft, rgt]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
mul over two or more terms.
Equations
- Cvc.Untyped.Term.mulN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.MULT terms
Instances For
gt over two or more terms.
Equations
- Cvc.Untyped.Term.gtN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.GT terms
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Square root.
Equations
- arg.sqrt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SQRT #[arg]
Instances For
Conversion to a real.
Equations
- arithTerm.toReal = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.TO_REAL #[arithTerm]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whether an arithmetic term denotes an integer.
Equations
- arithTerm.isInt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.IS_INTEGER #[arithTerm]
Instances For
Sine.
Equations
- arg.sine = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SINE #[arg]
Instances For
Bit-wise and of the low size bits of lft and rgt.
Equations
- Cvc.Untyped.Term.iand size lft rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => do let __do_lift ← tm.mkOpOfIndices cvc5.Kind.IAND #[size] tm.mkTermOfOp __do_lift #[lft, rgt]
Instances For
Tangent.
Equations
- arg.tangent = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.TANGENT #[arg]
Instances For
The exponential function.
Equations
- arg.exp = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.EXPONENTIAL #[arg]
Instances For
intDiv over two or more terms.
Equations
- Cvc.Untyped.Term.intDivN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.INTS_DIVISION terms
Instances For
Real division, left-associative; zero on a zero divisor.
Equations
- lft.realDivTotal rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.DIVISION_TOTAL #[lft, rgt]
Instances For
Secant.
Equations
- arg.secant = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.SECANT #[arg]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
realDivTotal over two or more terms.
Equations
- Cvc.Untyped.Term.realDivTotalN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.DIVISION_TOTAL terms
Instances For
Binary less-than; ltN chains: ltN #[a, b, c] is a < b ∧ b < c.
Equations
- lft.lt rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.LT #[lft, rgt]
Instances For
Euclidean integer modulus, never negative; unspecified on a zero divisor.
Equations
- lft.intMod rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.INTS_MODULUS #[lft, rgt]
Instances For
Arc sine.
Equations
- arg.arcsine = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.ARCSINE #[arg]
Instances For
Arc cosine.
Equations
- arg.arccosine = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.ARCCOSINE #[arg]
Instances For
An integer literal.
Equations
- Cvc.Untyped.Term.mkInt i = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkInteger i
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
add over two or more terms.
Equations
- Cvc.Untyped.Term.addN terms atLeastTwoElements = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.ADD terms
Instances For
Takes a term apart one level, if Arith owns its operator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Arith's operators, taken apart one level, sort-erased.
- neg
[Ω]
(arithTerm : Term)
: View.Arith
Arithmetic negation.
- add
[Ω]
(kids : Kids)
: View.Arith
Binary addition.
kidsholds every operand, two or more. - sub
[Ω]
(kids : Kids)
: View.Arith
Binary subtraction;
subNis left-associative.kidsholds every operand, two or more. - mul
[Ω]
(kids : Kids)
: View.Arith
Binary multiplication.
kidsholds every operand, two or more. - abs
[Ω]
(arithTerm : Term)
: View.Arith
Absolute value.
- lt [Ω] (kids : Kids) : View.Arith
- le [Ω] (kids : Kids) : View.Arith
- gt [Ω] (kids : Kids) : View.Arith
- ge [Ω] (kids : Kids) : View.Arith
- isInt
[Ω]
(arithTerm : Term)
: View.Arith
Whether an arithmetic term denotes an integer.
- realDiv
[Ω]
(kids : Kids)
: View.Arith
Real division, left-associative; unspecified on a zero divisor.
kidsholds every operand, two or more. - realDivTotal
[Ω]
(kids : Kids)
: View.Arith
Real division, left-associative; zero on a zero divisor.
kidsholds every operand, two or more. - intDiv
[Ω]
(kids : Kids)
: View.Arith
Euclidean integer division, left-associative; unspecified on a zero divisor.
kidsholds every operand, two or more. - intDivTotal
[Ω]
(kids : Kids)
: View.Arith
Euclidean integer division, left-associative; zero on a zero divisor.
kidsholds every operand, two or more. - intMod
[Ω]
(lft rgt : Term)
: View.Arith
Euclidean integer modulus, never negative; unspecified on a zero divisor.
- intModTotal
[Ω]
(lft rgt : Term)
: View.Arith
Euclidean integer modulus; the dividend on a zero divisor.
- pow
[Ω]
(base exponent : Term)
: View.Arith
Exponentiation.
- pow2
[Ω]
(exponent : Term)
: View.Arith
Two raised to a non-negative
exponent. - log2
[Ω]
(arg : Term)
: View.Arith
Base-two logarithm.
- sqrt
[Ω]
(arg : Term)
: View.Arith
Square root.
- exp
[Ω]
(arg : Term)
: View.Arith
The exponential function.
- toReal
[Ω]
(arithTerm : Term)
: View.Arith
Conversion to a real.
- toInt
[Ω]
(arithTerm : Term)
: View.Arith
Conversion to an integer, rounding towards negative infinity.
- piand
[Ω]
(size lft rgt : Term)
: View.Arith
Bit-wise and of the low
sizebits oflftandrgt; zero whensize ≤ 0. - sine
[Ω]
(arg : Term)
: View.Arith
Sine.
- cosine
[Ω]
(arg : Term)
: View.Arith
Cosine.
- tangent
[Ω]
(arg : Term)
: View.Arith
Tangent.
- cosecant
[Ω]
(arg : Term)
: View.Arith
Cosecant.
- secant
[Ω]
(arg : Term)
: View.Arith
Secant.
- cotangent
[Ω]
(arg : Term)
: View.Arith
Cotangent.
- arcsine
[Ω]
(arg : Term)
: View.Arith
Arc sine.
- arccosine
[Ω]
(arg : Term)
: View.Arith
Arc cosine.
- arctangent
[Ω]
(arg : Term)
: View.Arith
Arc tangent.
- arccosecant
[Ω]
(arg : Term)
: View.Arith
Arc cosecant.
- arcsecant
[Ω]
(arg : Term)
: View.Arith
Arc secant.
- arccotangent
[Ω]
(arg : Term)
: View.Arith
Arc cotangent.
- divisible
[Ω]
(divisor : Nat)
(arg : Term)
: View.Arith
Whether
argis divisible bydivisor. - iand
[Ω]
(size : Nat)
(lft rgt : Term)
: View.Arith
Bit-wise and of the low
sizebits oflftandrgt. - pi
[Ω]
: View.Arith
The constant π.
Instances For
Values #
Nat goes to a term but not back: the sort is Int, so reading one back would have to fail on a
negative value rather than answer.
The sign of an integer or real value, -1, 0 or 1, failing on any other term.
Equations
Instances For
Machine-width views #
An SMT integer is unbounded, so these say whether a value happens to fit a machine word and hand it
over if it does. They are views of getIntValue, not a different value.
Determine if this term is an Int32 value.
NB: this will return true for integer constants and real constants that have integer value.
Equations
- term.isInt32Value = (Cvc.Untyped.Term.toUnsafe✝ term).isInt32Value
Instances For
Get the Int32 representation of this integral value.
NB: requires that this term is an Int32 value (see isInt32Value).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Determine if this term is an Int64 value.
NB: this will return true for integer constants and real constants that have integer value.
Equations
- term.isInt64Value = (Cvc.Untyped.Term.toUnsafe✝ term).isInt64Value
Instances For
Get the Int64 representation of this integral value.
NB: requires that this term is an Int64 value (see isInt64Value).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Determine if this term is an UInt32 value.
NB: this will return true for integer constants and real constants that have integer value.
Equations
- term.isUInt32Value = (Cvc.Untyped.Term.toUnsafe✝ term).isUInt32Value
Instances For
Get the UInt32 representation of this integral value.
NB: requires that this term is an UInt32 value (see isUInt32Value).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Determine if this term is an UInt64 value.
NB: this will return true for integer constants and real constants that have integer value.
Equations
- term.isUInt64Value = (Cvc.Untyped.Term.toUnsafe✝ term).isUInt64Value
Instances For
Get the UInt64 representation of this integral value.
NB: requires that this term is an UInt64 value (see isUInt64Value).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whether a term denotes a real that fits a 32-bit numerator and denominator.
Equations
- term.isReal32Value = (Cvc.Untyped.Term.toUnsafe✝ term).isReal32Value
Instances For
Whether a term denotes a real that fits a 64-bit numerator and denominator.
Equations
- term.isReal64Value = (Cvc.Untyped.Term.toUnsafe✝ term).isReal64Value
Instances For
Real algebraic numbers #
A real algebraic number is not a rational, so it has no getRatValue. It is described instead by a
polynomial it is a root of, together with an interval isolating that root.
Determine if this term is a real algebraic number.
Equations
Instances For
Get the lower bound for a real algebraic number value.
NB: asserts isRealAlgebraicNumber.
Equations
Instances For
Get the upper bound for a real algebraic number value.
NB: asserts isRealAlgebraicNumber.
Equations
Instances For
Determine if this real/integer constant term is an integral value.
Equations
- term.isIntValue = (Cvc.Untyped.Term.toUnsafe✝ term).isIntegerValue
Instances For
The integer a term denotes, failing if it denotes none.
Equations
- term.getIntValue? = (Cvc.Untyped.Term.toUnsafe✝ term).getIntegerValue?
Instances For
Determine if this term is a rational value.
NB: A term of kind Kind.PI is not considered to be a real value.
Equations
- term.isRealValue = (Cvc.Untyped.Term.toUnsafe✝ term).isRealValue
Instances For
The real a term denotes as a string, failing if it denotes none.
Equations
- term.getRealValue? = (Cvc.Untyped.Term.toUnsafe✝ term).getRealValue?
Instances For
The real a term denotes as a Rat, failing if it denotes none.
An irrational model value, which nonlinear real arithmetic can produce, is no Rat: read it as a
term instead, and take it apart with the getRealAlgebraicNumber… functions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The real a term denotes as a Rat, failing if it denotes none.
An irrational model value, which nonlinear real arithmetic can produce, is no Rat: read it as a
term instead, and take it apart with the getRealAlgebraicNumber… functions.
Equations
- term.getRatValue? = (Cvc.Untyped.Term.toUnsafe✝ term).getRationalValue?
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Cvc.Untyped.Term.instValueToTermNat = { valueToTerm := fun [Cvc.Ω] (n : Nat) => Cvc.Untyped.Term.mkInt ↑n }
Equations
- One or more equations did not get rendered due to their size.
smt! literals #
Integer and real literals in smt!. Without this module smt! accepts neither.
Integer literal.
Equations
- Cvc.Untyped.Term.smtNum = Lean.ParserDescr.node `Cvc.Untyped.Term.smtNum 1024 (Lean.ParserDescr.const `num)
Instances For
Real literal, 1.5 or 1.5e-3.
Equations
- Cvc.Untyped.Term.smtSci = Lean.ParserDescr.node `Cvc.Untyped.Term.smtSci 1024 (Lean.ParserDescr.const `scientific)