Generated bit-vector constructors, sort-erased #
Conversion of an integer to a bit-vector of the given size, modulo 2 ^ size.
Equations
- Cvc.Untyped.Term.intToBv size arg = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => do let __do_lift ← tm.mkOpOfIndices cvc5.Kind.INT_TO_BITVECTOR #[size] tm.mkTermOfOp __do_lift #[arg]
Instances For
Bitwise exclusive disjunction.
Equations
- lft.bvXor rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_XOR #[lft, rgt]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Bitwise negated conjunction.
Equations
- lft.bvNand rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_NAND #[lft, rgt]
Instances For
Signed less-than.
Equations
- lft.bvSlt rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SLT #[lft, rgt]
Instances For
Signed less-than-or-equal-to.
Equations
- lft.bvSle rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SLE #[lft, rgt]
Instances For
Conversion to an integer, reading the bit-vector as signed.
Equations
- bv.bvSbvToInt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SBV_TO_INT #[bv]
Instances For
Whether signed subtraction overflows.
Equations
- lft.bvSsubo rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SSUBO #[lft, rgt]
Instances For
Signed remainder, sign following the divisor; the dividend on a zero divisor.
Equations
- lft.bvSmod rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SMOD #[lft, rgt]
Instances For
Logical left shift of lft by rgt bits.
Equations
- lft.bvShl rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SHL #[lft, rgt]
Instances For
Signed greater-than-or-equal-to.
Equations
- lft.bvSge rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SGE #[lft, rgt]
Instances For
Bits hi down to lo of bv, bit 0 being the least significant; needs lo ≤ hi < n.
Equations
- Cvc.Untyped.Term.bvExtract hi lo bv = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => do let __do_lift ← tm.mkOpOfIndices cvc5.Kind.BITVECTOR_EXTRACT #[hi, lo] tm.mkTermOfOp __do_lift #[bv]
Instances For
Whether signed division overflows.
Equations
- lft.bvSdivo rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SDIVO #[lft, rgt]
Instances For
Conversion to an integer, reading the bit-vector as unsigned.
Equations
- bv.bvUbvToInt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_UBV_TO_INT #[bv]
Instances For
Whether signed addition overflows.
Equations
- lft.bvSaddo rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SADDO #[lft, rgt]
Instances For
Bitwise conjunction.
Equations
- lft.bvAnd rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_AND #[lft, rgt]
Instances For
Bit-vector conditional, selecting on a one-bit condition.
Equations
- cnd.bvIte thn els = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_ITE #[cnd, thn, els]
Instances For
Addition modulo 2 ^ n.
Equations
- lft.bvAdd rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_ADD #[lft, rgt]
Instances For
Unsigned less-than, as a one-bit bit-vector.
Equations
- lft.bvUltbv rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_ULTBV #[lft, rgt]
Instances For
The given number of copies of a bit-vector, concatenated.
Equations
- Cvc.Untyped.Term.bvRepeat count bv = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => do let __do_lift ← tm.mkOpOfIndices cvc5.Kind.BITVECTOR_REPEAT #[count] tm.mkTermOfOp __do_lift #[bv]
Instances For
Disjunction of all the bits, as a one-bit bit-vector.
Equations
- bv.bvRedor = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_REDOR #[bv]
Instances For
Arithmetic right shift of lft by rgt bits.
Equations
- lft.bvAshr rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_ASHR #[lft, rgt]
Instances For
Signed greater-than.
Equations
- lft.bvSgt rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SGT #[lft, rgt]
Instances For
Bitwise negation.
Equations
- bv.bvNot = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_NOT #[bv]
Instances For
Bit-level comparison, 1 when both arguments are equal and 0 otherwise.
Equations
- lft.bvComp rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_COMP #[lft, rgt]
Instances For
Unsigned less-than.
Equations
- lft.bvUlt rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_ULT #[lft, rgt]
Instances For
Signed remainder, sign following the dividend; the dividend on a zero divisor.
Equations
- lft.bvSrem rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SREM #[lft, rgt]
Instances For
Unsigned greater-than.
Equations
- lft.bvUgt rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_UGT #[lft, rgt]
Instances For
Bitwise negated exclusive disjunction.
Equations
- lft.bvXnor rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_XNOR #[lft, rgt]
Instances For
Bitwise negated disjunction.
Equations
- lft.bvNor rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_NOR #[lft, rgt]
Instances For
Whether unsigned multiplication overflows.
Equations
- lft.bvUmulo rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_UMULO #[lft, rgt]
Instances For
A bit-vector literal of the given size, read in base, which must be 2, 10 or 16.
Equations
- Cvc.Untyped.Term.mkBitVecOfString size repr base = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkBitVectorOfString size.toUInt32 repr base
Instances For
Unsigned less-than-or-equal-to.
Equations
- lft.bvUle rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_ULE #[lft, rgt]
Instances For
Bitwise disjunction.
Equations
- lft.bvOr rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_OR #[lft, rgt]
Instances For
Whether two's-complement negation overflows.
Equations
- bv.bvNego = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_NEGO #[bv]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Unsigned greater-than-or-equal-to.
Equations
- lft.bvUge rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_UGE #[lft, rgt]
Instances For
Whether signed multiplication overflows.
Equations
- lft.bvSmulo rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SMULO #[lft, rgt]
Instances For
Whether unsigned addition overflows.
Equations
- lft.bvUaddo rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_UADDO #[lft, rgt]
Instances For
Conjunction of all the bits, as a one-bit bit-vector.
Equations
- bv.bvRedand = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_REDAND #[bv]
Instances For
Logical right shift of lft by rgt bits.
Equations
- lft.bvLshr rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_LSHR #[lft, rgt]
Instances For
Multiplication modulo 2 ^ n.
Equations
- lft.bvMul rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_MULT #[lft, rgt]
Instances For
A bit-vector literal of the given size, keeping the low size bits of value.
Equations
- Cvc.Untyped.Term.mkBitVec size value = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkBitVector size.toUInt32 value
Instances For
Signed less-than, as a one-bit bit-vector.
Equations
- lft.bvSltbv rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SLTBV #[lft, rgt]
Instances For
Unsigned division, truncating towards zero; all ones on a zero divisor.
Equations
- lft.bvUdiv rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_UDIV #[lft, rgt]
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Unsigned remainder; the dividend on a zero divisor.
Equations
- lft.bvUrem rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_UREM #[lft, rgt]
Instances For
Subtraction modulo 2 ^ n.
Equations
- lft.bvSub rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SUB #[lft, rgt]
Instances For
Signed division, truncating towards zero.
On a zero divisor: -1 for a non-negative dividend, 1 for a negative one.
Equations
- lft.bvSdiv rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_SDIV #[lft, rgt]
Instances For
Concatenation, lft giving the most significant bits.
Equations
- lft.bvConcat rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_CONCAT #[lft, rgt]
Instances For
Whether unsigned subtraction overflows.
Equations
- lft.bvUsubo rgt = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_USUBO #[lft, rgt]
Instances For
Two's-complement negation.
Equations
- bv.bvNeg = Cvc.runUnsafe✝ fun (tm : cvc5.TermManager) => tm.mkTerm cvc5.Kind.BITVECTOR_NEG #[bv]
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
Takes a term apart one level, if BitVec owns its operator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
BitVec's operators, taken apart one level, sort-erased.
- bvNot
[Ω]
(bv : Term)
: View.BitVec
Bitwise negation.
- bvAnd
[Ω]
(lft rgt : Term)
: View.BitVec
Bitwise conjunction.
- bvOr
[Ω]
(lft rgt : Term)
: View.BitVec
Bitwise disjunction.
- bvXor
[Ω]
(lft rgt : Term)
: View.BitVec
Bitwise exclusive disjunction.
- bvNand
[Ω]
(lft rgt : Term)
: View.BitVec
Bitwise negated conjunction.
- bvNor
[Ω]
(lft rgt : Term)
: View.BitVec
Bitwise negated disjunction.
- bvXnor
[Ω]
(lft rgt : Term)
: View.BitVec
Bitwise negated exclusive disjunction.
- bvNeg
[Ω]
(bv : Term)
: View.BitVec
Two's-complement negation.
- bvAdd
[Ω]
(lft rgt : Term)
: View.BitVec
Addition modulo
2 ^ n. - bvSub
[Ω]
(lft rgt : Term)
: View.BitVec
Subtraction modulo
2 ^ n. - bvMul
[Ω]
(lft rgt : Term)
: View.BitVec
Multiplication modulo
2 ^ n. - bvUdiv
[Ω]
(lft rgt : Term)
: View.BitVec
Unsigned division, truncating towards zero; all ones on a zero divisor.
- bvUrem
[Ω]
(lft rgt : Term)
: View.BitVec
Unsigned remainder; the dividend on a zero divisor.
- bvSdiv
[Ω]
(lft rgt : Term)
: View.BitVec
Signed division, truncating towards zero.
On a zero divisor:
-1for a non-negative dividend,1for a negative one. - bvSrem
[Ω]
(lft rgt : Term)
: View.BitVec
Signed remainder, sign following the dividend; the dividend on a zero divisor.
- bvSmod
[Ω]
(lft rgt : Term)
: View.BitVec
Signed remainder, sign following the divisor; the dividend on a zero divisor.
- bvShl
[Ω]
(lft rgt : Term)
: View.BitVec
Logical left shift of
lftbyrgtbits. - bvLshr
[Ω]
(lft rgt : Term)
: View.BitVec
Logical right shift of
lftbyrgtbits. - bvAshr
[Ω]
(lft rgt : Term)
: View.BitVec
Arithmetic right shift of
lftbyrgtbits. - bvUlt
[Ω]
(lft rgt : Term)
: View.BitVec
Unsigned less-than.
- bvUle
[Ω]
(lft rgt : Term)
: View.BitVec
Unsigned less-than-or-equal-to.
- bvUgt
[Ω]
(lft rgt : Term)
: View.BitVec
Unsigned greater-than.
- bvUge
[Ω]
(lft rgt : Term)
: View.BitVec
Unsigned greater-than-or-equal-to.
- bvSlt
[Ω]
(lft rgt : Term)
: View.BitVec
Signed less-than.
- bvSle
[Ω]
(lft rgt : Term)
: View.BitVec
Signed less-than-or-equal-to.
- bvSgt
[Ω]
(lft rgt : Term)
: View.BitVec
Signed greater-than.
- bvSge
[Ω]
(lft rgt : Term)
: View.BitVec
Signed greater-than-or-equal-to.
- bvConcat
[Ω]
(lft rgt : Term)
: View.BitVec
Concatenation,
lftgiving the most significant bits. - bvComp
[Ω]
(lft rgt : Term)
: View.BitVec
Bit-level comparison,
1when both arguments are equal and0otherwise. - bvRedand
[Ω]
(bv : Term)
: View.BitVec
Conjunction of all the bits, as a one-bit bit-vector.
- bvRedor
[Ω]
(bv : Term)
: View.BitVec
Disjunction of all the bits, as a one-bit bit-vector.
- bvIte
[Ω]
(cnd thn els : Term)
: View.BitVec
Bit-vector conditional, selecting on a one-bit condition.
- bvUbvToInt
[Ω]
(bv : Term)
: View.BitVec
Conversion to an integer, reading the bit-vector as unsigned.
- bvSbvToInt
[Ω]
(bv : Term)
: View.BitVec
Conversion to an integer, reading the bit-vector as signed.
- bvNego
[Ω]
(bv : Term)
: View.BitVec
Whether two's-complement negation overflows.
- bvUaddo
[Ω]
(lft rgt : Term)
: View.BitVec
Whether unsigned addition overflows.
- bvSaddo
[Ω]
(lft rgt : Term)
: View.BitVec
Whether signed addition overflows.
- bvUsubo
[Ω]
(lft rgt : Term)
: View.BitVec
Whether unsigned subtraction overflows.
- bvSsubo
[Ω]
(lft rgt : Term)
: View.BitVec
Whether signed subtraction overflows.
- bvUmulo
[Ω]
(lft rgt : Term)
: View.BitVec
Whether unsigned multiplication overflows.
- bvSmulo
[Ω]
(lft rgt : Term)
: View.BitVec
Whether signed multiplication overflows.
- bvSdivo
[Ω]
(lft rgt : Term)
: View.BitVec
Whether signed division overflows.
- bvUltbv
[Ω]
(lft rgt : Term)
: View.BitVec
Unsigned less-than, as a one-bit bit-vector.
- bvSltbv
[Ω]
(lft rgt : Term)
: View.BitVec
Signed less-than, as a one-bit bit-vector.
- bvExtract
[Ω]
(hi lo : Nat)
(bv : Term)
: View.BitVec
Bits
hidown toloofbv, bit 0 being the least significant; needslo ≤ hi < n. - bvRepeat
[Ω]
(count : Nat)
(bv : Term)
: View.BitVec
The given number of copies of a bit-vector, concatenated.
- bvZeroExtend
[Ω]
(extra : Nat)
(bv : Term)
: View.BitVec
Extension with the given number of zeroes.
- bvSignExtend
[Ω]
(extra : Nat)
(bv : Term)
: View.BitVec
Extension with the given number of copies of the sign bit.
- bvRotateLeft
[Ω]
(count : Nat)
(bv : Term)
: View.BitVec
Rotation to the left by the given number of bits.
- bvRotateRight
[Ω]
(count : Nat)
(bv : Term)
: View.BitVec
Rotation to the right by the given number of bits.
- intToBv
[Ω]
(size : Nat)
(arg : Term)
: View.BitVec
Conversion of an integer to a bit-vector of the given size, modulo
2 ^ size.
Instances For
Values #
Determine if this term is a bit-vector value.
Equations
- term.isBitVecValue = (Cvc.Untyped.Term.toUnsafe✝ term).isBitVectorValue
Instances For
Equations
- One or more equations did not get rendered due to their size.