Documentation

Mathlib.Algebra.Colimit.Finiteness

Modules as direct limits of finitely generated submodules #

We show that every module is the direct limit of its finitely generated submodules.

Main definitions #

def Module.fgSystem (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] (N₁ Nā‚‚ : { N : Submodule R M // N.FG }) (le : N₁ ≤ Nā‚‚) :
ↄ↑N₁ →ₗ[R] ↄ↑Nā‚‚

The directed system of finitely generated submodules of a module.

Equations
    Instances For
      instance Module.fgSystem.instDirectedSystemSubtypeSubmoduleFGMemValCoeLinearMapId (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] :
      DirectedSystem (fun (x2 : { N : Submodule R M // N.FG }) => ↄ↑x2) fun (x1 x2 : { N : Submodule R M // N.FG }) (x3 : x1 ≤ x2) (x4 : ↄ↑x1) => (fgSystem R M x1 x2 x3) x4
      noncomputable def Module.fgSystem.equiv (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] [DecidableEq (Submodule R M)] :
      DirectLimit (fun (i : { N : Submodule R M // N.FG }) => ↄ↑i) (fgSystem R M) ā‰ƒā‚—[R] M

      Every module is the direct limit of its finitely generated submodules.

      Equations
        Instances For
          theorem Module.fgSystem.equiv_comp_of {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [DecidableEq (Submodule R M)] (N : { N : Submodule R M // N.FG }) :
          ↑(equiv R M) āˆ˜ā‚— DirectLimit.of R { N : Submodule R M // N.FG } (fun (i : { N : Submodule R M // N.FG }) => ↄ↑i) (fgSystem R M) N = (↑N).subtype