Finiteness conditions in commutative algebra #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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
,ring_hom.finite
,alg_hom.finite
all of these express that some object is finitely generated as module over some base ring.
Main results #
exists_sub_one_mem_and_smul_eq_zero_of_fg_of_le_smul
is Nakayama's lemma, in the following form: if N is a finitely generated submodule of an ambient R-module M and I is an ideal of R such that N ⊆ IN, then there exists r ∈ 1 + I such that rN = 0.
Nakayama's Lemma. Atiyah-Macdonald 2.5, Eisenbud 4.7, Matsumura 2.2, Stacks 00DV
If 0 → M' → M → M'' → 0 is exact and M' and M'' are finitely generated then so is M.
The kernel of the composition of two linear maps is finitely generated if both kernels are and the first morphism is surjective.
Finitely generated submodules are precisely compact elements in the submodule lattice.
A module over a semiring is finite
if it is finitely generated as a module.
Instances of this typeclass
- module.is_noetherian.finite
- finite_dimensional.complex_to_real
- number_field.to_finite_dimensional
- module.finite.range
- module.finite.map
- module.finite.self
- module.finite.prod
- module.finite.pi
- module.finite.base_change
- module.finite.tensor_product
- module.finite.matrix
- finite_dimensional.finite_dimensional_pi
- finite_dimensional.finite_dimensional_pi'
- finite_dimensional.finite_dimensional_submodule
- finite_dimensional.finite_dimensional_quotient
- finite_dimensional.finite_dimensional_self
- finite_dimensional.span_singleton
- finite_dimensional.span_finset
- finite_dimensional.submodule.map.finite_dimensional
- finite_dimensional_bot
- submodule.finite_dimensional_inf_left
- submodule.finite_dimensional_inf_right
- submodule.finite_dimensional_sup
- submodule.finite_dimensional_finset_sup
- submodule.finite_dimensional_supr
- finite_dimensional_finsupp
- linear_map.finite_dimensional_range
- finite_dimensional.finite_dimensional_subalgebra
- subalgebra.finite_dimensional_bot
- module.finite.linear_map
- module.finite.add_monoid_hom
- linear_map.finite_dimensional''
- intermediate_field.finite_dimensional_left
- intermediate_field.finite_dimensional_right
- intermediate_field.finite_dimensional_sup
- intermediate_field.finite_dimensional_supr_of_finite
- intermediate_field.finite_dimensional_supr_of_finset
- normal_closure.is_finite_dimensional
- polynomial.is_splitting_field.polynomial.splitting_field.finite_dimensional
- fixed_points.finite_dimensional
- complex.finite_dimensional
- basis.dual_finite
- subspace.module.dual.finite_dimensional
- continuous_linear_map.finite_dimensional
- finite_dimensional.is_R_or_C_to_real
- pi_Lp.finite_dimensional
- euclidean_space.finite_dimensional
- normed_space.dual.finite_dimensional
- im_finite_dimensional
- mv_polynomial.R.finite_dimensional
- fgModule.finite
- fgModule.obj.module.finite
- fgModule.quiver.hom.module.finite
- fgModule.category_theory.limits.pi_obj.finite_dimensional
- fgModule.category_theory.limits.limit.finite_dimensional
- fdRep.finite_dimensional
- fdRep.quiver.hom.finite_dimensional
- finite_dimensional_vector_span_range
- finite_dimensional_vector_span_image_of_finite
- finite_dimensional_direction_affine_span_range
- finite_dimensional_direction_affine_span_image_of_finite
- finite_dimensional_vector_span_insert
- finite_dimensional_direction_affine_span_insert
- finite_dimensional_vector_span_insert_set
- quaternion_algebra.module.finite
- quaternion.module.finite
- local_ring.cotangent_space.finite_dimensional
- ideal.factors.finite_dimensional_quotient
- ideal.factors.finite_dimensional_quotient_pow
- affine.simplex.finite_dimensional_direction_altitude
- module.finite.multilinear_map
- has_quotient.quotient.finite_dimensional
- matrix.finite_dimensional
- linear_map.finite_dimensional
- linear_map.finite_dimensional'
- projectivization.submodule.finite_dimensional
- sensitivity.V.finite_dimensional
Instances of other typeclasses for module.finite
The range of a linear map from a finite module is finite.
Pushforwards of finite submodules are finite.
A ring morphism A →+* B
is finite
if B
is finitely generated as A
-module.
Equations
- f.finite = let _inst : algebra A B := f.to_algebra in module.finite A B
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.
Equations
- f.finite = f.to_ring_hom.finite