Presentation of the tensor product of two modules #
Given presentations of two A-modules M₁ and M₂, we obtain a presentation of M₁ ⊗[A] M₂.
@[simp]
theorem Module.Relations.tensor_relation {A : Type u} [CommRing A] (relations₁ : Relations A) (relations₂ : Relations A) (x✝ : relations₁.R × relations₂.G ⊕ relations₁.G × relations₂.R) :
(relations₁.tensor relations₂).relation x✝ = match x✝ with
| Sum.inl (r₁, g₂) => Finsupp.embDomain (Function.Embedding.sectL relations₁.G g₂) (relations₁.relation r₁)
| Sum.inr (g₁, r₂) => Finsupp.embDomain (Function.Embedding.sectR g₁ relations₂.G) (relations₂.relation r₂)
noncomputable def Module.Relations.Solution.tensor {A : Type u} [CommRing A] {M₁ : Type v₁} {M₂ : Type v₂} [AddCommGroup M₁] [AddCommGroup M₂] [Module A M₁] [Module A M₂] {relations₁ : Relations A} {relations₂ : Relations A} (solution₁ : relations₁.Solution M₁) (solution₂ : relations₂.Solution M₂) :
(relations₁.tensor relations₂).Solution (TensorProduct A M₁ M₂)
Given solutions in M₁ and M₂ to systems of linear equations, this is the obvious
solution to the tensor product of these systems in M₁ ⊗[A] M₂.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem Module.Relations.Solution.tensor_var {A : Type u} [CommRing A] {M₁ : Type v₁} {M₂ : Type v₂} [AddCommGroup M₁] [AddCommGroup M₂] [Module A M₁] [Module A M₂] {relations₁ : Relations A} {relations₂ : Relations A} (solution₁ : relations₁.Solution M₁) (solution₂ : relations₂.Solution M₂) (x✝ : (relations₁.tensor relations₂).G) :
noncomputable def Module.Relations.Solution.isPresentationCoreTensor {A : Type u} [CommRing A] {M₁ : Type v₁} {M₂ : Type v₂} [AddCommGroup M₁] [AddCommGroup M₂] [Module A M₁] [Module A M₂] {relations₁ : Relations A} {relations₂ : Relations A} {solution₁ : relations₁.Solution M₁} {solution₂ : relations₂.Solution M₂} (h₁ : solution₁.IsPresentation) (h₂ : solution₂.IsPresentation) :
(solution₁.tensor solution₂).IsPresentationCore
The tensor product of two modules admits a presentation by generators and relations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem Module.Relations.Solution.IsPresentation.tensor {A : Type u} [CommRing A] {M₁ : Type v₁} {M₂ : Type v₂} [AddCommGroup M₁] [AddCommGroup M₂] [Module A M₁] [Module A M₂] {relations₁ : Relations A} {relations₂ : Relations A} {solution₁ : relations₁.Solution M₁} {solution₂ : relations₂.Solution M₂} (h₁ : solution₁.IsPresentation) (h₂ : solution₂.IsPresentation) :
(solution₁.tensor solution₂).IsPresentation
noncomputable def Module.Presentation.tensor {A : Type u} [CommRing A] {M₁ : Type v₁} {M₂ : Type v₂} [AddCommGroup M₁] [AddCommGroup M₂] [Module A M₁] [Module A M₂] (pres₁ : Presentation A M₁) (pres₂ : Presentation A M₂) :
Presentation A (TensorProduct A M₁ M₂)
The presentation of the A-module M₁ ⊗[A] M₂ that is deduced from
a presentation of M₁ and a presentation of M₂.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem Module.Presentation.tensor_G {A : Type u} [CommRing A] {M₁ : Type v₁} {M₂ : Type v₂} [AddCommGroup M₁] [AddCommGroup M₂] [Module A M₁] [Module A M₂] (pres₁ : Presentation A M₁) (pres₂ : Presentation A M₂) :
@[simp]
theorem Module.Presentation.tensor_R {A : Type u} [CommRing A] {M₁ : Type v₁} {M₂ : Type v₂} [AddCommGroup M₁] [AddCommGroup M₂] [Module A M₁] [Module A M₂] (pres₁ : Presentation A M₁) (pres₂ : Presentation A M₂) :
@[simp]
theorem Module.Presentation.tensor_var {A : Type u} [CommRing A] {M₁ : Type v₁} {M₂ : Type v₂} [AddCommGroup M₁] [AddCommGroup M₂] [Module A M₁] [Module A M₂] (pres₁ : Presentation A M₁) (pres₂ : Presentation A M₂) (x✝ : (pres₁.tensor pres₂.toRelations).G) :
@[simp]
theorem Module.Presentation.tensor_relation {A : Type u} [CommRing A] {M₁ : Type v₁} {M₂ : Type v₂} [AddCommGroup M₁] [AddCommGroup M₂] [Module A M₁] [Module A M₂] (pres₁ : Presentation A M₁) (pres₂ : Presentation A M₂) (x✝ : pres₁.R × pres₂.G ⊕ pres₁.G × pres₂.R) :
(pres₁.tensor pres₂).relation x✝ = match x✝ with
| Sum.inl (r₁, g₂) => Finsupp.embDomain (Function.Embedding.sectL pres₁.G g₂) (pres₁.relation r₁)
| Sum.inr (g₁, r₂) => Finsupp.embDomain (Function.Embedding.sectR g₁ pres₂.G) (pres₂.relation r₂)