@@ -3,25 +3,28 @@ Copyright (c) 2025 Nailin Guan. All rights reserved.
33Released under Apache 2.0 license as described in the file LICENSE.
44Authors: Nailin Guan
55-/
6- import Mathlib.CategoryTheory.Abelian.Projective.Dimension
7- import Mathlib.Data.ENat.Lattice
8- import Mathlib.RingTheory.Spectrum.Maximal.Defs
9- import Mathlib.RingTheory.Noetherian.Defs
10- import Mathlib.RingTheory.Localization.AtPrime.Basic
11- import Mathlib.RingTheory.Regular.Category
12- import Mathlib.RingTheory.Regular.RegularSequence
13- import Mathlib.Algebra.Module.LocalizedModule.AtPrime
14- import Mathlib.RingTheory.LocalRing.ResidueField.Basic
15- import Mathlib.LinearAlgebra.Dimension.Finite
16- import Mathlib.Algebra.Category.ModuleCat.Projective
17- import Mathlib.RingTheory.Localization.Module
18- import Mathlib.Algebra.Module.LocalizedModule.Exact
19- import Mathlib.RingTheory.LocalProperties.Projective
206import Mathlib.Algebra.Category.Grp.Zero
21- import Mathlib.Algebra.Homology.DerivedCategory.Ext.EnoughInjectives
227import Mathlib.Algebra.Category.ModuleCat.EnoughInjectives
8+ import Mathlib.Algebra.Category.ModuleCat.Projective
9+ import Mathlib.Algebra.Homology.DerivedCategory.Ext.EnoughInjectives
10+ import Mathlib.Algebra.Homology.ShortComplex.ModuleCat
11+ import Mathlib.CategoryTheory.Abelian.Projective.Dimension
12+ import Mathlib.Data.ENat.Lattice
13+ import Mathlib.RingTheory.Ideal.Quotient.Operations
2314/-!
2415# The Global Dimension of a Ring
16+
17+ In this file, we define the projective dimension of an module and global dimension of ring
18+ and their basic properties.
19+
20+ # Main definition and results
21+
22+ * `projectiveDimension` : Given `X : C` where `C` is abelian,
23+ return its projective dimension as `WithBot ℕ∞`
24+
25+ * `globalDimension` : The global (homological) dimension of a (commutative) ring defined as
26+ the supremum of projective dimension over all modules.
27+
2528 -/
2629
2730--set_option pp.universes true
@@ -30,14 +33,15 @@ universe v u
3033
3134variable (R : Type u) [CommRing R]
3235
33- open CategoryTheory IsLocalRing RingTheory.Sequence
36+ open CategoryTheory
3437
3538section ProjectiveDimension
3639
3740variable {C : Type u} [Category.{v, u} C] [Abelian C]
3841
3942--projectiveDimension should be `-∞` when `X = 0`
4043
44+ /-- The projective dimension of object of abelian category. -/
4145noncomputable def projectiveDimension (X : C) : WithBot ℕ∞ :=
4246 sInf {n : WithBot ℕ∞ | ∀ (i : ℕ), n < i → HasProjectiveDimensionLT X i}
4347
@@ -273,6 +277,8 @@ lemma ext_subsingleton_of_quotients [Small.{v} R] (M : ModuleCat.{v} R) (n : ℕ
273277
274278end
275279
280+ /-- The global (homological) dimension of a (commutative) ring defined as
281+ the supremum of projective dimension over all modules. -/
276282noncomputable def globalDimension : WithBot ℕ∞ :=
277283 ⨆ (M : ModuleCat.{v} R), projectiveDimension.{v} M
278284
@@ -287,7 +293,8 @@ lemma globalDimension_le_iff (n : ℕ) : globalDimension.{v} R ≤ n ↔
287293 ∀ M : ModuleCat.{v} R, HasProjectiveDimensionLE M n := by
288294 simp [globalDimension, projectiveDimension_le_iff]
289295
290- local instance hasExt_standard : HasExt.{max (max (v + 1 ) u) v, v, max (v + 1 ) u} (ModuleCat.{v} R) :=
296+ local instance hasExt_standard :
297+ HasExt.{max (max (v + 1 ) u) v, v, max (v + 1 ) u} (ModuleCat.{v} R) :=
291298 CategoryTheory.HasExt.standard (ModuleCat.{v} R)
292299
293300lemma globalDimension_le_tfae [Small.{v} R] (n : ℕ) : [globalDimension.{v} R ≤ n,
0 commit comments