Equations
- LO.Arith.SPPow2 m = (ยฌLO.Arith.LenBit 1 m โง LO.Arith.LenBit 2 m โง โ i โค m, LO.Arith.Pow2 i โ 2 < i โ (LO.Arith.LenBit i m โ (โi) ^ 2 = i โง LO.Arith.LenBit (โi) m))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.Arith.sppow2_defined
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
:
๐บโ-Predicate LO.Arith.SPPow2 via LO.FirstOrder.Arith.sppow2Def
Equations
- LO.Arith.PPow2 i = (LO.Arith.Pow2 i โง โ m < 2 * i, LO.Arith.SPPow2 m โง LO.Arith.LenBit i m)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
LO.Arith.ppow2_defined
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
:
๐บโ-Predicate LO.Arith.PPow2 via LO.FirstOrder.Arith.ppow2Def
instance
LO.Arith.ppow2_definable
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
:
๐บโ-Predicate LO.Arith.PPow2
Equations
- โฏ = โฏ
theorem
LO.Arith.SPPow2.not_lenbit_one
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{m : V}
(hm : LO.Arith.SPPow2 m)
:
theorem
LO.Arith.SPPow2.lenbit_two
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{m : V}
(hm : LO.Arith.SPPow2 m)
:
LO.Arith.LenBit 2 m
theorem
LO.Arith.SPPow2.lenbit_iff
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{m : V}
(hm : LO.Arith.SPPow2 m)
{i : V}
(hi : i โค m)
(pi : LO.Arith.Pow2 i)
(lt2 : 2 < i)
:
LO.Arith.LenBit i m โ (โi) ^ 2 = i โง LO.Arith.LenBit (โi) m
theorem
LO.Arith.SPPow2.one_lt
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{m : V}
(hm : LO.Arith.SPPow2 m)
{i : V}
(hi : LO.Arith.LenBit i m)
:
1 < i
theorem
LO.Arith.SPPow2.two_lt
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{m : V}
(hm : LO.Arith.SPPow2 m)
{i : V}
(hi : LO.Arith.LenBit i m)
(ne2 : i โ 2)
:
2 < i
theorem
LO.Arith.SPPow2.sqrt
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{m : V}
(hm : LO.Arith.SPPow2 m)
{i : V}
(hi : LO.Arith.LenBit i m)
(pi : LO.Arith.Pow2 i)
(ne2 : i โ 2)
:
LO.Arith.LenBit (โi) m
theorem
LO.Arith.SPPow2.sq_sqrt_eq
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{m : V}
(hm : LO.Arith.SPPow2 m)
{i : V}
(hi : LO.Arith.LenBit i m)
(pi : LO.Arith.Pow2 i)
(ne2 : i โ 2)
:
theorem
LO.Arith.SPPow2.of_sqrt
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{m : V}
(hm : LO.Arith.SPPow2 m)
{i : V}
(pi : LO.Arith.Pow2 i)
(him : i โค m)
(hsqi : (โi) ^ 2 = i)
(hi : LO.Arith.LenBit (โi) m)
:
LO.Arith.LenBit i m
@[simp]
@[simp]
@[simp]
theorem
LO.Arith.SPPow2.sq_le_of_lt
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{m : V}
(hm : LO.Arith.SPPow2 m)
{i : V}
{j : V}
(pi : LO.Arith.Pow2 i)
(pj : LO.Arith.Pow2 j)
(hi : LO.Arith.LenBit i m)
(hj : LO.Arith.LenBit j m)
:
theorem
LO.Arith.SPPow2.last_uniq
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{m : V}
(hm : LO.Arith.SPPow2 m)
{i : V}
{j : V}
(pi : LO.Arith.Pow2 i)
(pj : LO.Arith.Pow2 j)
(hi : LO.Arith.LenBit i m)
(hj : LO.Arith.LenBit j m)
(hsqi : m < i ^ 2)
(hsqj : m < j ^ 2)
:
i = j
theorem
LO.Arith.PPow2.pow2
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(h : LO.Arith.PPow2 i)
:
theorem
LO.Arith.PPow2.pos
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(ppi : LO.Arith.PPow2 i)
:
0 < i
theorem
LO.Arith.PPow2.one_lt
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(ppi : LO.Arith.PPow2 i)
:
1 < i
theorem
LO.Arith.PPow2.sq_sqrt_eq
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(ppi : LO.Arith.PPow2 i)
(ne2 : i โ 2)
:
theorem
LO.Arith.PPow2.sqrt
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(ppi : LO.Arith.PPow2 i)
(ne2 : i โ 2)
:
theorem
LO.Arith.PPow2.exists_spp
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(h : LO.Arith.PPow2 i)
:
โ m < 2 * i, LO.Arith.SPPow2 m โง LO.Arith.LenBit i m
theorem
LO.Arith.PPow2.sq
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(ppi : LO.Arith.PPow2 i)
:
LO.Arith.PPow2 (i ^ 2)
@[simp]
@[simp]
@[simp]
theorem
LO.Arith.PPow2.elim
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
:
LO.Arith.PPow2 i โ i = 2 โจ โ (b : V), i = b ^ 2 โง LO.Arith.PPow2 b
theorem
LO.Arith.PPow2.elim'
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
:
LO.Arith.PPow2 i โ i = 2 โจ 2 < i โง โ (j : V), i = j ^ 2 โง LO.Arith.PPow2 j
@[simp]
theorem
LO.Arith.PPow2.two_le
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(hi : LO.Arith.PPow2 i)
:
2 โค i
theorem
LO.Arith.PPow2.two_lt
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(hi : LO.Arith.PPow2 i)
(ne : i โ 2)
:
2 < i
theorem
LO.Arith.PPow2.four_le
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(hi : LO.Arith.PPow2 i)
(ne : i โ 2)
:
4 โค i
theorem
LO.Arith.PPow2.four_lt
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(hi : LO.Arith.PPow2 i)
(ne2 : i โ 2)
(ne4 : i โ 4)
:
4 < i
theorem
LO.Arith.PPow2.sq_ne_two
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(hi : LO.Arith.PPow2 i)
:
theorem
LO.Arith.PPow2.sqrt_ne_two
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(hi : LO.Arith.PPow2 i)
(ne2 : i โ 2)
(ne4 : i โ 4)
:
theorem
LO.Arith.PPow2.sq_ne_four
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
(hi : LO.Arith.PPow2 i)
(ne2 : i โ 2)
:
theorem
LO.Arith.PPow2.sq_le_of_lt
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{i : V}
{j : V}
(hi : LO.Arith.PPow2 i)
(hj : LO.Arith.PPow2 j)
:
theorem
LO.Arith.PPow2.sq_uniq
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{y : V}
{i : V}
{j : V}
(py : LO.Arith.Pow2 y)
(ppi : LO.Arith.PPow2 i)
(ppj : LO.Arith.PPow2 j)
(hi : y < i โง i โค y ^ 2)
(hj : y < j โง j โค y ^ 2)
:
i = j
theorem
LO.Arith.PPow2.two_mul_sq_uniq
{V : Type u_1}
[LO.ORingStruc V]
[V โงโ* ๐๐บโ]
{y : V}
{i : V}
{j : V}
(py : LO.Arith.Pow2 y)
(ppi : LO.Arith.PPow2 i)
(ppj : LO.Arith.PPow2 j)
(hi : y < i โง i โค 2 * y ^ 2)
(hj : y < j โง j โค 2 * y ^ 2)
:
i = j