Finiteness of the tensor product of (sub)modules #
TODO: this file can probably be merged with RingTheory.TensorProduct.Finite
,
although the two files are currently incomparable in the import graph:
we will need further cleanup of the lemmas involved before we can do this.
theorem
Submodule.exists_fg_le_eq_rTensor_subtype
{R : Type u_1}
{M : Type u_2}
{N : Type u_3}
[CommSemiring R]
[AddCommMonoid M]
[AddCommMonoid N]
[Module R M]
[Module R N]
(x : TensorProduct R N M)
:
∃ (J : Submodule R N) (_ : J.FG) (y : TensorProduct R (↥J) M), x = (LinearMap.rTensor M J.subtype) y
Every x : N ⊗ M
is the image of some y : J ⊗ M
, where J
is a finitely generated
submodule of N
, under the tensor product of the inclusion J → N
and the identity M → M
.
theorem
Submodule.exists_fg_le_subset_range_rTensor_subtype
{R : Type u_1}
{M : Type u_2}
{N : Type u_3}
[CommSemiring R]
[AddCommMonoid M]
[AddCommMonoid N]
[Module R M]
[Module R N]
(s : Set (TensorProduct R N M))
(hs : s.Finite)
:
∃ (J : Submodule R N) (_ : J.FG), s ⊆ ↑(LinearMap.range (LinearMap.rTensor M J.subtype))
theorem
Submodule.exists_fg_le_eq_rTensor_inclusion
{R : Type u_1}
{M : Type u_2}
{N : Type u_3}
[CommSemiring R]
[AddCommMonoid M]
[AddCommMonoid N]
[Module R M]
[Module R N]
{I : Submodule R N}
(x : TensorProduct R (↥I) M)
:
∃ (J : Submodule R N) (_ : J.FG) (hle : J ≤ I) (y : TensorProduct R (↥J) M),
x = (LinearMap.rTensor M (Submodule.inclusion hle)) y
Every x : I ⊗ M
is the image of some y : J ⊗ M
, where J ≤ I
is finitely generated,
under the tensor product of J.inclusion ‹J ≤ I› : J → I
and the identity M → M
.
theorem
Submodule.exists_fg_le_subset_range_rTensor_inclusion
{R : Type u_1}
{M : Type u_2}
{N : Type u_3}
[CommSemiring R]
[AddCommMonoid M]
[AddCommMonoid N]
[Module R M]
[Module R N]
{I : Submodule R N}
(s : Set (TensorProduct R (↥I) M))
(hs : s.Finite)
:
∃ (J : Submodule R N) (_ : J.FG) (hle : J ≤ I), s ⊆ ↑(LinearMap.range (LinearMap.rTensor M (Submodule.inclusion hle)))
noncomputable def
instModuleTensorProduct
(R : Type u_1)
(A : Type u_2)
(M : Type u_4)
[CommSemiring R]
[Semiring A]
[Algebra R A]
[AddCommMonoid M]
[Module R M]
:
Module A (TensorProduct R A M)
Porting note: reminding Lean about this instance for Module.Finite.base_change
Equations
Instances For
instance
Module.Finite.base_change
(R : Type u_1)
(A : Type u_2)
(M : Type u_4)
[CommSemiring R]
[Semiring A]
[Algebra R A]
[AddCommMonoid M]
[Module R M]
[h : Module.Finite R M]
:
Module.Finite A (TensorProduct R A M)
instance
Module.Finite.tensorProduct
(R : Type u_1)
(M : Type u_4)
(N : Type u_5)
[CommSemiring R]
[AddCommMonoid M]
[Module R M]
[AddCommMonoid N]
[Module R N]
[hM : Module.Finite R M]
[hN : Module.Finite R N]
:
Module.Finite R (TensorProduct R M N)
theorem
Module.exists_isPrincipal_quotient_of_finite
(R : Type u_1)
(M : Type u_2)
[CommRing R]
[AddCommGroup M]
[Module R M]
[Module.Finite R M]
[Nontrivial M]
:
theorem
Module.exists_surjective_quotient_of_finite
(R : Type u_1)
(M : Type u_2)
[CommRing R]
[AddCommGroup M]
[Module R M]
[Module.Finite R M]
[Nontrivial M]
:
instance
instNontrivialTensorProduct
(R : Type u_1)
(M : Type u_2)
[CommRing R]
[AddCommGroup M]
[Module R M]
[Module.Finite R M]
[Nontrivial M]
:
Nontrivial (TensorProduct R M M)