Flat modules #
A module M over a commutative ring R is flat
if for all finitely generated ideals I of R,
the canonical map I ⊗ M →ₗ M is injective.
This is equivalent to the claim that for all injective R-linear maps f : M₁ → M₂
the induced map M₁ ⊗ M → M₂ ⊗ M is injective.
See https://stacks.math.columbia.edu/tag/00HD.
Main declaration #
Module.Flat: the predicate asserting that anR-moduleMis flat.
Main theorems #
Module.Flat.of_retract: retracts of flat modules are flatModule.Flat.of_linearEquiv: modules linearly equivalent to a flat modules are flatModule.Flat.directSum: arbitrary direct sums of flat modules are flatModule.Flat.of_free: free modules are flatModule.Flat.of_projective: projective modules are flatModule.Flat.preserves_injective_linearMap: IfMis a flat module then tensoring withMpreserves injectivity of linear maps. This lemma is fully universally polymorphic in all arguments, i.e.R,Mand linear mapsN → N'can all have different universe levels.Module.Flat.iff_rTensor_preserves_injective_linearMap: a module is flat iff tensoring modules in the higher universe preserves injectivity .Module.Flat.lTensor_exact: IfMis a flat module then tensoring withMis an exact functor. This lemma is fully universally polymorphic in all arguments, i.e.R,Mand linear mapsN → N' → N''can all have different universe levels.Module.Flat.iff_lTensor_exact: a module is flat iff tensoring modules in the higher universe is an exact functor.
TODO #
- Generalize flatness to noncommutative rings.
An R-module M is flat if for all finitely generated ideals I of R,
the canonical map I ⊗ M →ₗ M is injective.
- out : ∀ ⦃I : Ideal R⦄, I.FG → Function.Injective ⇑(TensorProduct.lift (LinearMap.lsmul R M ∘ₗ Submodule.subtype I))
Instances
Equations
- ⋯ = inst
An R-module M is flat iff for all finitely generated ideals I of R, the
tensor product of the inclusion I → R and the identity M → M is injective. See
iff_rTensor_injective' to extend to all ideals I. -
An R-module M is flat iff for all ideals I of R, the tensor product of the
inclusion I → R and the identity M → M is injective. See iff_rTensor_injective to
restrict to finitely generated ideals I. -
Alias of LinearMap.lTensor_inj_iff_rTensor_inj.
Given a linear map f : N → P, f ⊗ M is injective if and only if M ⊗ f is injective.
The lTensor-variant of iff_rTensor_injective. .
The lTensor-variant of iff_rTensor_injective'. .
A retract of a flat R-module is flat.
A R-module linearly equivalent to a flat R-module is flat.
If an R-module M is linearly equivalent to another R-module N, then M is flat
if and only if N is flat.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
A direct sum of flat R-modules is flat.
Equations
- ⋯ = ⋯
Free R-modules over discrete types are flat.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
A projective module with a discrete type of generator is flat
Equations
- ⋯ = ⋯
Define the character module of M to be M →+ ℚ ⧸ ℤ.
The character module of M is an injective module if and only if
L ⊗ 𝟙 M is injective for any linear map L in the same universe as M.
CharacterModule M is Baer iff M is flat.
CharacterModule M is an injective module iff M is flat.
If M is a flat module, then f ⊗ 𝟙 M is injective for all injective linear maps f.
Alias of Module.Flat.rTensor_preserves_injective_linearMap.
If M is a flat module, then f ⊗ 𝟙 M is injective for all injective linear maps f.
If M is a flat module, then 𝟙 M ⊗ f is injective for all injective linear maps f.
M is flat if and only if f ⊗ 𝟙 M is injective whenever f is an injective linear map.
See Module.Flat.iff_rTensor_preserves_injective_linearMap to specialize the universe of
N, N', N'' to Type (max u v).
M is flat if and only if f ⊗ 𝟙 M is injective whenever f is an injective linear map.
See Module.Flat.iff_rTensor_preserves_injective_linearMap' to generalize the universe of
N, N', N'' to any universe that is higher than R and M.
M is flat if and only if 𝟙 M ⊗ f is injective whenever f is an injective linear map.
See Module.Flat.iff_lTensor_preserves_injective_linearMap to specialize the universe of
N, N', N'' to Type (max u v).
M is flat if and only if 𝟙 M ⊗ f is injective whenever f is an injective linear map.
See Module.Flat.iff_lTensor_preserves_injective_linearMap' to generalize the universe of
N, N', N'' to any universe that is higher than R and M.
If M is flat then M ⊗ - is an exact functor.
If M is flat then - ⊗ M is an exact functor.
M is flat if and only if M ⊗ - is an exact functor. See
Module.Flat.iff_lTensor_exact to specialize the universe of N, N', N'' to Type (max u v).
M is flat if and only if M ⊗ - is an exact functor.
See Module.Flat.iff_lTensor_exact' to generalize the universe of
N, N', N'' to any universe that is higher than R and M.
M is flat if and only if - ⊗ M is an exact functor. See
Module.Flat.iff_rTensor_exact to specialize the universe of N, N', N'' to Type (max u v).
M is flat if and only if - ⊗ M is an exact functor.
See Module.Flat.iff_rTensor_exact' to generalize the universe of
N, N', N'' to any universe that is higher than R and M.