Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- BitVec.instReprLiteral = { reprPrec := BitVec.instReprLiteral.repr }
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
Helper function for reducing x <<< i and x >>> i where i is a bitvector literal,
into one that is a natural number literal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for negation of BitVecs.
Equations
- BitVec.reduceNeg = BitVec.reduceUnary `Neg.neg 3 fun {n : Nat} (x : BitVec n) => -x
Instances For
Simplification procedure for bitwise not of BitVecs.
Equations
- BitVec.reduceNot = BitVec.reduceUnary `Complement.complement 3 fun {n : Nat} (x : BitVec n) => ~~~x
Instances For
Simplification procedure for absolute value of BitVecs.
Equations
- BitVec.reduceAbs = BitVec.reduceUnary `BitVec.abs 2 fun {n : Nat} => BitVec.abs
Instances For
Simplification procedure for bitwise and of BitVecs.
Equations
- BitVec.reduceAnd = BitVec.reduceBin `HAnd.hAnd 6 fun {n : Nat} (x1 x2 : BitVec n) => x1 &&& x2
Instances For
Simplification procedure for bitwise or of BitVecs.
Equations
- BitVec.reduceOr = BitVec.reduceBin `HOr.hOr 6 fun {n : Nat} (x1 x2 : BitVec n) => x1 ||| x2
Instances For
Simplification procedure for bitwise xor of BitVecs.
Equations
- BitVec.reduceXOr = BitVec.reduceBin `HXor.hXor 6 fun {n : Nat} (x1 x2 : BitVec n) => x1 ^^^ x2
Instances For
Simplification procedure for addition of BitVecs.
Equations
- BitVec.reduceAdd = BitVec.reduceBin `HAdd.hAdd 6 fun {n : Nat} (x1 x2 : BitVec n) => x1 + x2
Instances For
Simplification procedure for multiplication of BitVecs.
Equations
- BitVec.reduceMul = BitVec.reduceBin `HMul.hMul 6 fun {n : Nat} (x1 x2 : BitVec n) => x1 * x2
Instances For
Simplification procedure for subtraction of BitVecs.
Equations
- BitVec.reduceSub = BitVec.reduceBin `HSub.hSub 6 fun {n : Nat} (x1 x2 : BitVec n) => x1 - x2
Instances For
Simplification procedure for division of BitVecs.
Equations
- BitVec.reduceDiv = BitVec.reduceBin `HDiv.hDiv 6 fun {n : Nat} (x1 x2 : BitVec n) => x1 / x2
Instances For
Simplification procedure for the modulo operation on BitVecs.
Equations
- BitVec.reduceMod = BitVec.reduceBin `HMod.hMod 6 fun {n : Nat} (x1 x2 : BitVec n) => x1 % x2
Instances For
Simplification procedure for the unsigned modulo operation on BitVecs.
Equations
- BitVec.reduceUMod = BitVec.reduceBin `BitVec.umod 3 fun {n : Nat} => BitVec.umod
Instances For
Simplification procedure for unsigned division of BitVecs.
Equations
- BitVec.reduceUDiv = BitVec.reduceBin `BitVec.udiv 3 fun {n : Nat} => BitVec.udiv
Instances For
Simplification procedure for division of BitVecs using the SMT-LIB conventions.
Equations
- BitVec.reduceSMTUDiv = BitVec.reduceBin `BitVec.smtUDiv 3 fun {n : Nat} => BitVec.smtUDiv
Instances For
Simplification procedure for the signed modulo operation on BitVecs.
Equations
- BitVec.reduceSMod = BitVec.reduceBin `BitVec.smod 3 fun {n : Nat} => BitVec.smod
Instances For
Simplification procedure for signed remainder of BitVecs.
Equations
- BitVec.reduceSRem = BitVec.reduceBin `BitVec.srem 3 fun {n : Nat} => BitVec.srem
Instances For
Simplification procedure for signed t-division of BitVecs.
Equations
- BitVec.reduceSDiv = BitVec.reduceBin `BitVec.sdiv 3 fun {n : Nat} => BitVec.sdiv
Instances For
Simplification procedure for signed division of BitVecs using the SMT-LIB conventions.
Equations
- BitVec.reduceSMTSDiv = BitVec.reduceBin `BitVec.smtSDiv 3 fun {n : Nat} => BitVec.smtSDiv
Instances For
Simplification procedure for getLsb (lowest significant bit) on BitVec.
Equations
- BitVec.reduceGetLsb = BitVec.reduceGetBit `BitVec.getLsbD fun {n : Nat} => BitVec.getLsbD
Instances For
Simplification procedure for getMsb (most significant bit) on BitVec.
Equations
- BitVec.reduceGetMsb = BitVec.reduceGetBit `BitVec.getMsbD fun {n : Nat} => BitVec.getMsbD
Instances For
Simplification procedure for clz (count leading zeros) on BitVec.
Equations
- BitVec.reduceClz = BitVec.reduceUnary `BitVec.clz 2 fun {n : Nat} => BitVec.clz
Instances For
Simplification procedure for getElem on BitVec.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for shift left on BitVec.
Equations
- BitVec.reduceShiftLeft = BitVec.reduceShift `BitVec.shiftLeft 3 fun {n : Nat} => BitVec.shiftLeft
Instances For
Simplification procedure for unsigned shift right on BitVec.
Equations
- BitVec.reduceUShiftRight = BitVec.reduceShift `BitVec.ushiftRight 3 fun {n : Nat} => BitVec.ushiftRight
Instances For
Simplification procedure for signed shift right on BitVec.
Equations
- BitVec.reduceSShiftRight = BitVec.reduceShift `BitVec.sshiftRight 3 fun {n : Nat} => BitVec.sshiftRight
Instances For
Simplification procedure for shift left on BitVec.
Equations
- BitVec.reduceHShiftLeft = BitVec.reduceShift `HShiftLeft.hShiftLeft 6 fun {n : Nat} (x1 : BitVec n) (x2 : Nat) => x1 <<< x2
Instances For
Simplification procedure for converting a shift with a bit-vector literal into a natural number literal.
Equations
- BitVec.reduceHShiftLeft' = BitVec.reduceShiftWithBitVecLit `HShiftLeft.hShiftLeft
Instances For
Simplification procedure for shift right on BitVec.
Equations
- BitVec.reduceHShiftRight = BitVec.reduceShift `HShiftRight.hShiftRight 6 fun {n : Nat} (x1 : BitVec n) (x2 : Nat) => x1 >>> x2
Instances For
Simplification procedure for converting a shift with a bit-vector literal into a natural number literal.
Equations
- BitVec.reduceHShiftRight' = BitVec.reduceShiftWithBitVecLit `HShiftRight.hShiftRight
Instances For
Simplification procedure for rotate left on BitVec.
Equations
- BitVec.reduceRotateLeft = BitVec.reduceShift `BitVec.rotateLeft 3 fun {n : Nat} => BitVec.rotateLeft
Instances For
Simplification procedure for rotate right on BitVec.
Equations
- BitVec.reduceRotateRight = BitVec.reduceShift `BitVec.rotateRight 3 fun {n : Nat} => BitVec.rotateRight
Instances For
Simplification procedure for append on BitVec.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for casting BitVecs along an equality of the size.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for BitVec.toNat.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for BitVec.toInt.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for BitVec.ofInt.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for ensuring BitVec.ofNat literals are normalized.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for = on BitVecs.
Equations
- BitVec.reduceEq = BitVec.reduceBinPred `Eq 3 fun {n : Nat} (x1 x2 : BitVec n) => decide (x1 = x2)
Instances For
Simplification procedure for ≠ on BitVecs.
Equations
- BitVec.reduceNe = BitVec.reduceBinPred `Ne 3 fun {n : Nat} (x1 x2 : BitVec n) => decide (x1 ≠ x2)
Instances For
Simplification procedure for == on BitVecs.
Equations
- BitVec.reduceBEq = BitVec.reduceBoolPred `BEq.beq 4 fun {n : Nat} (x1 x2 : BitVec n) => x1 == x2
Instances For
Simplification procedure for != on BitVecs.
Equations
- BitVec.reduceBNe = BitVec.reduceBoolPred `bne 4 fun {n : Nat} (x1 x2 : BitVec n) => x1 != x2
Instances For
Simplification procedure for < on BitVecs.
Equations
- BitVec.reduceLT = BitVec.reduceBinPred `LT.lt 4 fun {n : Nat} (x1 x2 : BitVec n) => decide (x1 < x2)
Instances For
Simplification procedure for ≤ on BitVecs.
Equations
- BitVec.reduceLE = BitVec.reduceBinPred `LE.le 4 fun {n : Nat} (x1 x2 : BitVec n) => decide (x1 ≤ x2)
Instances For
Simplification procedure for > on BitVecs.
Equations
- BitVec.reduceGT = BitVec.reduceBinPred `GT.gt 4 fun {n : Nat} (x1 x2 : BitVec n) => decide (x1 > x2)
Instances For
Simplification procedure for ≥ on BitVecs.
Equations
- BitVec.reduceGE = BitVec.reduceBinPred `GE.ge 4 fun {n : Nat} (x1 x2 : BitVec n) => decide (x1 ≥ x2)
Instances For
Simplification procedure for unsigned less than ult on BitVecs.
Equations
- BitVec.reduceULT = BitVec.reduceBoolPred `BitVec.ult 3 fun {n : Nat} => BitVec.ult
Instances For
Simplification procedure for unsigned less than or equal ule on BitVecs.
Equations
- BitVec.reduceULE = BitVec.reduceBoolPred `BitVec.ule 3 fun {n : Nat} => BitVec.ule
Instances For
Simplification procedure for signed less than slt on BitVecs.
Equations
- BitVec.reduceSLT = BitVec.reduceBoolPred `BitVec.slt 3 fun {n : Nat} => BitVec.slt
Instances For
Simplification procedure for signed less than or equal sle on BitVecs.
Equations
- BitVec.reduceSLE = BitVec.reduceBoolPred `BitVec.sle 3 fun {n : Nat} => BitVec.sle
Instances For
Simplification procedure for setWidth' on BitVecs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for shiftLeftZeroExtend on BitVecs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for extractLsb' on BitVecs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for replicate on BitVecs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simplification procedure for setWidth on BitVecs.
Equations
- BitVec.reduceSetWidth = BitVec.reduceExtend `BitVec.setWidth fun {n : Nat} => BitVec.setWidth
Instances For
Simplification procedure for zeroExtend on BitVecs.
Equations
- BitVec.reduceZeroExtend = BitVec.reduceExtend `BitVec.zeroExtend fun {n : Nat} => BitVec.zeroExtend
Instances For
Simplification procedure for signExtend on BitVecs.
Equations
- BitVec.reduceSignExtend = BitVec.reduceExtend `BitVec.signExtend fun {n : Nat} => BitVec.signExtend
Instances For
Simplification procedure for allOnes
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
Helper function for reducing (x <<< i) <<< j (and (x >>> i) >>> j) where i and j are
natural number literals.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- BitVec.reduceShiftLeftShiftLeft = BitVec.reduceShiftShift `HShiftLeft.hShiftLeft `BitVec.shiftLeft_add
Instances For
Equations
- BitVec.reduceShiftRightShiftRight = BitVec.reduceShiftShift `HShiftRight.hShiftRight `BitVec.shiftRight_add