Documentation

CompPoly.Fields.Binary.Tower.Abstract.Core

Abstract Binary Tower Core #

Core definitions and existence data for the abstract binary tower construction.

structure BinaryTower.BinaryTowerResult (F : Type u_1) (k : β„•) :
Type u_1
Instances For
    structure BinaryTower.BinaryTowerInductiveStepResult (k : β„•) (prevBTField : Type u_1) (prevBTResult : BinaryTowerResult prevBTField k) [instPrevBTFieldIsField : Field prevBTField] (prevPoly : Polynomial prevBTField) (F : Type u_1) :
    Type u_1
    Instances For
      noncomputable def BinaryTower.binary_tower_inductive_step (k : β„•) (prevBTField : Type u_1) [Field prevBTField] (prevBTResult : BinaryTowerResult prevBTField k) :
      (F : Type u_1) Γ—' BinaryTowerInductiveStepResult k prevBTField prevBTResult (definingPoly prevBTResult.specialElement) F
      Instances For
        Instances For
          Instances For
            @[implicit_reducible]
            noncomputable instance BinaryTower.BTFieldIsField (k : β„•) :
            @[implicit_reducible]
            noncomputable instance BinaryTower.CommRing (k : β„•) :
            @[implicit_reducible]
            noncomputable instance BinaryTower.Inhabited (k : β„•) :
            @[implicit_reducible]
            noncomputable instance BinaryTower.BTField_Fintype (k : β„•) :
            @[simp]
            Instances For
              @[simp]
              def BinaryTower.sumZeroIffEq (k : β„•) (x y : BTField k) :
              x + y = 0 ↔ x = y
              Instances For
                noncomputable def BinaryTower.list (k : β„•) :
                Instances For
                  noncomputable def BinaryTower.Z (k : β„•) :

                  Z k is the generator of BTField k

                  Instances For
                    noncomputable def BinaryTower.poly (k : β„•) :
                    Instances For
                      theorem BinaryTower.BTField.cast_mul (m n : β„•) {x y : BTField m} (h_eq : m = n) :
                      cast β‹― (x * y) = cast β‹― x * cast β‹― y
                      noncomputable def BinaryTower.𝕏 (k : β„•) :
                      BTField (k + 1)

                      adjoined root of poly k, generator of successor field BTField (k+1)

                      Instances For
                        @[implicit_reducible]
                        @[simp]
                        theorem BinaryTower.list_eq (k : β„•) :
                        list (k + 1) = Z (k + 1) ::α΅₯ List.Vector.map (⇑(AdjoinRoot.of (poly k))) (list k)
                        @[simp]
                        theorem BinaryTower.eval_poly_at_root (k : β„•) :
                        Z (k + 1) ^ 2 + Z (k + 1) * β‹―.mp ((AdjoinRoot.of (poly k)) (Z k)) + 1 = 0
                        @[simp]
                        theorem BinaryTower.list_length (k : β„•) :
                        (list k).length = k + 1
                        @[simp]
                        theorem BinaryTower.list_nonempty (k : β„•) :
                        ↑(list k) β‰  []