Documentation

CompPoly.Fields.Binary.Tower.Concrete.Basis

Concrete Binary Tower Basis #

Basis constructions for the concrete bitvector binary tower.

theorem ConcreteBinaryTower.Basis_cast_dest_eq {ι : Type u_1} (k n m : ) (h_k_le_n : k n) (h_k_le_m : k m) (h_eq : m = n) :

The following two theorems are used to cast the basis of ConcreteBTField α to ConcreteBTField β via changing in index type : Fin (i) to Fin (j) when α ≤ β.

@[simp]
theorem ConcreteBinaryTower.Basis_cast_index_apply {α β i j : } {k : Fin j} (h_le : α β) (h_eq : i = j) {b : Module.Basis (Fin i) (ConcreteBTField α) (ConcreteBTField β)} :
have castBasis := cast b; castBasis k = b (Fin.cast k)
@[simp]
theorem ConcreteBinaryTower.Basis_cast_dest_apply {ι : Type u_1} (α β γ : ) (h_le1 : α β) (h_le2 : α γ) (h_eq : β = γ) {k : ι} (b : Module.Basis ι (ConcreteBTField α) (ConcreteBTField β)) :
have castBasis := cast b; castBasis k = cast (b k)
Instances For

    The power basis for ConcreteBTField (k + 1) over ConcreteBTField k is {1, Z (k + 1)}

    @[irreducible]

    The multilinear basis for ConcreteBTField τ over ConcreteBTField k is the set of multilinear monomials in the tower generators Z(k + 1), ..., Z(τ). This is done via scalar tower multiplication of power basis across adjacent levels.

    Instances For
      @[simp]
      theorem ConcreteBinaryTower.PowerBasis.dim_of_eq_rec (r1 r : ) (h_r : r = r1 + 1) (b : PowerBasis (ConcreteBTField r1) (ConcreteBTField (r1 + 1))) :
      ( b).dim = b.dim
      @[simp]
      theorem ConcreteBinaryTower.PowerBasis.cast_basis_succ_of_eq_rec_apply (r1 r : ) (h_r : r = r1 + 1) (k : Fin 2) :
      let b := powerBasisSucc r1; let bCast := b; have h_pb_dim := ; have h_pb'_dim := ; have h_pb_type_eq := ; have left := cast h_pb_type_eq bCast.basis; have right := (algebraMap (ConcreteBTField (r1 + 1)) (ConcreteBTField r)) (b.basis (Fin.cast k)); left k = right
      @[simp]
      theorem ConcreteBinaryTower.coe_basis_apply {R : Type u_1} {S : Type u_2} [CommRing R] [Ring S] [Algebra R S] (pb : PowerBasis R S) (i : Fin pb.dim) :
      pb.basis i = pb.gen ^ i
      theorem ConcreteBinaryTower.algebraMap_𝕏_eq_of_index_eq (r k m : ) (h_k_le : k + 1 r) (h_m_le : m + 1 r) (h_eq : k = m) :

      When two indices are equal, the tower algebra maps send the respective 𝕏 to the same element.

      The basis element at index j is the product of the tower generators at the ON bits in binary representation of j.

      theorem ConcreteBinaryTower.multilinearBasis_apply (r l : ) (h_le : l r) (j : Fin (2 ^ (r - l))) :
      (multilinearBasis l r h_le) j = i : Fin (r - l), (algebraMap (ConcreteBTField (l + i + 1)) (ConcreteBTField r)) (𝕏 (l + i) ^ (↑i).getBit j)