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
-moduleM
is 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
: IfM
is a flat module then tensoring withM
preserves injectivity of linear maps. This lemma is fully universally polymorphic in all arguments, i.e.R
,M
and linear mapsN → N'
can all have different universe levels.Module.Flat.iff_rTensor_preserves_injective_linearMap
: a module is flat iff tensoring preserves injectivity in the ring's universe (or higher).
Implementation notes #
In Module.Flat.iff_rTensor_preserves_injective_linearMap
, we require that the universe level of
the ring is lower than or equal to that of the module. This requirement is to make sure ideals of
the ring can be lifted to the universe of the module. It is unclear if this lemma also holds
when the module lives in a lower universe.
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.
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.
M is flat if and only if 𝟙 M ⊗ f
is injective whenever f
is an injective linear map.
M is flat if and only if M ⊗ -
is a left exact functor.
M is flat if and only if - ⊗ M
is a left exact functor.