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 modules in the higher universe preserves injectivity .Module.Flat.lTensor_exact
: IfM
is a flat module then tensoring withM
is an exact functor. This lemma is fully universally polymorphic in all arguments, i.e.R
,M
and 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
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.
A direct sum of flat R
-modules is flat.
Free R
-modules over discrete types are flat.
A projective module with a discrete type of generator is flat
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
.
If p and q are submodules of M and N respectively, and M and q are flat,
then p ⊗ q → M ⊗ N
is injective.
If p and q are submodules of M and N respectively, and N and p are flat,
then p ⊗ q → M ⊗ N
is injective.
If M
, N
are R
-modules, there exists an injective R
-linear map from R
to N
,
and M
is a nontrivial flat R
-module, then M ⊗[R] N
is nontrivial.
If M
, N
are R
-modules, there exists an injective R
-linear map from R
to M
,
and N
is a nontrivial flat R
-module, then M ⊗[R] N
is nontrivial.
If A
, B
are R
-algebras, R
injects into B
,
and A
is a nontrivial flat R
-algebra, then A ⊗[R] B
is nontrivial.
If A
, B
are R
-algebras, R
injects into A
,
and B
is a nontrivial flat R
-algebra, then A ⊗[R] B
is nontrivial.