HepLean Documentation

Mathlib.RingTheory.TensorProduct.Free

Results on bases of tensor products #

In the file we construct a basis for the base change of a module to an algebra, and deducde that Module.Free is stable under base change.

Main declarations #

noncomputable def Algebra.TensorProduct.basisAux {R : Type u_1} (A : Type u_2) {M : Type uM} {ι : Type uι} [CommSemiring R] [Semiring A] [Algebra R A] [AddCommMonoid M] [Module R M] (b : Basis ι R M) :

Given an R-algebra A and an R-basis of M, this is an R-linear isomorphism A ⊗[R] M ≃ (ι →₀ A) (which is in fact A-linear).

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem Algebra.TensorProduct.basisAux_tmul {R : Type u_1} {A : Type u_2} {M : Type uM} {ι : Type uι} [CommSemiring R] [Semiring A] [Algebra R A] [AddCommMonoid M] [Module R M] (b : Basis ι R M) (a : A) (m : M) :
    theorem Algebra.TensorProduct.basisAux_map_smul {R : Type u_1} {A : Type u_2} {M : Type uM} {ι : Type uι} [CommSemiring R] [Semiring A] [Algebra R A] [AddCommMonoid M] [Module R M] (b : Basis ι R M) (a : A) (x : TensorProduct R A M) :
    noncomputable def Algebra.TensorProduct.basis {R : Type u_1} (A : Type u_2) {M : Type uM} {ι : Type uι} [CommSemiring R] [Semiring A] [Algebra R A] [AddCommMonoid M] [Module R M] (b : Basis ι R M) :
    Basis ι A (TensorProduct R A M)

    Given a R-algebra A, this is the A-basis of A ⊗[R] M induced by a R-basis of M.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem Algebra.TensorProduct.basis_repr_tmul {R : Type u_1} {A : Type u_2} {M : Type uM} {ι : Type uι} [CommSemiring R] [Semiring A] [Algebra R A] [AddCommMonoid M] [Module R M] (b : Basis ι R M) (a : A) (m : M) :
      (Algebra.TensorProduct.basis A b).repr (a ⊗ₜ[R] m) = a Finsupp.mapRange (algebraMap R A) (b.repr m)
      theorem Algebra.TensorProduct.basis_repr_symm_apply {R : Type u_1} {A : Type u_2} {M : Type uM} {ι : Type uι} [CommSemiring R] [Semiring A] [Algebra R A] [AddCommMonoid M] [Module R M] (b : Basis ι R M) (a : A) (i : ι) :
      (Algebra.TensorProduct.basis A b).repr.symm (Finsupp.single i a) = a ⊗ₜ[R] b.repr.symm (Finsupp.single i 1)
      @[simp]
      theorem Algebra.TensorProduct.basis_apply {R : Type u_1} {A : Type u_2} {M : Type uM} {ι : Type uι} [CommSemiring R] [Semiring A] [Algebra R A] [AddCommMonoid M] [Module R M] (b : Basis ι R M) (i : ι) :
      theorem Algebra.TensorProduct.basis_repr_symm_apply' {R : Type u_1} {A : Type u_2} {M : Type uM} {ι : Type uι} [CommSemiring R] [Semiring A] [Algebra R A] [AddCommMonoid M] [Module R M] (b : Basis ι R M) (a : A) (i : ι) :
      theorem Basis.baseChange_linearMap {R : Type u_1} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [Fintype ι] {ι' : Type u_3} {N : Type u_4} [Fintype ι'] [DecidableEq ι'] [AddCommMonoid N] [Module R N] (A : Type u_5) [CommSemiring A] [Algebra R A] (b : Basis ι R M) (b' : Basis ι' R N) (ij : ι × ι') :
      LinearMap.baseChange A ((b'.linearMap b) ij) = ((Algebra.TensorProduct.basis A b').linearMap (Algebra.TensorProduct.basis A b)) ij
      theorem Basis.baseChange_end {R : Type u_1} {M : Type uM} {ι : Type uι} [CommSemiring R] [AddCommMonoid M] [Module R M] [Fintype ι] (A : Type u_5) [CommSemiring A] [Algebra R A] [DecidableEq ι] (b : Basis ι R M) (ij : ι × ι) :
      noncomputable instance Algebra.TensorProduct.instFree (R : Type u_3) (A : Type u_4) (M : Type u_5) [CommSemiring R] [AddCommMonoid M] [Module R M] [Module.Free R M] [CommSemiring A] [Algebra R A] :
      Equations
      • =
      @[simp]
      theorem LinearMap.toMatrix_baseChange {R : Type u_1} {M₁ : Type u_2} {M₂ : Type u_3} {ι : Type u_4} {ι₂ : Type u_5} (A : Type u_6) [Fintype ι] [Finite ι₂] [DecidableEq ι] [CommSemiring R] [CommSemiring A] [Algebra R A] [AddCommMonoid M₁] [Module R M₁] [AddCommMonoid M₂] [Module R M₂] (f : M₁ →ₗ[R] M₂) (b₁ : Basis ι R M₁) (b₂ : Basis ι₂ R M₂) :