Documentation

Mathlib.RingTheory.Flat

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 . This result is not yet formalised.

Main declaration #

Main theorems #

TODO #

class Module.Flat (R : Type u) (M : Type v) [CommRing R] [AddCommGroup M] [Module R M] :

An R-module M is flat if for all finitely generated ideals I of R, the canonical map I ⊗ M →ₗ M is injective.

Instances
    instance Module.Flat.self (R : Type u) [CommRing R] :
    Equations

    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. -

    theorem Module.Flat.of_retract (R : Type u) [CommRing R] (M : Type v) [AddCommGroup M] [Module R M] (N : Type w) [AddCommGroup N] [Module R N] [f : Module.Flat R M] (i : N →ₗ[R] M) (r : M →ₗ[R] N) (h : r ∘ₗ i = LinearMap.id) :

    A retract of a flat R-module is flat.

    theorem Module.Flat.of_linearEquiv (R : Type u) [CommRing R] (M : Type v) [AddCommGroup M] [Module R M] (N : Type w) [AddCommGroup N] [Module R N] [f : Module.Flat R M] (e : N ≃ₗ[R] M) :

    A R-module linearly equivalent to a flat R-module is flat.

    instance Module.Flat.directSum (R : Type u) [CommRing R] (ι : Type v) (M : ιType w) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [F : ∀ (i : ι), Module.Flat R (M i)] :
    Module.Flat R (DirectSum ι fun (i : ι) => M i)

    A direct sum of flat R-modules is flat.

    Equations
    instance Module.Flat.finsupp (R : Type u) [CommRing R] (ι : Type v) :

    Free R-modules over discrete types are flat.

    Equations
    instance Module.Flat.of_free (R : Type u) [CommRing R] (M : Type v) [AddCommGroup M] [Module R M] [Module.Free R M] :
    Equations
    theorem Module.Flat.of_projective_surjective (R : Type u) [CommRing R] (M : Type v) [AddCommGroup M] [Module R M] (ι : Type w) [Module.Projective R M] (p : (ι →₀ R) →ₗ[R] M) (hp : Function.Surjective p) :

    A projective module with a discrete type of generator is flat

    instance Module.Flat.of_projective (R : Type u) [CommRing R] (M : Type v) [AddCommGroup M] [Module R M] [h : Module.Projective R M] :
    Equations