mathlib documentation

ring_theory.finite_presentation

Finiteness conditions in commutative algebra #

In this file we define several notions of finiteness that are common in commutative algebra.

Main declarations #

def algebra.finite_presentation (R : Type u_1) (A : Type u_2) [comm_semiring R] [semiring A] [algebra R A] :
Prop

An algebra over a commutative semiring is finite_presentation if it is the quotient of a polynomial ring in n variables by a finitely generated ideal.

Equations

A finitely presented algebra is of finite type.

An algebra over a Noetherian ring is finitely generated if and only if it is finitely presented.

theorem algebra.finite_presentation.equiv {R : Type u_1} {A : Type u_2} {B : Type u_3} [comm_ring R] [comm_ring A] [algebra R A] [comm_ring B] [algebra R B] (hfp : algebra.finite_presentation R A) (e : A ≃ₐ[R] B) :

If e : A ≃ₐ[R] B and A is finitely presented, then so is B.

@[protected]

The ring of polynomials in finitely many variables is finitely presented.

R is finitely presented as R-algebra.

R[X] is finitely presented as R-algebra.

@[protected]
theorem algebra.finite_presentation.quotient {R : Type u_1} {A : Type u_2} [comm_ring R] [comm_ring A] [algebra R A] {I : ideal A} (h : I.fg) (hfp : algebra.finite_presentation R A) :

The quotient of a finitely presented algebra by a finitely generated ideal is finitely presented.

If f : A →ₐ[R] B is surjective with finitely generated kernel and A is finitely presented, then so is B.

theorem algebra.finite_presentation.iff {R : Type u_1} {A : Type u_2} [comm_ring R] [comm_ring A] [algebra R A] :

An algebra is finitely presented if and only if it is a quotient of a polynomial ring whose variables are indexed by a fintype by a finitely generated ideal.

If A is a finitely presented R-algebra, then mv_polynomial (fin n) A is finitely presented as R-algebra.

If A is an R-algebra and S is an A-algebra, both finitely presented, then S is finitely presented as R-algebra.

This is used to prove the strictly stronger ker_fg_of_surjective. Use it instead.

If f : A →ₐ[R] B is a sujection between finitely-presented R-algebras, then the kernel of f is finitely generated.

def ring_hom.finite_presentation {A : Type u_1} {B : Type u_2} [comm_ring A] [comm_ring B] (f : A →+* B) :
Prop

A ring morphism A →+* B is of finite_presentation if B is finitely presented as A-algebra.

Equations
theorem ring_hom.finite_presentation.comp_surjective {A : Type u_1} {B : Type u_2} {C : Type u_3} [comm_ring A] [comm_ring B] [comm_ring C] {f : A →+* B} {g : B →+* C} (hf : f.finite_presentation) (hg : function.surjective g) (hker : (ring_hom.ker g).fg) :
theorem ring_hom.finite_presentation.comp {A : Type u_1} {B : Type u_2} {C : Type u_3} [comm_ring A] [comm_ring B] [comm_ring C] {g : B →+* C} {f : A →+* B} (hg : g.finite_presentation) (hf : f.finite_presentation) :
theorem ring_hom.finite_presentation.of_comp_finite_type {A : Type u_1} {B : Type u_2} {C : Type u_3} [comm_ring A] [comm_ring B] [comm_ring C] (f : A →+* B) {g : B →+* C} (hg : (g.comp f).finite_presentation) (hf : f.finite_type) :
def alg_hom.finite_presentation {R : Type u_1} {A : Type u_2} {B : Type u_3} [comm_ring R] [comm_ring A] [comm_ring B] [algebra R A] [algebra R B] (f : A →ₐ[R] B) :
Prop

An algebra morphism A →ₐ[R] B is of finite_presentation if it is of finite presentation as ring morphism. In other words, if B is finitely presented as A-algebra.

Equations
theorem alg_hom.finite_type.of_finite_presentation {R : Type u_1} {A : Type u_2} {B : Type u_3} [comm_ring R] [comm_ring A] [comm_ring B] [algebra R A] [algebra R B] {f : A →ₐ[R] B} (hf : f.finite_presentation) :
theorem alg_hom.finite_presentation.comp {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [comm_ring R] [comm_ring A] [comm_ring B] [comm_ring C] [algebra R A] [algebra R B] [algebra R C] {g : B →ₐ[R] C} {f : A →ₐ[R] B} (hg : g.finite_presentation) (hf : f.finite_presentation) :
theorem alg_hom.finite_presentation.comp_surjective {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [comm_ring R] [comm_ring A] [comm_ring B] [comm_ring C] [algebra R A] [algebra R B] [algebra R C] {f : A →ₐ[R] B} {g : B →ₐ[R] C} (hf : f.finite_presentation) (hg : function.surjective g) (hker : (ring_hom.ker g.to_ring_hom).fg) :
theorem alg_hom.finite_presentation.of_surjective {R : Type u_1} {A : Type u_2} {B : Type u_3} [comm_ring R] [comm_ring A] [comm_ring B] [algebra R A] [algebra R B] (f : A →ₐ[R] B) (hf : function.surjective f) (hker : (ring_hom.ker f.to_ring_hom).fg) :
theorem alg_hom.finite_presentation.of_comp_finite_type {R : Type u_1} {A : Type u_2} {B : Type u_3} {C : Type u_4} [comm_ring R] [comm_ring A] [comm_ring B] [comm_ring C] [algebra R A] [algebra R B] [algebra R C] (f : A →ₐ[R] B) {g : B →ₐ[R] C} (h : (g.comp f).finite_presentation) (h' : f.finite_type) :