File: Mathlib/Algebra/Module/FinitePresentation.lean

full_name: Module.FinitePresentation.out
code: /--
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.
-/
class Module.FinitePresentation : Prop where
  out : ∃ (s : Finset M), Submodule.span R (s : Set M) = ⊤ ∧
    (LinearMap.ker (Finsupp.total s M R Subtype.val)).FG
goal: ∃ s, Submodule.span R ↑s = ⊤ ∧ (LinearMap.ker (Finsupp.total { x // x ∈ s } M R Subtype.val)).FG

full_name: Module.FinitePresentation
code: /--
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.
-/
class Module.FinitePresentation : Prop where
  out : ∃ (s : Finset M), Submodule.span R (s : Set M) = ⊤ ∧
    (LinearMap.ker (Finsupp.total s M R Subtype.val)).FG
goal: Prop

full_name: instFiniteOfFinitePresentation
code: instance (priority := 100) [h : Module.FinitePresentation R M] : Module.Finite R M 
goal: Module.Finite R M

full_name: Module.FinitePresentation.equiv_quotient
code: /-- A finitely presented module is isomorphic to the quotient of a finite free module by a finitely
generated submodule. -/
theorem Module.FinitePresentation.equiv_quotient [fp : Module.FinitePresentation R M] :
    ∃ (L : Type u) (_ : AddCommGroup L) (_ : Module R L) (K : Submodule R L) (_ : M ≃ₗ[R] L ⧸ K),
      Module.Free R L ∧ Module.Finite R L ∧ K.FG 
goal: ∃ L x x_1 K x_2, Module.Free R L ∧ Module.Finite R L ∧ K.FG

full_name: Module.finitePresentation_of_finite
code: lemma Module.finitePresentation_of_finite [IsNoetherianRing R] [h : Module.Finite R M] :
    Module.FinitePresentation R M 
goal: Module.FinitePresentation R M

full_name: Module.finitePresentation_iff_finite
code: lemma Module.finitePresentation_iff_finite [IsNoetherianRing R] :
    Module.FinitePresentation R M ↔ Module.Finite R M 
goal: Module.FinitePresentation R M ↔ Module.Finite R M

full_name: Module.finitePresentation_of_free_of_surjective
code: lemma Module.finitePresentation_of_free_of_surjective [Module.Free R M] [Module.Finite R M]
    (l : M →ₗ[R] N)
    (hl : Function.Surjective l) (hl' : (LinearMap.ker l).FG) :
    Module.FinitePresentation R N 
goal: Module.FinitePresentation R N

full_name: Module.finitePresentation_of_free
code: lemma Module.finitePresentation_of_free [Module.Free R M] [Module.Finite R M] :
    Module.FinitePresentation R M 
goal: Module.FinitePresentation R M

full_name: instFinitePresentation
code: instance : Module.FinitePresentation R R 
goal: Module.FinitePresentation R R

full_name: instFinitePresentationFinsupp
code: instance : Module.FinitePresentation R (ι →₀ R) 
goal: Module.FinitePresentation R (ι →₀ R)

full_name: instFinitePresentationForall
code: instance : Module.FinitePresentation R (ι → R) 
goal: Module.FinitePresentation R (ι → R)

full_name: Module.finitePresentation_of_surjective
code: lemma Module.finitePresentation_of_surjective [h : Module.FinitePresentation R M] (l : M →ₗ[R] N)
    (hl : Function.Surjective l) (hl' : (LinearMap.ker l).FG) :
    Module.FinitePresentation R N 
goal: Module.FinitePresentation R N

full_name: Module.FinitePresentation.fg_ker
code: lemma Module.FinitePresentation.fg_ker [Module.Finite R M]
    [h : Module.FinitePresentation R N] (l : M →ₗ[R] N) (hl : Function.Surjective l) :
    (LinearMap.ker l).FG 
goal: (LinearMap.ker l).FG

full_name: Module.FinitePresentation.fg_ker_iff
code: lemma Module.FinitePresentation.fg_ker_iff [Module.FinitePresentation R M]
    (l : M →ₗ[R] N) (hl : Function.Surjective l) :
    Submodule.FG (LinearMap.ker l) ↔ Module.FinitePresentation R N 
goal: (LinearMap.ker l).FG ↔ Module.FinitePresentation R N

full_name: Module.finitePresentation_of_ker
code: lemma Module.finitePresentation_of_ker [Module.FinitePresentation R N]
    (l : M →ₗ[R] N) (hl : Function.Surjective l) [Module.FinitePresentation R (LinearMap.ker l)] :
    Module.FinitePresentation R M 
goal: Module.FinitePresentation R M

full_name: Module.FinitePresentation.exists_lift_of_isLocalizedModule
code: lemma Module.FinitePresentation.exists_lift_of_isLocalizedModule
    [h : Module.FinitePresentation R M] (g : M →ₗ[R] N') :
    ∃ (h : M →ₗ[R] N) (s : S), f ∘ₗ h = s • g 
goal: ∃ h s, f ∘ₗ h = s • g

full_name: Module.Finite.exists_smul_of_comp_eq_of_isLocalizedModule
code: lemma Module.Finite.exists_smul_of_comp_eq_of_isLocalizedModule
    [hM : Module.Finite R M] (g₁ g₂ : M →ₗ[R] N) (h : f.comp g₁ = f.comp g₂) :
    ∃ (s : S), s • g₁ = s • g₂ 
goal: ∃ s, s • g₁ = s • g₂

full_name: Module.FinitePresentation.isLocalizedModule_map
code: lemma Module.FinitePresentation.isLocalizedModule_map
    {M' : Type*} [AddCommGroup M'] [Module R M'] (f : M →ₗ[R] M') [IsLocalizedModule S f]
    {N' : Type*} [AddCommGroup N'] [Module R N'] (g : N →ₗ[R] N') [IsLocalizedModule S g]
    [Module.FinitePresentation R M] :
      IsLocalizedModule S (IsLocalizedModule.map S f g) 
goal: IsLocalizedModule S (IsLocalizedModule.map S f g)