Module docstring
{"This module exists to provide the very basic BitVec definitions required for
Init.Data.UInt.BasicAux.
"}
{"This module exists to provide the very basic BitVec definitions required for
Init.Data.UInt.BasicAux.
"}
BitVec.ofNat
definition
(n : Nat) (i : Nat) : BitVec n
/--
The bitvector with value `i mod 2^n`.
-/
@[match_pattern]
protected def ofNat (n : Nat) (i : Nat) : BitVec n where
toFin := Fin.ofNat' (2^n) i
BitVec.instOfNat
instance
: OfNat (BitVec n) i
BitVec.isLt
theorem
(x : BitVec w) : x.toNat < 2 ^ w
BitVec.add
definition
(x y : BitVec n) : BitVec n
BitVec.instAdd
instance
: Add (BitVec n)
instance : Add (BitVec n) := ⟨BitVec.add⟩
BitVec.sub
definition
(x y : BitVec n) : BitVec n
BitVec.instSub
instance
: Sub (BitVec n)
instance : Sub (BitVec n) := ⟨BitVec.sub⟩