Documentation

Mathlib.LinearAlgebra.TensorProduct.Vanishing

Vanishing of elements in a tensor product of two modules #

Let M and N be modules over a commutative ring R. Recall that every element of MN can be written as a finite sum imini of pure tensors (TensorProduct.exists_finset). We would like to determine under what circumstances such an expression vanishes.

Let us say that an expression iιmini in MN vanishes trivially (TensorProduct.VanishesTrivially) if there exist a finite index type κ = Fin k, elements (yj)jκ of N, and elements (aij)iι,jκ of R such that for all i, ni=jaijyj and for all j, iaijmi=0. (The terminology "trivial" comes from Stacks 00HK.) It is not difficult to show (TensorProduct.sum_tmul_eq_zero_of_vanishesTrivially) that if imini vanishes trivially, then it vanishes; that is, imini=0.

The equational criterion for vanishing (TensorProduct.vanishesTrivially_iff_sum_tmul_eq_zero), which appears as [A. Altman and S. Kleiman, A term of commutative algebra (Lemma 8.16)][altman2021term], states that if the elements mi generate the module M, then imini=0 if and only if the expression imini vanishes trivially.

We also prove the following generalization (TensorProduct.vanishesTrivially_iff_sum_tmul_eq_zero_of_rTensor_injective). If the submodule MM generated by the mi satisfies the property that the induced map MNMN is injective, then imini=0 if and only if the expression imini vanishes trivially. (In the case that M=R, this yields the equational criterion for flatness Module.Flat.iff_forall_isTrivialRelation.)

Conversely (TensorProduct.rTensor_injective_of_forall_vanishesTrivially), suppose that for every equation imini=0, the expression imini vanishes trivially. Then the induced map MNMN is injective for every submodule MM.

References #

TODO #

@[reducible, inline]
abbrev TensorProduct.VanishesTrivially (R : Type u_1) [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] {ι : Type u_4} [Fintype ι] (m : ιM) (n : ιN) :

An expression imini in MN vanishes trivially if there exist a finite index type κ = Fin k, elements (yj)jκ of N, and elements (aij)iι,jκ of R such that for all i, ni=jaijyj and for all j, iaijmi=0. Note that this condition is not symmetric in M and N. (The terminology "trivial" comes from Stacks 00HK.)

Equations
theorem TensorProduct.VanishesTrivially.of_fintype {R : Type u_1} [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] {ι : Type u_4} [Fintype ι] {m : ιM} {n : ιN} {κ : Type u_5} [Fintype κ] (a : ικR) (y : κN) (hay : ∀ (i : ι), n i = j : κ, a i j y j) (ham : ∀ (j : κ), i : ι, a i j m i = 0) :
theorem Equiv.vanishesTrivially_comp {R : Type u_1} [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] {ι : Type u_4} [Fintype ι] {m : ιM} {n : ιN} {κ : Type u_5} [Fintype κ] (e : κ ι) :
theorem TensorProduct.sum_tmul_eq_zero_of_vanishesTrivially (R : Type u_1) [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] {ι : Type u_4} [Fintype ι] {m : ιM} {n : ιN} (hmn : VanishesTrivially R m n) :
i : ι, m i ⊗ₜ[R] n i = 0

Equational criterion for vanishing [A. Altman and S. Kleiman, A term of commutative algebra (Lemma 8.16)][altman2021term], backward direction.

If the expression imini vanishes trivially, then it vanishes. That is, imini=0.

theorem TensorProduct.vanishesTrivially_of_sum_tmul_eq_zero (R : Type u_1) [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] {ι : Type u_4} [Fintype ι] {m : ιM} {n : ιN} (hm : Submodule.span R (Set.range m) = ) (hmn : i : ι, m i ⊗ₜ[R] n i = 0) :

Equational criterion for vanishing [A. Altman and S. Kleiman, A term of commutative algebra (Lemma 8.16)][altman2021term], forward direction.

Assume that the mi generate M. If the expression imini vanishes, then it vanishes trivially.

theorem TensorProduct.vanishesTrivially_iff_sum_tmul_eq_zero (R : Type u_1) [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] {ι : Type u_4} [Fintype ι] {m : ιM} {n : ιN} (hm : Submodule.span R (Set.range m) = ) :
VanishesTrivially R m n i : ι, m i ⊗ₜ[R] n i = 0

Equational criterion for vanishing [A. Altman and S. Kleiman, A term of commutative algebra (Lemma 8.16)][altman2021term].

