Documentation

CompPoly.Fields.Binary.Tower.TensorAlgebra

Generalized Tensor Algebra and Dual View #

This file develops the algebraic theory of the tensor product algebra A := R ⊗[K] C for arbitrary field extensions R/K and C/K, upon the existing TensorProduct module.

Main Definitions #

TODOs #

References #

noncomputable instance instCommSemiringTensorProduct_compPoly {K : Type u_1} {Left : Type u_2} {Right : Type u_3} [CommSemiring K] [CommSemiring Left] [CommSemiring Right] [Algebra K Left] [Algebra K Right] :
Equations
    noncomputable instance instAlgebraTensorProduct_compPoly {K : Type u_1} {Left : Type u_2} {Right : Type u_3} [CommSemiring K] [CommSemiring Left] [CommSemiring Right] [Algebra K Left] [Algebra K Right] :
    Algebra K (TensorProduct K Left Right)
    Equations
      noncomputable instance instAlgebraTensorProduct_compPoly_1 {K : Type u_1} {Left : Type u_2} {Right : Type u_3} [CommSemiring K] [CommSemiring Left] [CommSemiring Right] [Algebra K Left] [Algebra K Right] :
      Algebra Left (TensorProduct K Left Right)
      Equations
        noncomputable instance instAlgebraTensorProduct_compPoly_2 {K : Type u_1} {Left : Type u_2} {Right : Type u_3} [CommSemiring K] [CommSemiring Left] [CommSemiring Right] [Algebra K Left] [Algebra K Right] :
        Algebra Right (TensorProduct K Left Right)
        Equations
          theorem comm_map_smul_tmul {K : Type u_1} {Left : Type u_2} {Right : Type u_3} [CommSemiring K] [CommSemiring Left] [CommSemiring Right] [Algebra K Left] [Algebra K Right] (s s' : Right) (m : Left) :
          (Algebra.TensorProduct.comm K Right Left) (s s' ⊗ₜ[K] m) = s (Algebra.TensorProduct.comm K Right Left) (s' ⊗ₜ[K] m)
          theorem comm_map_smul_add {K : Type u_1} {Left : Type u_2} {Right : Type u_3} [CommSemiring K] [CommSemiring Left] [CommSemiring Right] [Algebra K Left] [Algebra K Right] (s : Right) (x y : TensorProduct K Right Left) (hx : (Algebra.TensorProduct.comm K Right Left) (s x) = s (Algebra.TensorProduct.comm K Right Left) x) (hy : (Algebra.TensorProduct.comm K Right Left) (s y) = s (Algebra.TensorProduct.comm K Right Left) y) :
          (Algebra.TensorProduct.comm K Right Left) (s x) + (Algebra.TensorProduct.comm K Right Left) (s y) = s (Algebra.TensorProduct.comm K Right Left) x + s (Algebra.TensorProduct.comm K Right Left) y
          noncomputable def commSEquiv {K : Type u_1} {Left : Type u_2} {Right : Type u_3} [CommSemiring K] [CommSemiring Left] [CommSemiring Right] [Algebra K Left] [Algebra K Right] :
          TensorProduct K Right Left ≃ₗ[Right] TensorProduct K Left Right

          A helper definition to package Algebra.TensorProduct.comm as an Right-linear equivalence. It takes the existing K-algebra equivalence and adds a proof that it is also Right-linear. We make the types explicit arguments to avoid type inference issues.

          Equations
            Instances For
              noncomputable def Basis.baseChangeRight {K : Type u_1} {Left : Type u_2} {Right : Type u_3} {ι : Type u_4} [CommSemiring K] [CommSemiring Left] [CommSemiring Right] [Algebra K Left] [Algebra K Right] (b : Module.Basis ι K Left) :
              Module.Basis ι Right (TensorProduct K Left Right)

              The lift of an K-basis of Left to an Right-basis of the base change Left ⊗[K] Right. This is the right-sided counterpart to Basis.baseChange.

              Equations
                Instances For
                  theorem Basis.baseChangeRight_repr_tmul {K : Type u_1} {Left : Type u_2} {Right : Type u_3} {ι : Type u_4} [CommSemiring K] [CommSemiring Left] [CommSemiring Right] [Algebra K Left] [Algebra K Right] (b : Module.Basis ι K Left) (x : Left) (y : Right) (i : ι) :
                  ((baseChangeRight b).repr (x ⊗ₜ[K] y)) i = (b.repr x) i y
                  @[simp]
                  theorem Basis.baseChangeRight_apply {K : Type u_1} {Left : Type u_2} {Right : Type u_3} {ι : Type u_4} [CommSemiring K] [CommSemiring Left] [CommSemiring Right] [Algebra K Left] [Algebra K Right] (b : Module.Basis ι K Left) (i : ι) :