Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.Arith.Pow2.pos
{V : Type u_1}
[ORingStruc V]
[V β§β* πopen]
{a : V}
(h : Pow2 a)
:
0 < a
@[simp]
theorem
LO.Arith.Pow2.two_dvd
{V : Type u_1}
[ORingStruc V]
[V β§β* πopen]
{a : V}
(h : Pow2 a)
(lt : 1 < a)
:
2 β£ a
theorem
LO.Arith.Pow2.two_dvd'
{V : Type u_1}
[ORingStruc V]
[V β§β* πopen]
{a : V}
(h : Pow2 a)
(lt : a β 1)
:
2 β£ a
theorem
LO.Arith.Pow2.of_dvd
{V : Type u_1}
[ORingStruc V]
[V β§β* πopen]
{a b : V}
(h : b β£ a)
:
theorem
LO.Arith.Pow2.div_two
{V : Type u_1}
[ORingStruc V]
[V β§β* πopen]
{p : V}
(h : Pow2 p)
(ne : p β 1)
:
$\mathrm{LenBit} (2^i, a) \iff \text{$i$th-bit of $a$ is $1$}$.
Equations
- LO.Arith.LenBit i a = Β¬2 β£ a / i
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
LO.Arith.lenbit_defined_iff
{V : Type u_1}
[ORingStruc V]
[V β§β* πopen]
(v : Fin 2 β V)
:
theorem
LO.Arith.LenBit.le
{V : Type u_1}
[ORingStruc V]
[V β§β* πopen]
{i a : V}
(h : LenBit i a)
:
i β€ a
theorem
LO.Arith.not_lenbit_of_lt
{V : Type u_1}
[ORingStruc V]
[V β§β* πopen]
{i a : V}
(h : a < i)
:
@[simp]
@[simp]
@[simp]
theorem
LO.Arith.LenBit.self
{V : Type u_1}
[ORingStruc V]
[V β§β* πopen]
{a : V}
(pos : 0 < a)
:
LenBit a a
theorem
LO.Arith.LenBit.add_self
{V : Type u_1}
[ORingStruc V]
[V β§β* πopen]
{i a : V}
(h : a < i)
:
theorem
LO.Arith.Pow2.mul
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a b : V}
(ha : Pow2 a)
(hb : Pow2 b)
:
@[simp]
@[simp]
theorem
LO.Arith.Pow2.dvd_of_le
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a b : V}
(ha : Pow2 a)
(hb : Pow2 b)
:
theorem
LO.Arith.Pow2.le_iff_dvd
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a b : V}
(ha : Pow2 a)
(hb : Pow2 b)
:
theorem
LO.Arith.Pow2.two_le
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a : V}
(pa : Pow2 a)
(ne1 : a β 1)
:
2 β€ a
theorem
LO.Arith.Pow2.le_iff_lt_two
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a b : V}
(ha : Pow2 a)
(hb : Pow2 b)
:
theorem
LO.Arith.Pow2.lt_iff_two_mul_le
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a b : V}
(ha : Pow2 a)
(hb : Pow2 b)
:
theorem
LO.Arith.Pow2.sq_or_dsq
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a : V}
(pa : Pow2 a)
:
theorem
LO.Arith.Pow2.sqrt
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a : V}
(h : Pow2 a)
(hsq : (βa) ^ 2 = a)
:
@[simp]
theorem
LO.Arith.Pow2.four_le
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{i : V}
(hi : Pow2 i)
(lt : 2 < i)
:
4 β€ i
theorem
LO.Arith.Pow2.mul_add_lt_of_mul_lt_of_pos
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a b p q : V}
(hp : Pow2 p)
(hq : Pow2 q)
(h : a * p < q)
(hb : b < p)
(hbq : b < q)
:
theorem
LO.Arith.LenBit.mod_pow2
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a i j : V}
(pi : Pow2 i)
(pj : Pow2 j)
(h : i < j)
:
theorem
LO.Arith.LenBit.add_pow2
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a i j : V}
(pi : Pow2 i)
(pj : Pow2 j)
(h : i < j)
:
theorem
LO.Arith.LenBit.add_pow2_iff_of_lt
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a i j : V}
(pi : Pow2 i)
(pj : Pow2 j)
(h : a < j)
:
theorem
LO.Arith.lenbit_iff_add_mul
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{i a : V}
(hi : Pow2 i)
:
theorem
LO.Arith.not_lenbit_iff_add_mul
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{i a : V}
(hi : Pow2 i)
:
theorem
LO.Arith.lenbit_mul_add
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{i j a r : V}
(pi : Pow2 i)
(pj : Pow2 j)
(hr : r < j)
:
theorem
LO.Arith.lenbit_sub_pow2_iff_of_lenbit
{V : Type u_1}
[ORingStruc V]
[V β§β* ππΊβ]
{a i j : V}
(pi : Pow2 i)
(pj : Pow2 j)
(h : LenBit j a)
: