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.
This result is not yet formalised.
Main declaration #
module.flat: the predicate asserting that anR-moduleMis flat.
TODO #
- Show that tensoring with a flat module preserves injective morphisms.
Show that this is equivalent to be flat.
See https://stacks.math.columbia.edu/tag/00HD.
To do this, it is probably a good idea to think about a suitable
categorical induction principle that should be applied to the category of
R-modules, and that will take care of the administrative side of the proof. - Define flat
R-algebras - Define flat ring homomorphisms
- Show that the identity is flat
- Show that composition of flat morphisms is flat
- Show that flatness is stable under base change (aka extension of scalars)
For base change, it will be very useful to have a "characteristic predicate"
instead of relying on the construction
A ⊗ B. Indeed, such a predicate should allow us to treat bothpolynomial AandA ⊗ polynomial Ras the base change ofpolynomial RtoA. (Similar examples exist withfin n → R,R × R,ℤ[i] ⊗ ℝ, etc...) - Generalize flatness to noncommutative rings.
@[class]
structure
module.flat
(R : Type u)
(M : Type v)
[comm_ring R]
[add_comm_group M]
[module R M] :
Prop
- out : ∀ ⦃I : ideal R⦄, I.fg → function.injective ⇑(tensor_product.lift ((linear_map.lsmul R M).comp (submodule.subtype I)))
An R-module M is flat if for all finitely generated ideals I of R,
the canonical map I ⊗ M →ₗ M is injective.