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_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₂)
@[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_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_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₂)
: