# Finiteness of the tensor product of (sub)modules #

In this file we show that the supremum of two subalgebras that are finitely generated as modules, is again finitely generated.

source
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`.

source
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))
source
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 (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`.

source
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 (inclusion hle)))
source
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)
source
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)
source
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] :
∃ (N : Submodule R M), N ≠ ⊤ ∧ ⊤.IsPrincipal
source
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] :
∃ (I : Ideal R) (f : M →ₗ[R] R ⧸ I), I ≠ ⊤ ∧ Function.Surjective ⇑f
source
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)
source
theorem Subalgebra.finite_sup {K : Type u_1} {L : Type u_2} [CommSemiring K] [CommSemiring L] [Algebra K L] (E1 E2 : Subalgebra K L) [Module.Finite K ↥E1] [Module.Finite K ↥E2] :
Module.Finite K ↥(E1 ⊔ E2)
source
theorem RingHom.surjective_of_tmul_eq_tmul_of_finite {R : Type u_1} {S : Type u_2} [CommRing R] [Ring S] [Algebra R S] [Module.Finite R S] (h₁ : ∀ (s : S), s ⊗ₜ[R] 1 = 1 ⊗ₜ[R] s) :
Function.Surjective ⇑(algebraMap R S)