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₂
.
noncomputable def
Module.Relations.tensor
{A : Type u}
[CommRing A]
(relations₁ : Module.Relations A)
(relations₂ : Module.Relations A)
:
The tensor product of systems of linear equations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Module.Relations.tensor_R
{A : Type u}
[CommRing A]
(relations₁ : Module.Relations A)
(relations₂ : Module.Relations A)
:
@[simp]
theorem
Module.Relations.tensor_G
{A : Type u}
[CommRing A]
(relations₁ : Module.Relations A)
(relations₂ : Module.Relations A)
:
@[simp]
theorem
Module.Relations.tensor_relation
{A : Type u}
[CommRing A]
(relations₁ : Module.Relations A)
(relations₂ : Module.Relations A)
(r : relations₁.R × relations₂.G ⊕ relations₁.G × relations₂.R)
:
(relations₁.tensor relations₂).relation r = match r 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₁ : Module.Relations A}
{relations₂ : Module.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₁ : Module.Relations A}
{relations₂ : Module.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₁ : Module.Relations A}
{relations₂ : Module.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₁ : Module.Relations A}
{relations₂ : Module.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₁ : Module.Presentation A M₁)
(pres₂ : Module.Presentation A M₂)
:
Module.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₁ : Module.Presentation A M₁)
(pres₂ : Module.Presentation A M₂)
(r : pres₁.R × pres₂.G ⊕ pres₁.G × pres₂.R)
:
(pres₁.tensor pres₂).relation r = match r 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₁ : Module.Presentation A M₁)
(pres₂ : Module.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₁ : Module.Presentation A M₁)
(pres₂ : Module.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₁ : Module.Presentation A M₁)
(pres₂ : Module.Presentation A M₂)
: