Documentation

Mathlib.Algebra.Module.FinitePresentation

Finitely Presented Modules #

Main definition #

Main results #

Suppose 0 → K → M → N → 0 is an exact sequence of R-modules.

Also the instances finite + free => f.p. => finite are also provided

TODO #

Suppose S is an R-algebra, M is an S-module. Then

  1. If S is f.p., then M is R-f.p. implies M is S-f.p.
  2. If S is both f.p. (as an algebra) and finite (as a module), then M is S-fp implies that M is R-f.p.
  3. If S is f.p. as a module, then S is f.p. as an algebra. In particular,
  4. S is f.p. as an R-module iff it is f.p. as an algebra and is finite as a module.

For finitely presented algebras, see Algebra.FinitePresentation in file Mathlib.RingTheory.FinitePresentation.

class Module.FinitePresentation (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] :

A module is finitely presented if it is finitely generated by some set s and the kernel of the presentation Rˢ → M is also finitely generated.

Instances
    @[instance 100]
    theorem Module.FinitePresentation.equiv_quotient (R M : Type u) [Ring R] [AddCommGroup M] [Module R M] [fp : Module.FinitePresentation R M] :
    ∃ (L : Type u) (x : AddCommGroup L) (x_1 : Module R L) (K : Submodule R L) (x_2 : M ≃ₗ[R] L K), Module.Free R L Module.Finite R L K.FG

    A finitely presented module is isomorphic to the quotient of a finite free module by a finitely generated submodule.

    theorem Module.finitePresentation_of_free_of_surjective {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [Module.Free R M] [Module.Finite R M] (l : M →ₗ[R] N) (hl : Function.Surjective l) (hl' : (LinearMap.ker l).FG) :
    @[deprecated Module.finitePresentation_of_projective]

    Alias of Module.finitePresentation_of_projective.

    instance instFinitePresentationForall {R : Type u_1} [Ring R] {ι : Type u_2} [Finite ι] :
    theorem Module.finitePresentation_of_surjective {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [h : Module.FinitePresentation R M] (l : M →ₗ[R] N) (hl : Function.Surjective l) (hl' : (LinearMap.ker l).FG) :
    theorem Module.FinitePresentation.fg_ker {R : Type u_1} {M : Type u_2} {N : Type u_3} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [Module.Finite R M] [h : Module.FinitePresentation R N] (l : M →ₗ[R] N) (hl : Function.Surjective l) :
    theorem FinitePresentation.of_isBaseChange {R : Type u_2} {M : Type u_4} {N : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {A : Type u_1} [CommRing A] [Algebra R A] [Module A N] [IsScalarTower R A N] (f : M →ₗ[R] N) (h : IsBaseChange A f) [Module.FinitePresentation R M] :
    theorem Module.FinitePresentation.exists_lift_of_isLocalizedModule {R : Type u_1} {M : Type u_2} {N : Type u_4} {N' : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [AddCommGroup N'] [Module R N'] (S : Submonoid R) (f : N →ₗ[R] N') [IsLocalizedModule S f] [h : Module.FinitePresentation R M] (g : M →ₗ[R] N') :
    ∃ (h : M →ₗ[R] N) (s : S), f ∘ₗ h = s g
    theorem Module.Finite.exists_smul_of_comp_eq_of_isLocalizedModule {R : Type u_1} {M : Type u_2} {N : Type u_3} {N' : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [AddCommGroup N'] [Module R N'] (S : Submonoid R) (f : N →ₗ[R] N') [IsLocalizedModule S f] [hM : Module.Finite R M] (g₁ g₂ : M →ₗ[R] N) (h : f ∘ₗ g₁ = f ∘ₗ g₂) :
    ∃ (s : S), s g₁ = s g₂
    theorem exists_bijective_map_powers {R : Type u_3} {M : Type u_4} {N : Type u_5} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (S : Submonoid R) {M' : Type u_1} [AddCommGroup M'] [Module R M'] (f : M →ₗ[R] M') [IsLocalizedModule S f] {N' : Type u_2} [AddCommGroup N'] [Module R N'] (g : N →ₗ[R] N') [IsLocalizedModule S g] [Module.Finite R M] [Module.FinitePresentation R N] (l : M →ₗ[R] N) (hf : Function.Bijective ((IsLocalizedModule.map S f g) l)) :
    rS, ∀ (t : R), r tFunction.Bijective ((LocalizedModule.map (Submonoid.powers t)) l)

    Let M be a finite R-module, and N be a finitely presented R-module. If l : M →ₗ[R] N is a linear map whose localization at S : Submonoid R is bijective, then l is already bijective under the localization at some r ∈ S.

    theorem Module.FinitePresentation.exists_lift_equiv_of_isLocalizedModule {R : Type u_3} {M : Type u_4} {N : Type u_5} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (S : Submonoid R) {M' : Type u_1} [AddCommGroup M'] [Module R M'] (f : M →ₗ[R] M') [IsLocalizedModule S f] {N' : Type u_2} [AddCommGroup N'] [Module R N'] (g : N →ₗ[R] N') [IsLocalizedModule S g] [Module.FinitePresentation R M] [Module.FinitePresentation R N] (l : M' ≃ₗ[R] N') :

    Let M N be a finitely presented R-modules. Any Mₛ ≃ₗ[R] Nₛ between the localizations at S : Submonoid R can be lifted to an isomorphism between Mᵣ ≃ₗ[R] Nᵣ for some r ∈ S.

    instance Module.FinitePresentation.isLocalizedModule_map {R : Type u_3} {M : Type u_4} {N : Type u_5} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (S : Submonoid R) {M' : Type u_1} [AddCommGroup M'] [Module R M'] (f : M →ₗ[R] M') [IsLocalizedModule S f] {N' : Type u_2} [AddCommGroup N'] [Module R N'] (g : N →ₗ[R] N') [IsLocalizedModule S g] [Module.FinitePresentation R M] :
    instance Module.FinitePresentation.isLocalizedModule_mapExtendScalars {R : Type u_4} {M : Type u_5} {N : Type u_6} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (S : Submonoid R) {M' : Type u_1} [AddCommGroup M'] [Module R M'] (f : M →ₗ[R] M') [IsLocalizedModule S f] {N' : Type u_2} [AddCommGroup N'] [Module R N'] (g : N →ₗ[R] N') [IsLocalizedModule S g] (Rₛ : Type u_3) [CommRing Rₛ] [Algebra R Rₛ] [Module Rₛ M'] [Module Rₛ N'] [IsScalarTower R Rₛ M'] [IsScalarTower R Rₛ N'] [IsLocalization S Rₛ] [Module.FinitePresentation R M] :