Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
997 commits
Select commit Hold shift + click to select a range
01f5037
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan Apr 15, 2026
0c8197e
Merge branch 'master' into AdicCompletion-IsLocalRing
Thmoas-Guan Apr 16, 2026
4e94633
Merge branch 'AdicCompletion-IsLocalRing' into AdicCompletion-IsNoeth…
Thmoas-Guan Apr 16, 2026
56d8801
Update Noetherian.lean
Thmoas-Guan Apr 16, 2026
6eee5cd
remove uneccessary argument
Thmoas-Guan Apr 16, 2026
2f37ba4
use haveI
Thmoas-Guan Apr 17, 2026
4ab2e2d
split auxiliary defs
Thmoas-Guan Apr 17, 2026
517d19f
restore doc
Thmoas-Guan Apr 17, 2026
e8b89eb
add simps attr
Thmoas-Guan Apr 17, 2026
ea1753c
golf using simps lemmas
Thmoas-Guan Apr 17, 2026
02bec2d
fix
Thmoas-Guan Apr 17, 2026
a79c15f
use obtain
Thmoas-Guan Apr 17, 2026
975e501
specify hom
Thmoas-Guan Apr 17, 2026
ac3df00
golf
Thmoas-Guan Apr 17, 2026
40b9e88
fix layout
Thmoas-Guan Apr 17, 2026
243df12
Merge branch 'AdicCompletion-IsLocalRing' into AdicCompletion-IsNoeth…
Thmoas-Guan Apr 17, 2026
ccc1a16
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan Apr 17, 2026
0f1afb0
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan Apr 17, 2026
0662ee7
move decls
Thmoas-Guan Apr 18, 2026
5da5b5c
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan Apr 18, 2026
e9ac06b
Update Noetherian.lean
Thmoas-Guan Apr 18, 2026
e94f34b
Update Noetherian.lean
Thmoas-Guan Apr 18, 2026
fc01877
separate lemma
Thmoas-Guan Apr 18, 2026
355719e
rearrange universes
Thmoas-Guan Apr 20, 2026
e766899
Update Noetherian.lean
Thmoas-Guan Apr 20, 2026
8225360
Update Noetherian.lean
Thmoas-Guan Apr 21, 2026
0b0786c
Update Noetherian.lean
Thmoas-Guan Apr 21, 2026
9532886
Update Noetherian.lean
Thmoas-Guan Apr 21, 2026
19cb1f1
Update Noetherian.lean
Thmoas-Guan Apr 21, 2026
0190ef1
Update Noetherian.lean
Thmoas-Guan Apr 21, 2026
a7711c9
Update Noetherian.lean
Thmoas-Guan Apr 21, 2026
011508d
Update Noetherian.lean
Thmoas-Guan Apr 21, 2026
6aae0a3
finish proofs
Thmoas-Guan Apr 21, 2026
f622d36
add doc
Thmoas-Guan Apr 22, 2026
be50e73
turn conj into abbrev
Thmoas-Guan Apr 24, 2026
6f85578
golf remove of lemma in simp
Thmoas-Guan Apr 24, 2026
296729e
use haveI
Thmoas-Guan Apr 24, 2026
752cd9d
use more extFunctor
Thmoas-Guan Apr 24, 2026
8c4a67f
fix naming
Thmoas-Guan Apr 24, 2026
fc3b1a4
move defs
Thmoas-Guan Apr 24, 2026
e1726a7
Merge branch 'master' into Ext-Ulift
Thmoas-Guan Apr 24, 2026
39d5c58
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Apr 25, 2026
042c249
remove universe polymorphisms
Thmoas-Guan Apr 26, 2026
224a319
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan Apr 26, 2026
bd143e4
fix
Thmoas-Guan Apr 26, 2026
4ab1e33
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan Apr 26, 2026
279a534
fix
Thmoas-Guan Apr 26, 2026
3ea72f5
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan Apr 26, 2026
cde13a5
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan Apr 26, 2026
79137f9
fix
Thmoas-Guan Apr 26, 2026
22fb345
rename file
Thmoas-Guan Apr 26, 2026
9c02320
add lemma
Thmoas-Guan Apr 26, 2026
99e99a0
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan Apr 26, 2026
5f0ed49
fix import
Thmoas-Guan Apr 26, 2026
63a3c44
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan Apr 26, 2026
47f4d99
Merge branch 'category-version-Baer-criterion' into injective-dimensi…
Thmoas-Guan Apr 26, 2026
9b20301
golf
Thmoas-Guan Apr 26, 2026
ff89f3d
Merge branch 'master' into IsBaseChange-Lemma
Thmoas-Guan Apr 26, 2026
487e914
Merge branch 'IsBaseChange-Lemma' into Hom-Flat-Base-Change
Thmoas-Guan Apr 26, 2026
4683180
Merge branch 'Hom-Flat-Base-Change' into Ext-Base-Change'
Thmoas-Guan Apr 26, 2026
30a59fb
Merge branch 'master' into AdicCompletion-IsLocalRing
Thmoas-Guan Apr 27, 2026
505cc3e
Merge branch 'AdicCompletion-IsLocalRing' into AdicCompletion-IsNoeth…
Thmoas-Guan Apr 27, 2026
e7a3d17
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Apr 28, 2026
488cf33
Merge branch 'master' into IsBaseChange-Lemma
Thmoas-Guan Apr 29, 2026
700c2dc
Merge branch 'IsBaseChange-Lemma' into Hom-Flat-Base-Change
Thmoas-Guan Apr 29, 2026
aeb70f8
Merge branch 'Hom-Flat-Base-Change' into Ext-Base-Change'
Thmoas-Guan Apr 29, 2026
d91b7e4
remove bad version
Thmoas-Guan Apr 29, 2026
0261aae
Merge branch 'master' into Ext-Ulift
Thmoas-Guan Apr 29, 2026
e379549
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan Apr 29, 2026
41a62f7
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan Apr 29, 2026
b2300b6
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan Apr 29, 2026
2c487e6
Merge branch 'category-version-Baer-criterion' into injective-dimensi…
Thmoas-Guan Apr 29, 2026
ac661cf
Merge branch 'master' into Hom-Flat-Base-Change
Thmoas-Guan May 5, 2026
a1d0470
Merge branch 'Hom-Flat-Base-Change' into Ext-Base-Change'
Thmoas-Guan May 5, 2026
05168d4
Merge branch 'master' into AdicCompletion-IsLocalRing
Thmoas-Guan May 5, 2026
a03ae65
Merge branch 'AdicCompletion-IsLocalRing' into AdicCompletion-IsNoeth…
Thmoas-Guan May 5, 2026
80303c4
fix
Thmoas-Guan May 5, 2026
06e587c
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan May 6, 2026
d6b0c83
fix import
Thmoas-Guan May 6, 2026
cfaf3da
golf
Thmoas-Guan May 6, 2026
d12f72a
add module doc
Thmoas-Guan May 6, 2026
79ceaf7
add diagram
Thmoas-Guan May 6, 2026
2b1d7dd
spit lemma
Thmoas-Guan May 8, 2026
92cd272
add doc
Thmoas-Guan May 8, 2026
643a0a9
refine doc
Thmoas-Guan May 8, 2026
d1cbf6d
temp fix
Thmoas-Guan May 8, 2026
99b96b8
fix doc
Thmoas-Guan May 8, 2026
3741698
Merge branch 'master' into Ext-Ulift
Thmoas-Guan May 9, 2026
399f344
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan May 9, 2026
4c6f13b
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan May 9, 2026
cc5c550
fix imports
Thmoas-Guan May 9, 2026
e2c9c28
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan May 9, 2026
82552e1
Merge branch 'category-version-Baer-criterion' into injective-dimensi…
Thmoas-Guan May 9, 2026
9249ac4
fix
Thmoas-Guan May 9, 2026
1039409
golf
Thmoas-Guan May 10, 2026
f4f6bd5
separate file for exactness
Thmoas-Guan May 10, 2026
0a8be00
Merge branch 'restrictScalars-exact' into Ext-Ulift
Thmoas-Guan May 10, 2026
8a2070a
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan May 10, 2026
3c78b14
Merge branch 'category-version-Baer-criterion' into injective-dimensi…
Thmoas-Guan May 10, 2026
aaf04c0
Merge branch 'restrictScalars-exact' into injective-dimension-of-quot…
Thmoas-Guan May 10, 2026
5fe60cb
adapt to new imports
Thmoas-Guan May 10, 2026
50abf8d
golf more
Thmoas-Guan May 10, 2026
7148c31
Merge branch 'master' into AdicCompletion-IsLocalRing
Thmoas-Guan May 12, 2026
1eedc7e
Merge branch 'AdicCompletion-IsLocalRing' into AdicCompletion-IsNoeth…
Thmoas-Guan May 12, 2026
7a652cc
Merge branch 'master' into AdicCompletion-IsLocalRing
Thmoas-Guan May 12, 2026
b171b73
Merge branch 'AdicCompletion-IsLocalRing' into AdicCompletion-IsNoeth…
Thmoas-Guan May 12, 2026
c70e317
Apply suggestion from @dagurtomas
dagurtomas May 13, 2026
8b17e3a
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] May 13, 2026
6308a7a
Apply suggestion from @dagurtomas
dagurtomas May 13, 2026
9fee99a
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan May 13, 2026
bcb9f19
golf
Thmoas-Guan May 14, 2026
bd0ca1c
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan May 17, 2026
391c84f
Merge branch 'master' into Hom-Flat-Base-Change
Thmoas-Guan May 18, 2026
aac15ab
Merge branch 'Hom-Flat-Base-Change' into Ext-Base-Change'
Thmoas-Guan May 18, 2026
703881e
Merge branch 'master' into Ext-Ulift
Thmoas-Guan May 18, 2026
7b239a2
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan May 18, 2026
3cebae3
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan May 18, 2026
8483ded
Merge branch 'master' into restrictScalars-exact
Thmoas-Guan May 18, 2026
95253ab
Merge branch 'restrictScalars-exact' into Ext-Ulift
Thmoas-Guan May 18, 2026
97605ce
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan May 18, 2026
8f1a1e3
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan May 18, 2026
b1dd3ac
Merge branch 'category-version-Baer-criterion' into injective-dimensi…
Thmoas-Guan May 18, 2026
83158b1
Merge branch 'restrictScalars-exact' into injective-dimension-of-quot…
Thmoas-Guan May 18, 2026
2dab7d7
Merge branch 'master' into AdicCompletion-IsLocalRing
Thmoas-Guan May 18, 2026
953fce9
Merge branch 'AdicCompletion-IsLocalRing' into AdicCompletion-IsNoeth…
Thmoas-Guan May 18, 2026
c32a1c9
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan May 22, 2026
786b3ee
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan May 23, 2026
71f36b5
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan May 23, 2026
7ee312b
Merge branch 'master' into AdicCompletion-IsLocalRing
Thmoas-Guan May 24, 2026
fa0bed4
Merge branch 'AdicCompletion-IsLocalRing' into AdicCompletion-IsNoeth…
Thmoas-Guan May 24, 2026
886b70f
Merge branch 'master' into Hom-Flat-Base-Change
Thmoas-Guan May 24, 2026
822a713
Merge branch 'Hom-Flat-Base-Change' into Ext-Base-Change'
Thmoas-Guan May 24, 2026
f2b8857
Merge branch 'master' into Ext-Ulift
Thmoas-Guan May 24, 2026
d07e15e
Merge branch 'master' into restrictScalars-exact
Thmoas-Guan May 24, 2026
40400bc
Merge branch 'restrictScalars-exact' into Ext-Ulift
Thmoas-Guan May 24, 2026
a26b2d0
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan May 24, 2026
08c14ba
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan May 24, 2026
c9ef01e
fix naming
Thmoas-Guan May 24, 2026
aacecb6
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan May 24, 2026
9bf9f8b
Merge branch 'category-version-Baer-criterion' into injective-dimensi…
Thmoas-Guan May 24, 2026
e3d8afc
fix naming
Thmoas-Guan May 24, 2026
19bbe33
fix naming
Thmoas-Guan May 24, 2026
a3b12f0
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan May 26, 2026
75340f9
Merge branch 'master' into Hom-Flat-Base-Change
Thmoas-Guan May 27, 2026
625b37f
Merge branch 'Hom-Flat-Base-Change' into Ext-Base-Change'
Thmoas-Guan May 27, 2026
4ab51b1
Merge branch 'master' into Ext-Ulift
Thmoas-Guan May 27, 2026
7050498
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan May 27, 2026
4acfed2
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan May 27, 2026
38e7646
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan May 27, 2026
137cea9
Merge branch 'category-version-Baer-criterion' into injective-dimensi…
Thmoas-Guan May 27, 2026
eb8488a
Merge branch 'master' into restrictScalars-exact
Thmoas-Guan May 28, 2026
343bd62
Merge branch 'restrictScalars-exact' into Ext-Ulift
Thmoas-Guan May 28, 2026
cf2f6cb
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan May 28, 2026
6069e14
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan May 28, 2026
44a392b
Merge branch 'restrictScalars-exact' into injective-dimension-of-quot…
Thmoas-Guan May 28, 2026
c0e5d84
Improve Baer Ext documentation
dagurtomas May 28, 2026
eaef244
apply suggestion from dagurtomas
Thmoas-Guan May 29, 2026
62b995f
refine doc
Thmoas-Guan May 29, 2026
58cec26
Merge branch 'master' into AdicCompletion-IsLocalRing
Thmoas-Guan May 31, 2026
040678a
separate two lemmas
Thmoas-Guan May 31, 2026
1722356
golf
Thmoas-Guan May 31, 2026
ae727cf
Merge branch 'AdicCompletion-IsLocalRing' into AdicCompletion-IsNoeth…
Thmoas-Guan May 31, 2026
e771555
golf
Thmoas-Guan May 31, 2026
cd8bf54
Merge branch 'master' into AdicCompletion-IsLocalRing
Thmoas-Guan May 31, 2026
ccb124d
fix
Thmoas-Guan May 31, 2026
711e10e
fix doc
Thmoas-Guan May 31, 2026
1e6ed8e
Merge branch 'AdicCompletion-IsLocalRing' into AdicCompletion-IsNoeth…
Thmoas-Guan May 31, 2026
bfe7b1b
fix
Thmoas-Guan May 31, 2026
66997e2
Merge branch 'master' into AdicCompletion-IsNoetherian
Thmoas-Guan Jun 1, 2026
b614c46
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Jun 2, 2026
e0ee591
Merge branch 'master' into AdicCompletion-IsNoetherian
Thmoas-Guan Jun 2, 2026
9571a9a
Merge branch 'master' into Hom-Flat-Base-Change
Thmoas-Guan Jun 2, 2026
574d11a
Merge branch 'Hom-Flat-Base-Change' into Ext-Base-Change'
Thmoas-Guan Jun 2, 2026
f704309
fix
Thmoas-Guan Jun 2, 2026
d085ad5
golf
Thmoas-Guan Jun 2, 2026
166ca12
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Jun 4, 2026
df08f64
Merge branch 'master' into AdicCompletion-IsNoetherian
Thmoas-Guan Jun 4, 2026
20ed468
Merge branch 'master' into Hom-Flat-Base-Change
Thmoas-Guan Jun 4, 2026
11d4280
Merge branch 'Hom-Flat-Base-Change' into Ext-Base-Change'
Thmoas-Guan Jun 4, 2026
44da5aa
Merge branch 'master' into restrictScalars-exact
Thmoas-Guan Jun 4, 2026
345356e
Merge branch 'restrictScalars-exact' into Ext-Ulift
Thmoas-Guan Jun 4, 2026
ceeb03d
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan Jun 4, 2026
daf2c43
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan Jun 4, 2026
6c5abd0
fix
Thmoas-Guan Jun 4, 2026
e597827
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan Jun 4, 2026
bf81810
fix
Thmoas-Guan Jun 4, 2026
c09aae9
Merge branch 'category-version-Baer-criterion' into injective-dimensi…
Thmoas-Guan Jun 4, 2026
4da2081
fix
Thmoas-Guan Jun 4, 2026
bed1a5c
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan Jun 4, 2026
f394bad
update module doc
Thmoas-Guan Jun 11, 2026
3d73baa
Merge branch 'restrictScalars-exact' into Ext-Ulift
Thmoas-Guan Jun 11, 2026
fef9c06
Merge branch 'restrictScalars-exact' into injective-dimension-of-quot…
Thmoas-Guan Jun 11, 2026
2415a4d
Merge branch 'master' into Hom-Flat-Base-Change
Thmoas-Guan Jun 14, 2026
b29b296
Merge branch 'Hom-Flat-Base-Change' into Ext-Base-Change'
Thmoas-Guan Jun 14, 2026
7ac7f39
Merge branch 'master' into Ext-Ulift
Thmoas-Guan Jun 14, 2026
8efabf8
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan Jun 14, 2026
e81e724
Merge branch 'master' into injective-dimension-of-quotSMulTop
Thmoas-Guan Jun 14, 2026
596191a
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Jun 14, 2026
f21b565
Merge branch 'category-version-Baer-criterion' into injective-dimensi…
Thmoas-Guan Jun 14, 2026
f636a37
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan Jun 14, 2026
72b9353
temp fix
Thmoas-Guan Jun 14, 2026
ad7a56c
real fix
Thmoas-Guan Jun 14, 2026
97e47c6
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Jun 18, 2026
d08d993
generalize and move lemma
Thmoas-Guan Jun 18, 2026
fa98e4b
fix import
Thmoas-Guan Jun 18, 2026
92b1f56
add iff version
Thmoas-Guan Jun 18, 2026
a8d2b1d
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Jun 19, 2026
6a0f493
generalize iff version
Thmoas-Guan Jun 19, 2026
33f17ac
add iff version to doc
Thmoas-Guan Jun 19, 2026
eb29c3f
Merge branch 'master' into AdicCompletion-IsNoetherian
Thmoas-Guan Jun 25, 2026
a05b2b1
Merge branch 'master' into Hom-Flat-Base-Change
Thmoas-Guan Jun 26, 2026
7511745
Merge branch 'Hom-Flat-Base-Change' into Ext-Base-Change'
Thmoas-Guan Jun 26, 2026
fc59c4c
Merge branch 'master' into Ext-Ulift
Thmoas-Guan Jun 26, 2026
c218815
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan Jun 26, 2026
4c17f16
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan Jun 26, 2026
ea2eec5
Merge branch 'category-version-Baer-criterion' into injective-dimensi…
Thmoas-Guan Jun 26, 2026
4084904
fix and golf
Thmoas-Guan Jun 26, 2026
3d97adf
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan Jun 26, 2026
b4098a7
Merge branch 'Ext-Base-Change'' into Gorenstein-Local-Ring-completion
Thmoas-Guan Jun 26, 2026
9cd0b59
Merge branch 'AdicCompletion-IsNoetherian' into Gorenstein-Local-Ring…
Thmoas-Guan Jun 26, 2026
f89998b
Merge branch 'injective-dimension-of-quotSMulTop' into Gorenstein-Loc…
Thmoas-Guan Jun 26, 2026
66257a2
finish equivalent with completion
Thmoas-Guan Jun 26, 2026
bc2c7f1
fix naming
Thmoas-Guan Jun 29, 2026
1619bdc
use typeclass
Thmoas-Guan Jun 29, 2026
387a0d4
use notation
Thmoas-Guan Jun 29, 2026
981bfbf
add type signature
Thmoas-Guan Jun 29, 2026
110bd78
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Jul 9, 2026
18dc502
Merge branch 'master' into AdicCompletion-IsNoetherian
Thmoas-Guan Jul 10, 2026
25c2601
split and golf
Thmoas-Guan Jul 10, 2026
29f4d16
add lemmas about rees algebra
Thmoas-Guan Jul 10, 2026
a6e575a
Merge branch 'reesAlgebra-lemmas' into AdicCompletion-IsNoetherian
Thmoas-Guan Jul 10, 2026
80ba682
add name
Thmoas-Guan Jul 10, 2026
3ba9670
Merge branch 'master' into Hom-Flat-Base-Change
Thmoas-Guan Jul 10, 2026
eeb91f9
golf
Thmoas-Guan Jul 10, 2026
2ddf282
Merge branch 'Hom-Flat-Base-Change' into Ext-Base-Change'
Thmoas-Guan Jul 10, 2026
8bb531b
Merge branch 'master' into Ext-Ulift
Thmoas-Guan Jul 10, 2026
131882d
Merge branch 'Ext-Ulift' into Injective-Dimension-in-LinearEquiv
Thmoas-Guan Jul 10, 2026
7b6db3c
Merge branch 'category-version-Baer-criterion' into Injective-Dimensi…
Thmoas-Guan Jul 10, 2026
d46f3f9
Merge branch 'Injective-Dimension-in-LinearEquiv' into Gorenstein-Loc…
Thmoas-Guan Jul 10, 2026
b6a45a8
Merge branch 'category-version-Baer-criterion' into injective-dimensi…
Thmoas-Guan Jul 10, 2026
681d947
Merge branch 'Gorenstein-Local-Ring-Def' into Gorenstein-Local-Ring-c…
Thmoas-Guan Jul 10, 2026
504e2ce
Merge branch 'injective-dimension-of-quotSMulTop' into Gorenstein-Loc…
Thmoas-Guan Jul 10, 2026
c1d11dd
Merge branch 'Ext-Base-Change'' into Gorenstein-Local-Ring-completion
Thmoas-Guan Jul 10, 2026
0fdad71
Merge branch 'AdicCompletion-IsNoetherian' into Gorenstein-Local-Ring…
Thmoas-Guan Jul 10, 2026
4620f6e
refactor long proof
Thmoas-Guan Jul 11, 2026
334c39f
Merge branch 'AdicCompletion-IsNoetherian' into Gorenstein-Local-Ring…
Thmoas-Guan Jul 11, 2026
4e7e2ef
golf
Thmoas-Guan Jul 11, 2026
c449489
golf
Thmoas-Guan Jul 11, 2026
6058d45
Merge branch 'reesAlgebra-lemmas' into AdicCompletion-IsNoetherian
Thmoas-Guan Jul 11, 2026
d0b586e
Merge branch 'AdicCompletion-IsNoetherian' into Gorenstein-Local-Ring…
Thmoas-Guan Jul 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -161,15 +161,19 @@ public import Mathlib.Algebra.Category.ModuleCat.Differentials.Basic
public import Mathlib.Algebra.Category.ModuleCat.Differentials.Presheaf
public import Mathlib.Algebra.Category.ModuleCat.EnoughInjectives
public import Mathlib.Algebra.Category.ModuleCat.EpiMono
public import Mathlib.Algebra.Category.ModuleCat.Ext.Baer
public import Mathlib.Algebra.Category.ModuleCat.Ext.BaseChange
public import Mathlib.Algebra.Category.ModuleCat.Ext.Basic
public import Mathlib.Algebra.Category.ModuleCat.Ext.DimensionShifting
public import Mathlib.Algebra.Category.ModuleCat.Ext.Finite
public import Mathlib.Algebra.Category.ModuleCat.Ext.HasExt
public import Mathlib.Algebra.Category.ModuleCat.Ext.RingEquiv
public import Mathlib.Algebra.Category.ModuleCat.ExteriorPower
public import Mathlib.Algebra.Category.ModuleCat.FilteredColimits
public import Mathlib.Algebra.Category.ModuleCat.Free
public import Mathlib.Algebra.Category.ModuleCat.Images
public import Mathlib.Algebra.Category.ModuleCat.Injective
public import Mathlib.Algebra.Category.ModuleCat.InjectiveDimension
public import Mathlib.Algebra.Category.ModuleCat.Kernels
public import Mathlib.Algebra.Category.ModuleCat.LeftResolution
public import Mathlib.Algebra.Category.ModuleCat.Limits
Expand Down Expand Up @@ -6602,6 +6606,8 @@ public import Mathlib.RingTheory.FractionalIdeal.Operations
public import Mathlib.RingTheory.FreeCommRing
public import Mathlib.RingTheory.FreeRing
public import Mathlib.RingTheory.Frobenius
public import Mathlib.RingTheory.Gorenstein.Completion
public import Mathlib.RingTheory.Gorenstein.Defs
public import Mathlib.RingTheory.GradedAlgebra.AlgHom
public import Mathlib.RingTheory.GradedAlgebra.Basic
public import Mathlib.RingTheory.GradedAlgebra.FiniteType
Expand Down Expand Up @@ -6953,6 +6959,7 @@ public import Mathlib.RingTheory.Regular.Category
public import Mathlib.RingTheory.Regular.Depth
public import Mathlib.RingTheory.Regular.Flat
public import Mathlib.RingTheory.Regular.Free
public import Mathlib.RingTheory.Regular.InjectiveDimension
public import Mathlib.RingTheory.Regular.IsSMulRegular
public import Mathlib.RingTheory.Regular.LinearMap
public import Mathlib.RingTheory.Regular.ProjectiveDimension
Expand Down
10 changes: 10 additions & 0 deletions Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,16 @@ def restrictScalarsIsoOfEquiv {R S : Type v} [Ring R] [Ring S] (e : R ≃+* S) :
{ __ := e.symm
map_smul' x y := by simp [RingHom.toModule_smul] }

attribute [local instance] RingHomInvPair.of_ringEquiv in
/-- Given semi linear equiv `M ≃ M'`, the categorical isomorphism `M ≅ ↑R M'` -/
noncomputable def isoRestrictScalars {R S} [Ring R] [Ring S] {M' : ModuleCat.{v} S}
{M : ModuleCat.{v} R} (e : R ≃+* S) (e' : M ≃ₛₗ[RingHomClass.toRingHom e] M') :
M ≅ ((ModuleCat.restrictScalars (RingHomClass.toRingHom e)).obj M') :=
let e : M ≃ₗ[R] ((ModuleCat.restrictScalars (RingHomClass.toRingHom e)).obj M') := {
__ := e'
map_smul' r m := by simp }
e.toModuleIso

@[simp]
lemma restrictScalarsIsoOfEquiv_hom_apply {R S : Type v} [Ring R] [Ring S] (e : R ≃+* S) (x : S) :
dsimp% (ModuleCat.restrictScalarsIsoOfEquiv e).hom x = e.symm x :=
Expand Down
157 changes: 157 additions & 0 deletions Mathlib/Algebra/Category/ModuleCat/Ext/Baer.lean
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
/-
Copyright (c) 2025 Nailin Guan. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Nailin Guan
-/
module

public import Mathlib.Algebra.Category.ModuleCat.EnoughInjectives
public import Mathlib.Algebra.Category.ModuleCat.Ext.HasExt
public import Mathlib.Algebra.Homology.ShortComplex.ModuleCat
public import Mathlib.CategoryTheory.Abelian.Injective.Dimension
public import Mathlib.CategoryTheory.Abelian.Injective.Resolution

/-!

# Baer's criterion for injective dimension

Baer's criterion says that an `R`-module `M` is injective iff every `R`-linear map
`I →ₗ[R] M` from an ideal `I` of `R` extends to a map `R →ₗ[R] M`.

This file reformulates that extension condition as the vanishing of `Ext (R ⧸ I) M 1`.
It then uses dimension shifting to give a criterion for injective dimension: to prove that
`M` has injective dimension `< n`, it suffices to show that `Ext (R ⧸ I) M n` vanishes for
all ideals `I`.

The statements use `Shrink` because `R`, its ideals, and its quotients may live in a larger
universe than `ModuleCat.{v} R`.

## Main results

* `ModuleCat.ext_quotient_one_subsingleton_iff`: `Ext (R ⧸ I) M 1` vanishes iff every
linear map `I →ₗ[R] M` extends to `R →ₗ[R] M`.
* `ModuleCat.injective_of_subsingleton_ext_quotient_one`: if `Ext (R ⧸ I) M 1` vanishes
for all ideals `I`, then `M` is injective.
* `ModuleCat.injective_iff_subsingleton_ext_quotient_one`: if and only if version of
`ModuleCat.injective_of_subsingleton_ext_quotient_one`.
* `ModuleCat.hasInjectiveDimensionLT_of_quotients`: if `Ext (R ⧸ I) M n` vanishes for all
ideals `I`, then `M` has injective dimension `< n`.
* `ModuleCat.hasInjectiveDimensionLT_iff_quotients`: if and only if version of
`ModuleCat.hasInjectiveDimensionLT_of_quotients`

-/

@[expose] public section

universe u v

variable {R : Type u} [CommRing R]

open CategoryTheory Abelian

namespace ModuleCat

/-- The vanishing of `Ext (R ⧸ I) M 1` is equivalent to Baer's extension property
for maps `I →ₗ[R] M`. -/
lemma ext_quotient_one_subsingleton_iff [Small.{v} R] (M : ModuleCat.{v} R) (I : Ideal R) :
Subsingleton (Ext (ModuleCat.of R (Shrink.{v} (R ⧸ I))) M 1) ↔
∀ g : I →ₗ[R] M, ∃ g' : R →ₗ[R] M,
∀ (x : R) (mem : x ∈ I), g' x = g ⟨x, mem⟩ := by
-- The short complex `I → R → R ⧸ I`, with all three terms moved into universe `v`.
-- This avoids universe issues when comparing it with `Ext` in `ModuleCat.{v} R`.
have exact : Function.Exact I.subtype I.mkQ := LinearMap.exact_subtype_mkQ I
let S := ModuleCat.shortComplexOfConj (Shrink.linearEquiv R I) (Shrink.linearEquiv R R)
(Shrink.linearEquiv R (R ⧸ I)) _ _ exact.linearMap_comp_eq_zero
-- The complex `I → R → R ⧸ I` is short exact, after shrinking universes.
have S_exact : S.ShortExact :=
ModuleCat.shortComplexOfConj_shortExact _ _ _ _ _ exact I.subtype_injective I.mkQ_surjective
rw [Ext.one_subsingleton_iff_of_projective M S S_exact (by dsimp [S]; infer_instance)]
-- Reduce the vanishing of `Ext (R ⧸ I) M 1` to surjectivity of
-- `Ext R M 0 → Ext I M 0`, keeping track of the universe-shrinking equivalences.
refine ⟨fun h ↦ fun g ↦ ?_, fun h ↦ fun e ↦ ?_⟩
· -- Interpret `g` as an element of `Ext I M 0` and lift it across `Ext R M 0 → Ext I M 0`.
obtain ⟨f', hf'⟩ := h
(Ext.mk₀ (ModuleCat.ofHom (g.comp (Shrink.linearEquiv R I).toLinearMap)))
rw [Ext.bilinearComp_apply_apply, ← Ext.mk₀_addEquiv₀_apply f',
Ext.mk₀_comp_mk₀] at hf'
use (Ext.addEquiv₀ f').hom.comp (Shrink.linearEquiv R R).symm.toLinearMap
intro x hx
have := ConcreteCategory.congr_hom ((Ext.mk₀_bijective _ _).1 hf')
((Shrink.linearEquiv R I).symm ⟨x, hx⟩)
simpa [S]
· -- Conversely, extend the map represented by `e` and turn the extension back into `Ext⁰`.
obtain ⟨g', hg'⟩ := h
((Ext.addEquiv₀ e).hom.comp (Shrink.linearEquiv R I).symm.toLinearMap)
use Ext.mk₀ (ModuleCat.ofHom (g'.comp (Shrink.linearEquiv R R).toLinearMap))
rw [Ext.bilinearComp_apply_apply, Ext.mk₀_comp_mk₀, ← Ext.mk₀_addEquiv₀_apply e]
congr
ext x
simp_all [S]

/-- Baer's criterion in Ext form: if `Ext (R ⧸ I) M 1` vanishes for every ideal `I`,
then `M` is injective. -/
lemma injective_of_subsingleton_ext_quotient_one [Small.{v} R] (M : ModuleCat.{v} R)
(h : ∀ (I : Ideal R), Subsingleton (Ext (ModuleCat.of R (Shrink.{v} (R ⧸ I))) M 1)) :
Injective M := by
rw [← Module.injective_iff_injective_object, ← Module.Baer.iff_injective]
exact fun I ↦ (ext_quotient_one_subsingleton_iff M I).mp (h I)

lemma injective_iff_subsingleton_ext_quotient_one [Small.{v} R] (M : ModuleCat.{v} R) :
Injective M ↔
∀ (I : Ideal R), Subsingleton (Ext (ModuleCat.of R (Shrink.{v} (R ⧸ I))) M 1) :=
⟨fun _ _ ↦ Ext.subsingleton_of_injective _ M 0, injective_of_subsingleton_ext_quotient_one M⟩

attribute [local instance] Ext.subsingleton_of_injective in
open Limits in
/-- If `Ext (R ⧸ I) M (n + 1)` vanishes for every ideal `I`, then `M` has injective
dimension at most `n`. -/
lemma hasInjectiveDimensionLE_of_quotients [Small.{v} R] (M : ModuleCat.{v} R) (n : ℕ)
(h : ∀ I : Ideal R, Subsingleton (Ext (ModuleCat.of R (Shrink.{v} (R ⧸ I))) M (n + 1))) :
HasInjectiveDimensionLE M n := by
induction n generalizing M with
| zero =>
-- The case `n = 0` is exactly the Ext form of Baer's criterion.
have : Injective M := injective_of_subsingleton_ext_quotient_one M h
infer_instance
| succ n ih =>
-- Dimension shifting reduces the statement for `M` to
-- the cokernel of an injective presentation.
let ip : InjectivePresentation M := Classical.arbitrary _
refine ip.shortExact_shortComplex.hasInjectiveDimensionLT_X₁ _
(ih _ (fun I ↦ subsingleton_of_forall_eq 0 (fun x₃ ↦ ?_))) inferInstance
obtain ⟨x₂, rfl⟩ := Ext.covariant_sequence_exact₃ _ ip.shortExact_shortComplex x₃ rfl
(by subsingleton)
simp [Subsingleton.elim x₂ 0]

/-- The zeroth Ext group from `R ⧸ ⊥` is canonically equivalent to the underlying module. -/
private noncomputable def extQuotientBotZeroEquiv [Small.{v} R] (M : ModuleCat.{v} R) :
(Ext (ModuleCat.of R (Shrink.{v} (R ⧸ (⊥ : Ideal R)))) M 0) ≃ M :=
(Ext.homEquiv₀.trans ModuleCat.homEquiv).trans ((((Shrink.linearEquiv _ _).trans
(Submodule.quotEquivOfEqBot _ rfl)).congrLeft M R).trans
(LinearMap.ringLmapEquivSelf R R M)).toEquiv

/-- If `Ext⁰(R ⧸ ⊥, M)` is a subsingleton, then `M` is a subsingleton. -/
private lemma subsingleton_of_ext_quotient_bot_zero [Small.{v} R] (M : ModuleCat.{v} R)
(h : Subsingleton (Ext (of R (Shrink.{v} (R ⧸ (⊥ : Ideal R)))) M 0)) :
Subsingleton M := by
rw [← (extQuotientBotZeroEquiv (R := R) M).subsingleton_congr]
exact h

/-- If `Ext (R ⧸ I) M n` vanishes for every ideal `I`, then `M` has injective dimension
strictly less than `n`. -/
lemma hasInjectiveDimensionLT_of_quotients [Small.{v} R] (M : ModuleCat.{v} R) (n : ℕ)
(h : ∀ I : Ideal R, Subsingleton (Ext (ModuleCat.of R (Shrink.{v} (R ⧸ I))) M n)) :
HasInjectiveDimensionLT M n := by
match n with
| 0 =>
apply Limits.IsZero.hasInjectiveDimensionLT_zero
rw [ModuleCat.isZero_iff_subsingleton]
exact subsingleton_of_ext_quotient_bot_zero M (h ⊥)
| n + 1 => exact hasInjectiveDimensionLE_of_quotients M n h

lemma hasInjectiveDimensionLT_iff_quotients [Small.{v} R] (M : ModuleCat.{v} R) (n : ℕ) :
HasInjectiveDimensionLT M n ↔
∀ I : Ideal R, Subsingleton (Ext (ModuleCat.of R (Shrink.{v} (R ⧸ I))) M n) :=
⟨fun h _ ↦ h.subsingleton M n _ (le_refl _) _, hasInjectiveDimensionLT_of_quotients M n⟩

end ModuleCat
Loading
Loading