Equations
- nat.shiftl' b m (n + 1) = nat.bit b (nat.shiftl' b m n)
- nat.shiftl' b m 0 = m
@[simp]
theorem
nat.binary_rec_zero
{C : ℕ → Sort u}
(z : C 0)
(f : Π (b : bool) (n : ℕ), C n → C (nat.bit b n)) :
nat.binary_rec z f 0 = z
theorem
nat.shiftl'_add
(b : bool)
(m n k : ℕ) :
nat.shiftl' b m (n + k) = nat.shiftl' b (nat.shiftl' b m n) k
theorem
nat.shiftl'_sub
(b : bool)
(m : ℕ)
{n k : ℕ} :
k ≤ n → nat.shiftl' b m (n - k) = (nat.shiftl' b m n).shiftr k
theorem
nat.binary_rec_eq
{C : ℕ → Sort u}
{z : C 0}
{f : Π (b : bool) (n : ℕ), C n → C (nat.bit b n)}
(h : f bool.ff 0 z = z)
(b : bool)
(n : ℕ) :
nat.binary_rec z f (nat.bit b n) = f b n (nat.binary_rec z f n)
theorem
nat.bitwise_swap
{f : bool → bool → bool} :
f bool.ff bool.ff = bool.ff → nat.bitwise (function.swap f) = function.swap (nat.bitwise f)