Faithfully flat modules #
A module M over a commutative ring R is faithfully flat if it is flat and IM ≠ M whenever
I is a maximal ideal of R.
Main declaration #
Module.FaithfullyFlat: the predicate asserting that anR-moduleMis faithfully flat.
Main theorems #
Module.FaithfullyFlat.iff_flat_and_proper_ideal: anR-moduleMis faithfully flat iff it is flat and for all proper idealsIofR,I • M ≠ M.Module.FaithfullyFlat.iff_flat_and_rTensor_faithful: anR-moduleMis faithfully flat iff it is flat and tensoring withMis faithful, i.e.N ≠ 0impliesN ⊗ M ≠ 0.Module.FaithfullyFlat.iff_flat_and_lTensor_faithful: anR-moduleMis faithfully flat iff it is flat and tensoring withMis faithful, i.e.N ≠ 0impliesM ⊗ N ≠ 0.Module.FaithfullyFlat.iff_exact_iff_rTensor_exact: anR-moduleMis faithfully flat iff tensoring withMpreserves and reflects exact sequences, i.e. the sequenceN₁ → N₂ → N₃is exact iff the sequenceN₁ ⊗ M → N₂ ⊗ M → N₃ ⊗ Mis exact.Module.FaithfullyFlat.iff_exact_iff_lTensor_exact: anR-moduleMis faithfully flat iff tensoring withMpreserves and reflects exact sequences, i.e. the sequenceN₁ → N₂ → N₃is exact iff the sequenceM ⊗ N₁ → M ⊗ N₂ → M ⊗ N₃is exact.Module.FaithfullyFlat.iff_zero_iff_lTensor_zero: anR-moduleMis faithfully flat iff for all linear mapsf : N → N',f = 0iffM ⊗ f = 0.Module.FaithfullyFlat.iff_zero_iff_rTensor_zero: anR-moduleMis faithfully flat iff for all linear mapsf : N → N',f = 0ifff ⊗ M = 0.Module.FaithfullyFlat.of_linearEquiv: modules linearly equivalent to a flat modules are flatModule.FaithfullyFlat.trans: ifSisR-faithfully flat andMisS-faithfully flat, thenMisR-faithfully flat.Module.FaithfullyFlat.self: theR-moduleRis faithfully flat.
A module M over a commutative ring R is faithfully flat if it is flat and,
for all R-linear maps f : N → N' such that id ⊗ f = 0, we have f = 0.
- out ⦃P : Type u⦄ [AddCommMonoid P] [Module R P] [Module.Finite R P] (N : Submodule R P) : N.FG → Function.Injective ⇑(LinearMap.rTensor M N.subtype)
Instances
If M is a faithfully flat R-module and N is R-linearly isomorphic to M, then
N is faithfully flat.
A direct sum of faithfully flat R-modules is faithfully flat.
Free R-modules over discrete types are flat.
Any free, nontrivial R-module is flat.
Faithfully flat modules and exact sequences #
In this section we prove that an R-module M is faithfully flat iff tensoring with M
preserves and reflects exact sequences.
Let N₁ -l₁₂-> N₂ -l₂₃-> N₃ be two linear maps.
- We first show that if
N₁ ⊗ M -> N₂ ⊗ M -> N₃ ⊗ Mis exact, thenN₁ -l₁₂-> N₂ -l₂₃-> N₃is a complex, i.e.range l₁₂ ≤ ker l₂₃. This isrange_le_ker_of_exact_rTensor. - Then in
rTensor_reflects_exact, we showker l₂₃ = range l₁₂by considering the cohomologyker l₂₃ ⧸ range l₁₂. This shows that whenMis faithfully flat,- ⊗ Mreflects exact sequences. For details, see comments in the proof. SinceMis flat,- ⊗ Mpreserves exact sequences.
On the other hand, if - ⊗ M preserves and reflects exact sequences, then M is faithfully flat.
Mis flat because- ⊗ Mpreserves exact sequences.- We need to show that if
N ⊗ M = 0thenN = 0. Consider the sequenceN -0-> N -0-> 0. After tensoring withM, we getN ⊗ M -0-> N ⊗ M -0-> 0which is exact becauseN ⊗ M = 0. Since- ⊗ Mreflects exact sequences,N = 0.
If M is faithfully flat, then exactness of N₁ ⊗ M -> N₂ ⊗ M -> N₃ ⊗ M implies that the
composition N₁ -> N₂ -> N₃ is 0.
Implementation detail, please use rTensor_reflects_exact instead.
Faithfully flat modules and linear maps #
In this section we prove that an R-module M is faithfully flat iff the following holds:
Mis flat- for any
R-linear mapf : N → N',f= 0 ifff ⊗ 𝟙M = 0iff𝟙M ⊗ f = 0
If M is a faithfully flat module, then for all linear maps f, the map id ⊗ f = 0, if and only
if f = 0.
If M is a faithfully flat module, then for all linear maps f, the map f ⊗ id = 0, if and only
if f = 0.
If A is a faithfully flat R-algebra, and m is a term of an R-module M,
then 1 ⊗ₜ[R] m = 0 if and only if m = 0.
An R-module M is faithfully flat iff it is flat and for all linear maps f, the map
id ⊗ f = 0, if and only if f = 0.
An R-module M is faithfully flat iff it is flat and for all linear maps f, the map
id ⊗ f = 0, if and only if f = 0.
If S is a faithfully flat R-algebra, then any faithfully flat S-Module is faithfully flat
as an R-module.
Alias of Module.FaithfullyFlat.trans.
If S is a faithfully flat R-algebra, then any faithfully flat S-Module is faithfully flat
as an R-module.
Faithful flatness is preserved by arbitrary base change.
Flat descends along faithfully flat ring maps.