Documentation

Lean.Meta.Tactic.Simp.BuiltinSimprocs.BitVec

structure BitVec.Literal :

A bit-vector literal

Instances For

Try to convert OfNat.ofNat/BitVec.OfNat application into a bitvector literal.

Equations
@[inline]
def BitVec.reduceUnary (declName : Lean.Name) (arity : Nat) (op : {n : Nat} → BitVec nBitVec n) (e : Lean.Expr) :

Helper function for reducing homogeneous unary bitvector operators.

Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def BitVec.reduceBin (declName : Lean.Name) (arity : Nat) (op : {n : Nat} → BitVec nBitVec nBitVec n) (e : Lean.Expr) :

Helper function for reducing homogeneous binary bitvector operators.

Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def BitVec.reduceExtend (declName : Lean.Name) (op : {n : Nat} → (m : Nat) → BitVec nBitVec m) (e : Lean.Expr) :

Simplification procedure for setWidth, zeroExtend and signExtend on BitVecs.

Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def BitVec.reduceGetBit (declName : Lean.Name) (op : {n : Nat} → BitVec nNatBool) (e : Lean.Expr) :

Helper function for reducing bitvector functions such as getLsb and getMsb.

Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def BitVec.reduceShift (declName : Lean.Name) (arity : Nat) (op : {n : Nat} → BitVec nNatBitVec n) (e : Lean.Expr) :

Helper function for reducing bitvector functions such as shiftLeft and rotateRight.

Equations
  • One or more equations did not get rendered due to their size.
@[inline]

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.
@[inline]
def BitVec.reduceBinPred (declName : Lean.Name) (arity : Nat) (op : {n : Nat} → BitVec nBitVec nBool) (e : Lean.Expr) :

Helper function for reducing bitvector predicates.

Equations
  • One or more equations did not get rendered due to their size.
@[inline]
def BitVec.reduceBoolPred (declName : Lean.Name) (arity : Nat) (op : {n : Nat} → BitVec nBitVec nBool) (e : Lean.Expr) :
Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for negation of BitVecs.

Equations

Simplification procedure for bitwise not of BitVecs.

Equations

Simplification procedure for absolute value of BitVecs.

Equations

Simplification procedure for bitwise and of BitVecs.

Equations

Simplification procedure for bitwise or of BitVecs.

Equations

Simplification procedure for bitwise xor of BitVecs.

Equations

Simplification procedure for addition of BitVecs.

Equations

Simplification procedure for multiplication of BitVecs.

Equations

Simplification procedure for subtraction of BitVecs.

Equations

Simplification procedure for division of BitVecs.

Equations

Simplification procedure for the modulo operation on BitVecs.

Equations

Simplification procedure for the unsigned modulo operation on BitVecs.

Equations

Simplification procedure for unsigned division of BitVecs.

Equations

Simplification procedure for division of BitVecs using the SMT-LIB conventions.

Equations

Simplification procedure for the signed modulo operation on BitVecs.

Equations

Simplification procedure for signed remainder of BitVecs.

Equations

Simplification procedure for signed t-division of BitVecs.

Equations

Simplification procedure for signed division of BitVecs using the SMT-LIB conventions.

Equations

Simplification procedure for getLsb (lowest significant bit) on BitVec.

Equations

Simplification procedure for getMsb (most significant bit) on BitVec.

Equations

Simplification procedure for getElem on BitVec.

Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for shift left on BitVec.

Equations

Simplification procedure for unsigned shift right on BitVec.

Equations

Simplification procedure for signed shift right on BitVec.

Equations

Simplification procedure for shift left on BitVec.

Equations

Simplification procedure for converting a shift with a bit-vector literal into a natural number literal.

Equations

Simplification procedure for shift right on BitVec.

Equations

Simplification procedure for converting a shift with a bit-vector literal into a natural number literal.

Equations

Simplification procedure for rotate left on BitVec.

Equations

Simplification procedure for rotate right on BitVec.

Equations

Simplification procedure for append on BitVec.

Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for casting BitVecs along an equality of the size.

Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for BitVec.toNat.

Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for BitVec.toInt.

Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for BitVec.ofInt.

Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for ensuring BitVec.ofNat literals are normalized.

Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for = on BitVecs.

Equations

Simplification procedure for on BitVecs.

Equations

Simplification procedure for == on BitVecs.

Equations

Simplification procedure for != on BitVecs.

Equations

Simplification procedure for < on BitVecs.

Equations

Simplification procedure for on BitVecs.

Equations

Simplification procedure for > on BitVecs.

Equations

Simplification procedure for on BitVecs.

Equations

Simplification procedure for unsigned less than ult on BitVecs.

Equations

Simplification procedure for unsigned less than or equal ule on BitVecs.

Equations

Simplification procedure for signed less than slt on BitVecs.

Equations

Simplification procedure for signed less than or equal sle on BitVecs.

Equations

Simplification procedure for setWidth' on BitVecs.

Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for shiftLeftZeroExtend on BitVecs.

Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for extractLsb' on BitVecs.

Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for replicate on BitVecs.

Equations
  • One or more equations did not get rendered due to their size.

Simplification procedure for setWidth on BitVecs.

Equations

Simplification procedure for zeroExtend on BitVecs.

Equations

Simplification procedure for signExtend on BitVecs.

Equations

Simplification procedure for allOnes

Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
@[inline]

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.