doc-next-gen

Mathlib.RingTheory.Finiteness.Defs

Module docstring

{"# Finiteness conditions in commutative algebra

In this file we define a notion of finiteness that is common in commutative algebra.

Main declarations

  • Submodule.FG, Ideal.FG These express that some object is finitely generated as submodule over some base ring.

  • Module.Finite, RingHom.Finite, AlgHom.Finite all of these express that some object is finitely generated as module over some base ring.

"}

Submodule.FG definition
(N : Submodule R M) : Prop
Full source
/-- A submodule of `M` is finitely generated if it is the span of a finite subset of `M`. -/
def FG (N : Submodule R M) : Prop :=
  ∃ S : Finset M, Submodule.span R ↑S = N
Finitely generated submodule
Informal description
A submodule \( N \) of an \( R \)-module \( M \) is finitely generated if there exists a finite subset \( S \) of \( M \) such that the span of \( S \) over \( R \) equals \( N \).
Submodule.fg_def theorem
{N : Submodule R M} : N.FG ↔ ∃ S : Set M, S.Finite ∧ span R S = N
Full source
theorem fg_def {N : Submodule R M} : N.FG ↔ ∃ S : Set M, S.Finite ∧ span R S = N :=
  ⟨fun ⟨t, h⟩ => ⟨_, Finset.finite_toSet t, h⟩, by
    rintro ⟨t', h, rfl⟩
    rcases Finite.exists_finset_coe h with ⟨t, rfl⟩
    exact ⟨t, rfl⟩⟩
Characterization of Finitely Generated Submodules
Informal description
A submodule $N$ of an $R$-module $M$ is finitely generated if and only if there exists a finite subset $S \subseteq M$ such that the $R$-linear span of $S$ equals $N$.
Submodule.fg_iff_addSubmonoid_fg theorem
(P : Submodule ℕ M) : P.FG ↔ P.toAddSubmonoid.FG
Full source
theorem fg_iff_addSubmonoid_fg (P : Submodule  M) : P.FG ↔ P.toAddSubmonoid.FG :=
  ⟨fun ⟨S, hS⟩ => ⟨S, by simpa [← span_nat_eq_addSubmonoid_closure] using hS⟩, fun ⟨S, hS⟩ =>
    ⟨S, by simpa [← span_nat_eq_addSubmonoid_closure] using hS⟩⟩
Finitely Generated Submodule iff Finitely Generated Additive Submonoid
Informal description
For any submodule $P$ of an $\mathbb{N}$-module $M$, $P$ is finitely generated as a submodule if and only if its underlying additive submonoid is finitely generated.
Submodule.fg_iff_add_subgroup_fg theorem
{G : Type*} [AddCommGroup G] (P : Submodule ℤ G) : P.FG ↔ P.toAddSubgroup.FG
Full source
theorem fg_iff_add_subgroup_fg {G : Type*} [AddCommGroup G] (P : Submodule  G) :
    P.FG ↔ P.toAddSubgroup.FG :=
  ⟨fun ⟨S, hS⟩ => ⟨S, by simpa [← span_int_eq_addSubgroup_closure] using hS⟩, fun ⟨S, hS⟩ =>
    ⟨S, by simpa [← span_int_eq_addSubgroup_closure] using hS⟩⟩
Equivalence of Finitely Generated $\mathbb{Z}$-Submodules and Finitely Generated Additive Subgroups
Informal description
Let $G$ be an additive commutative group and $P$ be a $\mathbb{Z}$-submodule of $G$. Then $P$ is finitely generated as a $\mathbb{Z}$-submodule if and only if the underlying additive subgroup $P$ is finitely generated as an additive subgroup.
Submodule.fg_iff_exists_fin_generating_family theorem
{N : Submodule R M} : N.FG ↔ ∃ (n : ℕ) (s : Fin n → M), span R (range s) = N
Full source
theorem fg_iff_exists_fin_generating_family {N : Submodule R M} :
    N.FG ↔ ∃ (n : ℕ) (s : Fin n → M), span R (range s) = N := by
  rw [fg_def]
  constructor
  · rintro ⟨S, Sfin, hS⟩
    obtain ⟨n, f, rfl⟩ := Sfin.fin_embedding
    exact ⟨n, f, hS⟩
  · rintro ⟨n, s, hs⟩
    exact ⟨range s, finite_range s, hs⟩
Characterization of Finitely Generated Submodules via Finite Generating Families
Informal description
A submodule $N$ of an $R$-module $M$ is finitely generated if and only if there exists a natural number $n$ and a finite family of elements $(s_i)_{i=1}^n$ in $M$ such that the $R$-linear span of $\{s_1, \dots, s_n\}$ equals $N$.
Submodule.fg_iff_exists_finite_generating_family theorem
{A : Type u} [Semiring A] {M : Type v} [AddCommMonoid M] [Module A M] {N : Submodule A M} : N.FG ↔ ∃ (G : Type w) (_ : Finite G) (g : G → M), Submodule.span A (Set.range g) = N
Full source
lemma fg_iff_exists_finite_generating_family {A : Type u} [Semiring A] {M : Type v}
    [AddCommMonoid M] [Module A M] {N : Submodule A M} :
    N.FG ↔ ∃ (G : Type w) (_ : Finite G) (g : G → M), Submodule.span A (Set.range g) = N := by
  constructor
  · intro hN
    obtain ⟨n, f, h⟩ := Submodule.fg_iff_exists_fin_generating_family.1 hN
    refine ⟨ULift (Fin n), inferInstance, f ∘ ULift.down, ?_⟩
    convert h
    ext x
    simp only [Set.mem_range, Function.comp_apply, ULift.exists]
  · rintro ⟨G, _, g, hg⟩
    have := Fintype.ofFinite (range g)
    exact ⟨(range g).toFinset, by simpa using hg⟩
Characterization of Finitely Generated Submodules via Finite Generating Families
Informal description
Let $A$ be a semiring, $M$ an $A$-module, and $N$ a submodule of $M$. Then $N$ is finitely generated if and only if there exists a finite type $G$ and a family of elements $(g_i)_{i \in G}$ in $M$ such that the $A$-linear span of $\{g_i \mid i \in G\}$ equals $N$.
Ideal.FG definition
(I : Ideal R) : Prop
Full source
/-- An ideal of `R` is finitely generated if it is the span of a finite subset of `R`.

This is defeq to `Submodule.FG`, but unfolds more nicely. -/
def FG (I : Ideal R) : Prop :=
  ∃ S : Finset R, Ideal.span ↑S = I
Finitely generated ideal
Informal description
An ideal $I$ of a ring $R$ is finitely generated if there exists a finite subset $S$ of $R$ such that the ideal generated by $S$ equals $I$.
Module.Finite structure
[Semiring R] [AddCommMonoid M] [Module R M]
Full source
/-- A module over a semiring is `Module.Finite` if it is finitely generated as a module. -/
protected class Module.Finite [Semiring R] [AddCommMonoid M] [Module R M] : Prop where
  fg_top : ( : Submodule R M).FG
Finitely generated module
Informal description
A module \( M \) over a semiring \( R \) is called *finitely generated* if there exists a finite subset \( S \subseteq M \) such that the \( R \)-linear span of \( S \) is equal to \( M \).
Module.finite_def theorem
{R M} [Semiring R] [AddCommMonoid M] [Module R M] : Module.Finite R M ↔ (⊤ : Submodule R M).FG
Full source
theorem finite_def {R M} [Semiring R] [AddCommMonoid M] [Module R M] :
    Module.FiniteModule.Finite R M ↔ (⊤ : Submodule R M).FG :=
  ⟨fun h => h.1, fun h => ⟨h⟩⟩
Equivalence of Module Finiteness and Top Submodule Finiteness
Informal description
Let $R$ be a semiring and $M$ be an $R$-module. Then $M$ is finitely generated as an $R$-module if and only if the top submodule of $M$ (i.e., $M$ itself) is finitely generated as a submodule.
Module.Finite.iff_addMonoid_fg theorem
{M : Type*} [AddCommMonoid M] : Module.Finite ℕ M ↔ AddMonoid.FG M
Full source
theorem iff_addMonoid_fg {M : Type*} [AddCommMonoid M] : Module.FiniteModule.Finite ℕ M ↔ AddMonoid.FG M :=
  ⟨fun h => AddMonoid.fg_def.2 <| (Submodule.fg_iff_addSubmonoid_fg ⊤).1 (finite_def.1 h), fun h =>
    finite_def.2 <| (Submodule.fg_iff_addSubmonoid_fg ⊤).2 (AddMonoid.fg_def.1 h)⟩
Equivalence of Finitely Generated $\mathbb{N}$-Modules and Finitely Generated Additive Monoids
Informal description
For any additive commutative monoid $M$, the $\mathbb{N}$-module $M$ is finitely generated if and only if $M$ is finitely generated as an additive monoid.
Module.Finite.iff_addGroup_fg theorem
{G : Type*} [AddCommGroup G] : Module.Finite ℤ G ↔ AddGroup.FG G
Full source
theorem iff_addGroup_fg {G : Type*} [AddCommGroup G] : Module.FiniteModule.Finite ℤ G ↔ AddGroup.FG G :=
  ⟨fun h => AddGroup.fg_def.2 <| (Submodule.fg_iff_add_subgroup_fg ⊤).1 (finite_def.1 h), fun h =>
    finite_def.2 <| (Submodule.fg_iff_add_subgroup_fg ⊤).2 (AddGroup.fg_def.1 h)⟩
Equivalence of Finitely Generated $\mathbb{Z}$-Modules and Finitely Generated Additive Groups
Informal description
For any additive commutative group $G$, the $\mathbb{Z}$-module $G$ is finitely generated if and only if $G$ is finitely generated as an additive group.
Module.Finite.exists_fin theorem
[Module.Finite R M] : ∃ (n : ℕ) (s : Fin n → M), Submodule.span R (range s) = ⊤
Full source
/-- See also `Module.Finite.exists_fin'`. -/
lemma exists_fin [Module.Finite R M] : ∃ (n : ℕ) (s : Fin n → M), Submodule.span R (range s) = ⊤ :=
  Submodule.fg_iff_exists_fin_generating_family.mp fg_top
Existence of Finite Generating Set for Finitely Generated Modules
Informal description
If $M$ is a finitely generated module over a semiring $R$, then there exists a natural number $n$ and a finite family of elements $(s_i)_{i=1}^n$ in $M$ such that the $R$-linear span of $\{s_1, \dots, s_n\}$ is equal to $M$.
AddMonoid.FG.to_moduleFinite_int instance
{G : Type*} [AddCommGroup G] [FG G] : Module.Finite ℤ G
Full source
instance AddMonoid.FG.to_moduleFinite_int {G : Type*} [AddCommGroup G] [FG G] :
    Module.Finite  G :=
  Module.Finite.iff_addGroup_fg.mpr <| AddGroup.fg_iff_addMonoid_fg.mpr ‹_›
Finitely Generated Additive Groups as Finitely Generated $\mathbb{Z}$-Modules
Informal description
Every finitely generated additive commutative group $G$ is also finitely generated as a $\mathbb{Z}$-module.
RingHom.Finite definition
(f : A →+* B) : Prop
Full source
/-- A ring morphism `A →+* B` is `RingHom.Finite` if `B` is finitely generated as `A`-module. -/
@[algebraize Module.Finite, stacks 0563]
def Finite (f : A →+* B) : Prop :=
  letI : Algebra A B := f.toAlgebra
  Module.Finite A B
Finite ring homomorphism
Informal description
A ring homomorphism \( f: A \to B \) is called *finite* if \( B \) is finitely generated as an \( A \)-module under the scalar multiplication induced by \( f \).
AlgHom.Finite definition
(f : A →ₐ[R] B) : Prop
Full source
/-- An algebra morphism `A →ₐ[R] B` is finite if it is finite as ring morphism.
In other words, if `B` is finitely generated as `A`-module. -/
def Finite (f : A →ₐ[R] B) : Prop :=
  f.toRingHom.Finite
Finite algebra homomorphism
Informal description
An algebra homomorphism \( f: A \to B \) over a base ring \( R \) is called *finite* if \( B \) is finitely generated as an \( A \)-module under the scalar multiplication induced by \( f \). This is equivalent to saying that the underlying ring homomorphism of \( f \) is finite.