Assume that the mi generate M. Then the expression imini vanishes trivially if and only if it vanishes.

theorem TensorProduct.vanishesTrivially_of_sum_tmul_eq_zero_of_rTensor_injective (R : Type u_1) [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] {ι : Type u_4} [Fintype ι] {m : ιM} {n : ιN} (hm : Function.Injective (LinearMap.rTensor N (Submodule.span R (Set.range m)).subtype)) (hmn : i : ι, m i ⊗ₜ[R] n i = 0) :

Equational criterion for vanishing [A. Altman and S. Kleiman, A term of commutative algebra (Lemma 8.16)][altman2021term], forward direction, generalization.

Assume that the submodule MM generated by the mi satisfies the property that the map MNMN is injective. If the expression imini vanishes, then it vanishes trivially.

theorem TensorProduct.vanishesTrivially_iff_sum_tmul_eq_zero_of_rTensor_injective (R : Type u_1) [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] {ι : Type u_4} [Fintype ι] {m : ιM} {n : ιN} (hm : Function.Injective (LinearMap.rTensor N (Submodule.span R (Set.range m)).subtype)) :
VanishesTrivially R m n i : ι, m i ⊗ₜ[R] n i = 0

Equational criterion for vanishing [A. Altman and S. Kleiman, A term of commutative algebra (Lemma 8.16)][altman2021term], generalization.

Assume that the submodule MM generated by the mi satisfies the property that the map MNMN is injective. Then the expression imini vanishes trivially if and only if it vanishes.

theorem TensorProduct.rTensor_injective_of_forall_vanishesTrivially (R : Type u_1) [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] (hMN : ∀ {l : } {m : Fin lM} {n : Fin lN}, i : Fin l, m i ⊗ₜ[R] n i = 0VanishesTrivially R m n) (M' : Submodule R M) :

Converse of TensorProduct.vanishesTrivially_of_sum_tmul_eq_zero_of_rTensor_injective.

Assume that every expression imini which vanishes also vanishes trivially. Then, for every submodule MM, the map MNMN is injective.

theorem TensorProduct.forall_vanishesTrivially_iff_forall_rTensor_injective (R : Type u_1) [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] :
(∀ {l : } {m : Fin lM} {n : Fin lN}, i : Fin l, m i ⊗ₜ[R] n i = 0VanishesTrivially R m n) ∀ (M' : Submodule R M), Function.Injective (LinearMap.rTensor N M'.subtype)

Every expression imini which vanishes also vanishes trivially if and only if for every submodule MM, the map MNMN is injective.

theorem TensorProduct.forall_vanishesTrivially_iff_forall_fg_rTensor_injective (R : Type u_1) [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] :
(∀ {l : } {m : Fin lM} {n : Fin lN}, i : Fin l, m i ⊗ₜ[R] n i = 0VanishesTrivially R m n) ∀ (M' : Submodule R M), M'.FGFunction.Injective (LinearMap.rTensor N M'.subtype)

Every expression imini which vanishes also vanishes trivially if and only if for every finitely generated submodule MM, the map MNMN is injective.

If the map MNMN is injective for every finitely generated submodule MM, then it is in fact injective for every submodule MM.

@[deprecated TensorProduct.forall_vanishesTrivially_iff_forall_fg_rTensor_injective (since := "2025-01-03")]
theorem TensorProduct.forall_vanishesTrivially_iff_forall_FG_rTensor_injective (R : Type u_1) [CommRing R] {M : Type u_2} [AddCommGroup M] [Module R M] {N : Type u_3} [AddCommGroup N] [Module R N] :
(∀ {l : } {m : Fin lM} {n : Fin lN}, i : Fin l, m i ⊗ₜ[R] n i = 0VanishesTrivially R m n) ∀ (M' : Submodule R M), M'.FGFunction.Injective (LinearMap.rTensor N M'.subtype)

Alias of TensorProduct.forall_vanishesTrivially_iff_forall_fg_rTensor_injective.


Every expression imini which vanishes also vanishes trivially if and only if for every finitely generated submodule MM, the map MNMN is injective.

@[deprecated TensorProduct.rTensor_injective_of_forall_fg_rTensor_injective (since := "2025-01-03")]

Alias of TensorProduct.rTensor_injective_of_forall_fg_rTensor_injective.


If the map MNMN is injective for every finitely generated submodule MM, then it is in fact injective for every submodule MM.