Concrete Binary Tower Field #
Field-structure lemmas for successive levels of the concrete binary tower.
Lemmas of field properties at level k that depends on field properties at level (k-1)
theorem
ConcreteBinaryTower.concrete_mul_eq
{k : โ}
{h_k : k > 0}
(prevBTFieldProps : ConcreteBTFieldProps (k - 1))
(a b : ConcreteBTField k)
{aโ aโ bโ bโ : ConcreteBTField (k - 1)}
(h_a : (aโ, aโ) = split h_k a)
(h_b : (bโ, bโ) = split h_k b)
:
concrete_mul a b = join h_k (concrete_mul aโ bโ + concrete_mul bโ aโ + concrete_mul (concrete_mul aโ bโ) (Z (k - 1)))
(concrete_mul aโ bโ + concrete_mul aโ bโ)
theorem
ConcreteBinaryTower.concrete_zero_mul
{k : โ}
(prevBTFieldProps : ConcreteBTFieldProps (k - 1))
(a : ConcreteBTField k)
:
theorem
ConcreteBinaryTower.concrete_mul_zero
{k : โ}
(prevBTFieldProps : ConcreteBTFieldProps (k - 1))
(a : ConcreteBTField k)
:
theorem
ConcreteBinaryTower.concrete_one_mul
{k : โ}
(prevBTFieldProps : ConcreteBTFieldProps (k - 1))
(a : ConcreteBTField k)
:
theorem
ConcreteBinaryTower.concrete_mul_one
{k : โ}
(prevBTFieldProps : ConcreteBTFieldProps (k - 1))
(a : ConcreteBTField k)
:
theorem
ConcreteBinaryTower.concrete_pow_base_one
{k : โ}
(prevBTFieldProps : ConcreteBTFieldProps (k - 1))
(n : โ)
:
theorem
ConcreteBinaryTower.concrete_mul_comm
{k : โ}
{h_k : k > 0}
(prevBTFieldProps : ConcreteBTFieldProps (k - 1))
(a b : ConcreteBTField k)
:
theorem
ConcreteBinaryTower.concrete_mul_assoc
{k : โ}
{h_k : k > 0}
(prevBTFieldProps : ConcreteBTFieldProps (k - 1))
(a b c : ConcreteBTField k)
:
theorem
ConcreteBinaryTower.concrete_mul_left_distrib
{k : โ}
{h_k : k > 0}
(prevBTFieldProps : ConcreteBTFieldProps (k - 1))
(a b c : ConcreteBTField k)
:
theorem
ConcreteBinaryTower.concrete_mul_right_distrib
{k : โ}
{h_k : k > 0}
(prevBTFieldProps : ConcreteBTFieldProps (k - 1))
(a b c : ConcreteBTField k)
:
theorem
ConcreteBinaryTower.norm_of_ne_zero_is_ne_zero
{k : โ}
{h_k_gt_0 : k > 0}
(prevBTFieldResult : ConcreteBTFStepResult (k - 1))
(a : ConcreteBTField k)
(h_a_ne_zero : a โ 0)
:
have aโ := (split h_k_gt_0 a).1;
have aโ := (split h_k_gt_0 a).2;
concrete_mul aโ (aโ + concrete_mul aโ (Z (k - 1))) + concrete_mul aโ aโ โ 0
theorem
ConcreteBinaryTower.concrete_mul_inv_cancel
{k : โ}
(prevBTFieldResult : ConcreteBTFStepResult (k - 1))
(a : ConcreteBTField k)
(h : a โ 0)
:
Inductive tower construction, using lemmas from BTFieldPropsOneLevelLiftingLemmas
theorem
ConcreteBinaryTower.Z_square_eq
(k : โ)
(prevBTFieldProps : ConcreteBTFieldProps k)
(curBTFieldProps : ConcreteBTFieldProps (k + 1))
:
def
ConcreteBinaryTower.liftBTFieldProps
(k : โ)
(prevBTFResult : ConcreteBTFStepResult k)
:
ConcreteBTFieldProps (k + 1)
Instances For
@[reducible]
def
ConcreteBinaryTower.liftConcreteBTField
(k : โ)
(prevBTFResult : ConcreteBTFStepResult k)
:
Field (ConcreteBTField (k + 1))
Instances For
def
ConcreteBinaryTower.concreteCanonicalEmbedding
(k : โ)
(prevBTFieldProps : ConcreteBTFieldProps k)
(curBTFieldProps : ConcreteBTFieldProps (k + 1))
:
The canonical ring homomorphism embedding ConcreteBTField k into
ConcreteBTField (k + 1).
This is the AdjoinRoot.of map.
Instances For
@[implicit_reducible]
instance
ConcreteBinaryTower.instAlgebraLiftConcreteBTField
(k : โ)
(prevBTFResult : ConcreteBTFStepResult k)
:
Algebra (ConcreteBTField k) (ConcreteBTField (k + 1))
Instances For
@[implicit_reducible]
@[implicit_reducible]
adjoined root of poly k, generator of successor field BTField (k + 1)