Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2354 commits
Select commit Hold shift + click to select a range
6b28f5c
Merge branch 'definition-of-Cohen-Macaulay' into maximal-CM-module
Thmoas-Guan Jan 6, 2026
e9e23ab
Merge branch 'Regular-Local-Ring' into maximal-CM-module
Thmoas-Guan Jan 6, 2026
cdd5d9f
Merge branch 'maximal-CM-module' into finite-projective-dimension-of-…
Thmoas-Guan Jan 6, 2026
cb7097d
Merge branch 'mbkybky/AuslanderBuchsbaum' into finite-projective-dime…
Thmoas-Guan Jan 6, 2026
525dc4f
Merge branch 'finite-projective-dimension-of-regular' into Global-Dim…
Thmoas-Guan Jan 6, 2026
afada9f
Merge branch 'Global-Dimension' into Global-Dimension-of-Regular-Loca…
Thmoas-Guan Jan 6, 2026
b3b7b7b
Merge branch 'Global-Dimension-of-Regular-Local-Ring' into Global-Dim…
Thmoas-Guan Jan 6, 2026
fa38650
Merge branch 'global-dimension-eq-sup-localization' into Global-Dimen…
Thmoas-Guan Jan 6, 2026
7e12aae
Merge branch 'Regular-Ring' into Global-Dimension-of-Regular-Ring
Thmoas-Guan Jan 6, 2026
c03bfa9
Merge branch 'Regular-Ring' into Polynomial-over-Regular-Ring
Thmoas-Guan Jan 6, 2026
e189661
Merge branch 'Global-Dimension-of-Regular-Ring' into Hilbert's-Syzygy…
Thmoas-Guan Jan 6, 2026
95df593
Merge branch 'Polynomial-over-Regular-Ring' into Hilbert's-Syzygy-The…
Thmoas-Guan Jan 6, 2026
5262133
Merge branch 'master' into Dimension-Shifting-Tools
Thmoas-Guan Jan 6, 2026
99fbbb2
Merge branch 'master' into Ext-finitely-generated
Thmoas-Guan Jan 6, 2026
a1ccd93
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Jan 6, 2026
bcfd1c1
Merge branch 'master' into projective-dimension-eq-sup-localization'
Thmoas-Guan Jan 6, 2026
45d33a3
Merge branch 'master' into global-dimension-eq-sup-localization
Thmoas-Guan Jan 6, 2026
7d06515
Merge branch 'master' into WithBot-ENat-lemmas
Thmoas-Guan Jan 6, 2026
617dce2
Merge branch 'master' into rees-theorem-for-depth'
Thmoas-Guan Jan 6, 2026
6bfef7d
Merge branch 'master' into definition-of-depth
Thmoas-Guan Jan 6, 2026
daa6688
Merge branch 'master' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Jan 6, 2026
d1f6c42
Merge branch 'master' into depth_of_QuotSMulTop
Thmoas-Guan Jan 6, 2026
da78e43
Merge branch 'master' into Ischebeck-theorem
Thmoas-Guan Jan 6, 2026
2ed941b
Merge branch 'master' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 6, 2026
ff6b4a5
Merge branch 'WithBot-ENat-lemmas' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 6, 2026
0bc3356
fix doc and namespace
Thmoas-Guan Jan 6, 2026
0468fdd
use generalizing
Thmoas-Guan Jan 6, 2026
9f4ac82
Merge branch 'rees-theorem-for-depth'' into definition-of-depth
Thmoas-Guan Jan 6, 2026
07cb690
Merge branch 'definition-of-depth' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Jan 6, 2026
5b23a36
fix
Thmoas-Guan Jan 6, 2026
b898001
Merge branch 'rees-theorem-for-depth'' into definition-of-depth
Thmoas-Guan Jan 6, 2026
c40c51e
Merge branch 'definition-of-depth' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Jan 6, 2026
536378f
Merge branch 'definition-of-depth' into depth_of_QuotSMulTop
Thmoas-Guan Jan 6, 2026
1fea94f
Merge branch 'definition-of-depth' into Ischebeck-theorem
Thmoas-Guan Jan 6, 2026
5229142
Merge branch 'depth_of_QuotSMulTop' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 6, 2026
3fbe3f5
Merge branch 'Ischebeck-theorem' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 6, 2026
34bc2e1
golf
Thmoas-Guan Jan 6, 2026
2be537d
Merge branch 'WithBot-ENat-lemmas' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 6, 2026
1479717
fix naming
Thmoas-Guan Jan 6, 2026
20b0d4c
fix doc
Thmoas-Guan Jan 6, 2026
949550e
Merge branch 'Dimension-Shifting-Tools' into Ext-finitely-generated
Thmoas-Guan Jan 6, 2026
ecc82cd
fix
Thmoas-Guan Jan 6, 2026
469ea08
Merge branch 'Dimension-Shifting-Tools' into category-version-Baer-cr…
Thmoas-Guan Jan 6, 2026
f81fde9
fix
Thmoas-Guan Jan 6, 2026
b365398
Merge branch 'category-version-Baer-criterion' into global-dimension-…
Thmoas-Guan Jan 6, 2026
64d8100
Merge branch 'Dimension-Shifting-Tools' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Jan 6, 2026
da8810c
Merge branch 'Ext-finitely-generated' into Ischebeck-theorem
Thmoas-Guan Jan 6, 2026
ae9c10f
Merge branch 'Ischebeck-theorem' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 6, 2026
7868aeb
Merge branch 'master' into Regular-Local-Ring-Def
Thmoas-Guan Jan 6, 2026
e367059
Merge branch 'master' into Regular-Ring
Thmoas-Guan Jan 6, 2026
215145b
Merge branch 'WithBot-ENat-lemmas' into Regular-Local-Ring
Thmoas-Guan Jan 6, 2026
0735d5e
Merge branch 'Regular-Local-Ring' into maximal-CM-module
Thmoas-Guan Jan 6, 2026
655e6be
Merge branch 'definition-of-Cohen-Macaulay' into maximal-CM-module
Thmoas-Guan Jan 6, 2026
054da8d
Merge branch 'maximal-CM-module' into finite-projective-dimension-of-…
Thmoas-Guan Jan 6, 2026
d156395
Merge branch 'mbkybky/AuslanderBuchsbaum' into finite-projective-dime…
Thmoas-Guan Jan 6, 2026
c0938c1
Merge branch 'finite-projective-dimension-of-regular' into Global-Dim…
Thmoas-Guan Jan 6, 2026
b7fc5c9
Merge branch 'Global-Dimension-of-Regular-Local-Ring' into Global-Dim…
Thmoas-Guan Jan 6, 2026
7bcb54e
Merge branch 'global-dimension-eq-sup-localization' into Global-Dimen…
Thmoas-Guan Jan 6, 2026
2bc7651
Merge branch 'master' into Polynomial-over-Regular-Ring
Thmoas-Guan Jan 6, 2026
8c1ff5b
Merge branch 'Global-Dimension-of-Regular-Ring' into Hilbert's-Syzygy…
Thmoas-Guan Jan 6, 2026
fc52b5e
Merge branch 'category-version-Baer-criterion' into Global-Dimension
Thmoas-Guan Jan 6, 2026
830c692
Merge branch 'Global-Dimension' into global-dimension-eq-sup-localiza…
Thmoas-Guan Jan 6, 2026
245bab5
Merge branch 'Global-Dimension' into Global-Dimension-of-Regular-Loca…
Thmoas-Guan Jan 6, 2026
217641d
Merge branch 'Global-Dimension-of-Regular-Local-Ring' into Global-Dim…
Thmoas-Guan Jan 6, 2026
df9fd89
Merge branch 'global-dimension-eq-sup-localization' into Global-Dimen…
Thmoas-Guan Jan 6, 2026
097eb06
Merge branch 'Global-Dimension-of-Regular-Ring' into Hilbert's-Syzygy…
Thmoas-Guan Jan 6, 2026
37c731f
Merge branch 'master' into Dimension-Shifting-Tools
Thmoas-Guan Jan 23, 2026
57b6d0b
move instance
Thmoas-Guan Jan 23, 2026
2359da3
Merge branch 'Dimension-Shifting-Tools' into Ext-finitely-generated
Thmoas-Guan Jan 23, 2026
be1819b
Merge branch 'Dimension-Shifting-Tools' into category-version-Baer-cr…
Thmoas-Guan Jan 23, 2026
141754a
Merge branch 'category-version-Baer-criterion' into Global-Dimension
Thmoas-Guan Jan 23, 2026
8c4cf26
Merge branch 'master' into projective-dimension-eq-sup-localization'
Thmoas-Guan Jan 23, 2026
ce16d39
Merge branch 'Global-Dimension' into global-dimension-eq-sup-localiza…
Thmoas-Guan Jan 23, 2026
261ad47
Merge branch 'master' into WithBot-ENat-lemmas
Thmoas-Guan Jan 25, 2026
6cbc6a6
Merge branch 'master' into Regular-Local-Ring-Def
Thmoas-Guan Jan 25, 2026
4497fed
Merge branch 'master' into Regular-Ring
Thmoas-Guan Jan 25, 2026
6fd188d
Merge branch 'master' into Regular-Local-Ring
Thmoas-Guan Jan 25, 2026
05d5c62
Merge branch 'master' into rees-theorem-for-depth'
Thmoas-Guan Jan 25, 2026
e731289
Merge branch 'master' into definition-of-depth
Thmoas-Guan Jan 25, 2026
9524257
Merge branch 'Dimension-Shifting-Tools' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Jan 25, 2026
b6bb425
Merge branch 'master' into depth_of_QuotSMulTop
Thmoas-Guan Jan 25, 2026
50f682c
Merge branch 'master' into Ischebeck-theorem
Thmoas-Guan Jan 25, 2026
37736d4
Merge branch 'Ischebeck-theorem' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 25, 2026
39f85f6
Merge branch 'Ext-finitely-generated' into Ischebeck-theorem
Thmoas-Guan Jan 25, 2026
c59c0d5
Merge branch 'Ischebeck-theorem' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 25, 2026
1dcffea
fix
Thmoas-Guan Jan 25, 2026
aa9e9f1
Merge branch 'Ischebeck-theorem' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 25, 2026
5968d79
fix
Thmoas-Guan Jan 25, 2026
98cf621
fix
Thmoas-Guan Jan 25, 2026
aa4add0
fix import
Thmoas-Guan Jan 25, 2026
5588e47
Merge branch 'Regular-Local-Ring' into maximal-CM-module
Thmoas-Guan Jan 25, 2026
86b231a
Merge branch 'definition-of-Cohen-Macaulay' into maximal-CM-module
Thmoas-Guan Jan 25, 2026
22091b5
Merge branch 'maximal-CM-module' into finite-projective-dimension-of-…
Thmoas-Guan Jan 25, 2026
3065049
Merge branch 'mbkybky/AuslanderBuchsbaum' into finite-projective-dime…
Thmoas-Guan Jan 25, 2026
38633ff
Merge branch 'finite-projective-dimension-of-regular' into Global-Dim…
Thmoas-Guan Jan 25, 2026
185a188
Merge branch 'Global-Dimension' into Global-Dimension-of-Regular-Loca…
Thmoas-Guan Jan 25, 2026
dc98a15
Merge branch 'Global-Dimension-of-Regular-Local-Ring' into Global-Dim…
Thmoas-Guan Jan 25, 2026
2277083
Merge branch 'global-dimension-eq-sup-localization' into Global-Dimen…
Thmoas-Guan Jan 25, 2026
848f96c
fix using new commits
Thmoas-Guan Jan 25, 2026
d24e505
Merge branch 'Global-Dimension-of-Regular-Ring' into Hilbert's-Syzygy…
Thmoas-Guan Jan 25, 2026
345a838
Merge branch 'Polynomial-over-Regular-Ring' into Hilbert's-Syzygy-The…
Thmoas-Guan Jan 25, 2026
6a75f1e
fix
Thmoas-Guan Jan 25, 2026
a210a86
Merge branch 'Polynomial-over-Regular-Ring' into Hilbert's-Syzygy-The…
Thmoas-Guan Jan 25, 2026
d30cd6e
Merge branch 'master' into Polynomial-over-Regular-Ring
Thmoas-Guan Jan 25, 2026
3bee301
golf
Thmoas-Guan Jan 25, 2026
a673d1f
Merge branch 'Polynomial-over-Regular-Ring' into Hilbert's-Syzygy-The…
Thmoas-Guan Jan 25, 2026
52f7431
fix
Thmoas-Guan Jan 25, 2026
dadb074
move some declarations
Thmoas-Guan Jan 26, 2026
cf8ee53
Merge branch 'master' into Dimension-Shifting-Tools
Thmoas-Guan Jan 26, 2026
ee4f8e0
Merge branch 'Dimension-Shifting-Tools' into Ext-finitely-generated
Thmoas-Guan Jan 26, 2026
3105e84
Merge branch 'Dimension-Shifting-Tools' into category-version-Baer-cr…
Thmoas-Guan Jan 26, 2026
ca5411f
Merge branch 'category-version-Baer-criterion' into Global-Dimension
Thmoas-Guan Jan 26, 2026
4cd4460
Merge branch 'master' into projective-dimension-eq-sup-localization'
Thmoas-Guan Jan 26, 2026
40d4e10
Merge branch 'Global-Dimension' into global-dimension-eq-sup-localiza…
Thmoas-Guan Jan 26, 2026
fabf1ae
golf proof
Thmoas-Guan Jan 27, 2026
cb52dec
remove unnecessary part
Thmoas-Guan Jan 27, 2026
2e4f6e2
fix
Thmoas-Guan Jan 27, 2026
a0976a0
Merge branch 'Dimension-Shifting-Tools' into Ext-finitely-generated
Thmoas-Guan Jan 27, 2026
3ef439d
Merge branch 'Dimension-Shifting-Tools' into category-version-Baer-cr…
Thmoas-Guan Jan 27, 2026
dad07e0
fix
Thmoas-Guan Jan 27, 2026
a17389c
Merge branch 'category-version-Baer-criterion' into Global-Dimension
Thmoas-Guan Jan 27, 2026
2c209d8
Merge branch 'Global-Dimension' into global-dimension-eq-sup-localiza…
Thmoas-Guan Jan 27, 2026
18d5a11
Merge branch 'master' into Ext-finitely-generated
Thmoas-Guan Jan 27, 2026
d1b80e2
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Jan 27, 2026
a4cddb7
Merge branch 'master' into Global-Dimension
Thmoas-Guan Jan 27, 2026
8176955
Merge branch 'master' into projective-dimension-eq-sup-localization'
Thmoas-Guan Jan 27, 2026
2cffe62
Merge branch 'master' into global-dimension-eq-sup-localization
Thmoas-Guan Jan 27, 2026
e4d26b5
golf
Thmoas-Guan Jan 27, 2026
26a90ad
Merge branch 'projective-dimension-eq-sup-localization'' into global-…
Thmoas-Guan Jan 27, 2026
0e63f29
Merge branch 'master' into WithBot-ENat-lemmas
Thmoas-Guan Jan 27, 2026
b1a191a
fix variable
Thmoas-Guan Jan 27, 2026
1565938
Merge branch 'master' into rees-theorem-for-depth'
Thmoas-Guan Jan 27, 2026
599d500
Merge branch 'master' into definition-of-depth
Thmoas-Guan Jan 27, 2026
a8d3209
Merge branch 'master' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Jan 27, 2026
46e0a17
Merge branch 'master' into depth_of_QuotSMulTop
Thmoas-Guan Jan 27, 2026
ea0618c
Merge branch 'Ext-finitely-generated' into Ischebeck-theorem
Thmoas-Guan Jan 27, 2026
d7e9a35
Merge branch 'Ischebeck-theorem' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 27, 2026
4bb29de
Merge branch 'WithBot-ENat-lemmas' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 27, 2026
fe4d469
fix
Thmoas-Guan Jan 27, 2026
685eb91
golf
Thmoas-Guan Jan 27, 2026
3e6b8d5
fix doc
Thmoas-Guan Jan 28, 2026
9ad898f
golf
Thmoas-Guan Jan 28, 2026
13ca00e
Merge branch 'master' into Regular-Local-Ring-Def
Thmoas-Guan Jan 28, 2026
d810ab7
golf
Thmoas-Guan Jan 28, 2026
7e3a308
golf
Thmoas-Guan Jan 28, 2026
3d76295
Merge branch 'Ext-finitely-generated' into Ischebeck-theorem
Thmoas-Guan Jan 28, 2026
7f07842
Merge branch 'Ischebeck-theorem' into definition-of-Cohen-Macaulay
Thmoas-Guan Jan 28, 2026
530ec21
Merge branch 'WithBot-ENat-lemmas' into Regular-Local-Ring
Thmoas-Guan Jan 28, 2026
772fb23
Merge branch 'Regular-Local-Ring-Def' into Regular-Local-Ring
Thmoas-Guan Jan 28, 2026
1e3847b
fix
Thmoas-Guan Jan 28, 2026
6973ffd
Merge branch 'Regular-Local-Ring-Def' into Regular-Ring
Thmoas-Guan Jan 28, 2026
ae77160
Merge branch 'definition-of-Cohen-Macaulay' into maximal-CM-module
Thmoas-Guan Jan 28, 2026
a3dcd6f
Merge branch 'Regular-Local-Ring' into maximal-CM-module
Thmoas-Guan Jan 28, 2026
aec02b1
fix
Thmoas-Guan Jan 28, 2026
0c6cb4a
golf
Thmoas-Guan Jan 28, 2026
5ab8509
Merge branch 'maximal-CM-module' into finite-projective-dimension-of-…
Thmoas-Guan Jan 28, 2026
dd03ade
Merge branch 'mbkybky/AuslanderBuchsbaum' into finite-projective-dime…
Thmoas-Guan Jan 28, 2026
cc70781
Merge branch 'finite-projective-dimension-of-regular' into Global-Dim…
Thmoas-Guan Jan 28, 2026
cb2be59
Merge branch 'Global-Dimension' into Global-Dimension-of-Regular-Loca…
Thmoas-Guan Jan 28, 2026
6fe16b5
Merge branch 'Global-Dimension-of-Regular-Local-Ring' into Global-Dim…
Thmoas-Guan Jan 28, 2026
16646b7
Merge branch 'global-dimension-eq-sup-localization' into Global-Dimen…
Thmoas-Guan Jan 28, 2026
4a48d1c
Merge branch 'Regular-Ring' into Polynomial-over-Regular-Ring
Thmoas-Guan Jan 28, 2026
f9e8020
Merge branch 'Global-Dimension-of-Regular-Ring' into Hilbert's-Syzygy…
Thmoas-Guan Jan 28, 2026
2f1fcf8
Merge branch 'Polynomial-over-Regular-Ring' into Hilbert's-Syzygy-The…
Thmoas-Guan Jan 28, 2026
2a5a8e4
Merge branch 'master' into rees-theorem-for-depth'
Thmoas-Guan Feb 7, 2026
0c7c085
Merge branch 'master' into definition-of-depth
Thmoas-Guan Feb 7, 2026
a54376f
Merge branch 'master' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Feb 7, 2026
2b876bf
Merge branch 'master' into depth_of_QuotSMulTop
Thmoas-Guan Feb 7, 2026
2f53edf
Merge branch 'master' into definition-of-Cohen-Macaulay
Thmoas-Guan Feb 7, 2026
1dbf9df
Merge branch 'master' into Ischebeck-theorem
Thmoas-Guan Feb 7, 2026
27bd39b
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Feb 7, 2026
840bca5
Merge branch 'master' into Global-Dimension
Thmoas-Guan Feb 7, 2026
a0be516
Merge branch 'master' into projective-dimension-eq-sup-localization'
Thmoas-Guan Feb 7, 2026
3b0f9e8
Merge branch 'master' into global-dimension-eq-sup-localization
Thmoas-Guan Feb 7, 2026
88ebf95
Merge branch 'master' into Regular-Local-Ring-Def
Thmoas-Guan Feb 7, 2026
d409b11
Merge branch 'master' into Regular-Ring
Thmoas-Guan Feb 7, 2026
4485092
Merge branch 'master' into Regular-Local-Ring
Thmoas-Guan Feb 7, 2026
3bf3a4e
Merge branch 'Regular-Local-Ring' into maximal-CM-module
Thmoas-Guan Feb 7, 2026
f7f072c
Merge branch 'maximal-CM-module' into finite-projective-dimension-of-…
Thmoas-Guan Feb 7, 2026
1d8bb8e
Merge branch 'finite-projective-dimension-of-regular' into Global-Dim…
Thmoas-Guan Feb 7, 2026
d1dbb17
Merge branch 'Global-Dimension-of-Regular-Local-Ring' into Global-Dim…
Thmoas-Guan Feb 7, 2026
c106ccf
Merge branch 'master' into Polynomial-over-Regular-Ring
Thmoas-Guan Feb 7, 2026
9f5d992
Merge branch 'Global-Dimension-of-Regular-Ring' into Hilbert's-Syzygy…
Thmoas-Guan Feb 7, 2026
4f32eaa
add some lemma about spanRank
Thmoas-Guan Feb 15, 2026
6cf21b0
Update SpanRank.lean
Thmoas-Guan Feb 16, 2026
ca8bab0
move instance
Thmoas-Guan Feb 16, 2026
4547600
golf variable
Thmoas-Guan Feb 16, 2026
663e0bd
Merge branch 'spanRank-lemma' into Regular-Local-Ring
Thmoas-Guan Feb 16, 2026
31fc340
remove duplicated
Thmoas-Guan Feb 16, 2026
514f992
Merge branch 'spanRank-lemma' into Regular-Local-Ring-Def
Thmoas-Guan Feb 16, 2026
90825f5
Merge branch 'Regular-Local-Ring-Def' into Regular-Local-Ring
Thmoas-Guan Feb 16, 2026
60ce0cd
remove duplicated
Thmoas-Guan Feb 16, 2026
66a2354
Merge branch 'Regular-Local-Ring-Def' into Regular-Local-Ring
Thmoas-Guan Feb 16, 2026
4c9e0d2
add compatibility with DVR
Thmoas-Guan Feb 16, 2026
3d565f3
Merge branch 'master' into rees-theorem-for-depth'
Thmoas-Guan Feb 18, 2026
fe215a6
fix
Thmoas-Guan Feb 18, 2026
500191d
fix
Thmoas-Guan Feb 18, 2026
b418363
fix naming
Thmoas-Guan Feb 18, 2026
b7d69c6
fix doc
Thmoas-Guan Feb 18, 2026
8d6bdfc
golf statement
Thmoas-Guan Feb 18, 2026
121325c
move decl
Thmoas-Guan Feb 18, 2026
a975fe5
Merge branch 'rees-theorem-for-depth'' into definition-of-depth
Thmoas-Guan Feb 18, 2026
36bcff7
fix
Thmoas-Guan Feb 18, 2026
01cf03b
Merge branch 'definition-of-depth' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Feb 18, 2026
a22ad4c
Merge branch 'master' into spanRank-lemma
Thmoas-Guan Feb 18, 2026
4c679e0
Merge branch 'master' into Regular-Local-Ring-Def
Thmoas-Guan Feb 18, 2026
8a043f4
Merge branch 'master' into Regular-Local-Ring
Thmoas-Guan Feb 18, 2026
c988f34
revert some fix
Thmoas-Guan Feb 18, 2026
0140036
revert some fix
Thmoas-Guan Feb 18, 2026
709e4bf
Merge branch 'rees-theorem-for-depth'' into definition-of-depth
Thmoas-Guan Feb 18, 2026
0f3342f
Merge branch 'definition-of-depth' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Feb 18, 2026
09e7c05
fix
Thmoas-Guan Feb 18, 2026
975d6d2
remove unrelated stuffs
Thmoas-Guan Feb 18, 2026
34669a1
Merge branch 'definition-of-depth' into depth_of_QuotSMulTop
Thmoas-Guan Feb 18, 2026
ea11946
fix
Thmoas-Guan Feb 18, 2026
ad251a6
Merge branch 'definition-of-depth' into Ischebeck-theorem
Thmoas-Guan Feb 18, 2026
94e1699
fix
Thmoas-Guan Feb 18, 2026
2dcf9b4
Merge branch 'Ischebeck-theorem' into definition-of-Cohen-Macaulay
Thmoas-Guan Feb 18, 2026
67918d9
Merge branch 'depth_of_QuotSMulTop' into definition-of-Cohen-Macaulay
Thmoas-Guan Feb 18, 2026
c40cc6f
Update Basic.lean
Thmoas-Guan Feb 18, 2026
7f4146c
fix
Thmoas-Guan Feb 18, 2026
c4e0ccd
Merge branch 'spanRank-lemma' into Regular-Local-Ring-Def
Thmoas-Guan Feb 18, 2026
def44d9
Merge branch 'Regular-Local-Ring-Def' into Regular-Ring
Thmoas-Guan Feb 18, 2026
2b834a7
Merge branch 'Regular-Ring' into Polynomial-over-Regular-Ring
Thmoas-Guan Feb 18, 2026
1c075db
fix
Thmoas-Guan Feb 18, 2026
dcbf52a
Merge branch 'Regular-Local-Ring-Def' into Regular-Local-Ring
Thmoas-Guan Feb 18, 2026
5919bb3
fix
Thmoas-Guan Feb 18, 2026
25299d9
Merge branch 'Regular-Local-Ring' into maximal-CM-module
Thmoas-Guan Feb 18, 2026
5b1bf99
Merge branch 'definition-of-Cohen-Macaulay' into maximal-CM-module
Thmoas-Guan Feb 18, 2026
2000328
fix
Thmoas-Guan Feb 18, 2026
80ad60e
Merge branch 'maximal-CM-module' into finite-projective-dimension-of-…
Thmoas-Guan Feb 18, 2026
6c933d5
Merge branch 'mbkybky/AuslanderBuchsbaum' into finite-projective-dime…
Thmoas-Guan Feb 18, 2026
eb3051e
fix
Thmoas-Guan Feb 18, 2026
56ecc4c
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Feb 19, 2026
fbef5b2
Merge branch 'master' into Global-Dimension
Thmoas-Guan Feb 19, 2026
0704aa8
Merge branch 'master' into projective-dimension-eq-sup-localization'
Thmoas-Guan Feb 19, 2026
6ac739e
Merge branch 'master' into global-dimension-eq-sup-localization
Thmoas-Guan Feb 19, 2026
f392e4d
fix
Thmoas-Guan Feb 19, 2026
68afe0e
Merge branch 'category-version-Baer-criterion' into Global-Dimension
Thmoas-Guan Feb 19, 2026
686f569
fix doc
Thmoas-Guan Feb 19, 2026
21395ac
fix
Thmoas-Guan Feb 19, 2026
f91bf7c
Merge branch 'Global-Dimension' into global-dimension-eq-sup-localiza…
Thmoas-Guan Feb 19, 2026
919ba90
Merge branch 'projective-dimension-eq-sup-localization'' into global-…
Thmoas-Guan Feb 19, 2026
dca27ba
Merge branch 'finite-projective-dimension-of-regular' into Global-Dim…
Thmoas-Guan Feb 19, 2026
ea53f6b
Merge branch 'Global-Dimension' into Global-Dimension-of-Regular-Loca…
Thmoas-Guan Feb 19, 2026
94583a8
Merge branch 'Global-Dimension-of-Regular-Local-Ring' into Global-Dim…
Thmoas-Guan Feb 19, 2026
cd42302
Merge branch 'global-dimension-eq-sup-localization' into Global-Dimen…
Thmoas-Guan Feb 19, 2026
731ac8b
Merge branch 'Global-Dimension-of-Regular-Ring' into Hilbert's-Syzygy…
Thmoas-Guan Feb 19, 2026
d8c547c
Merge branch 'Polynomial-over-Regular-Ring' into Hilbert's-Syzygy-The…
Thmoas-Guan Feb 19, 2026
c0d6e13
fix
Thmoas-Guan Feb 19, 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
14 changes: 14 additions & 0 deletions Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ public import Mathlib.Algebra.Category.ModuleCat.AB
public import Mathlib.Algebra.Category.ModuleCat.Abelian
public import Mathlib.Algebra.Category.ModuleCat.Adjunctions
public import Mathlib.Algebra.Category.ModuleCat.Algebra
public import Mathlib.Algebra.Category.ModuleCat.Baer
public import Mathlib.Algebra.Category.ModuleCat.Basic
public import Mathlib.Algebra.Category.ModuleCat.Biproducts
public import Mathlib.Algebra.Category.ModuleCat.ChangeOfRings
Expand Down Expand Up @@ -6037,6 +6038,8 @@ public import Mathlib.RingTheory.Coalgebra.Hom
public import Mathlib.RingTheory.Coalgebra.MonoidAlgebra
public import Mathlib.RingTheory.Coalgebra.MulOpposite
public import Mathlib.RingTheory.Coalgebra.TensorProduct
public import Mathlib.RingTheory.CohenMacaulay.Basic
public import Mathlib.RingTheory.CohenMacaulay.Maximal
public import Mathlib.RingTheory.Complex
public import Mathlib.RingTheory.Conductor
public import Mathlib.RingTheory.Congruence.Basic
Expand Down Expand Up @@ -6139,6 +6142,7 @@ 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.GlobalDimension
public import Mathlib.RingTheory.GradedAlgebra.Basic
public import Mathlib.RingTheory.GradedAlgebra.FiniteType
public import Mathlib.RingTheory.GradedAlgebra.Homogeneous.Ideal
Expand Down Expand Up @@ -6259,6 +6263,7 @@ public import Mathlib.RingTheory.LocalProperties.Basic
public import Mathlib.RingTheory.LocalProperties.Exactness
public import Mathlib.RingTheory.LocalProperties.IntegrallyClosed
public import Mathlib.RingTheory.LocalProperties.Projective
public import Mathlib.RingTheory.LocalProperties.ProjectiveDimension
public import Mathlib.RingTheory.LocalProperties.Reduced
public import Mathlib.RingTheory.LocalProperties.Semilocal
public import Mathlib.RingTheory.LocalProperties.Submodule
Expand Down Expand Up @@ -6450,11 +6455,20 @@ public import Mathlib.RingTheory.QuasiFinite.Weakly
public import Mathlib.RingTheory.QuotSMulTop
public import Mathlib.RingTheory.Radical
public import Mathlib.RingTheory.ReesAlgebra
public import Mathlib.RingTheory.Regular.AuslanderBuchsbaum
public import Mathlib.RingTheory.Regular.Category
public import Mathlib.RingTheory.Regular.Depth
public import Mathlib.RingTheory.Regular.Flat
public import Mathlib.RingTheory.Regular.IsSMulRegular
public import Mathlib.RingTheory.Regular.Ischebeck
public import Mathlib.RingTheory.Regular.RegularSequence
public import Mathlib.RingTheory.RegularLocalRing.Basic
public import Mathlib.RingTheory.RegularLocalRing.Defs
public import Mathlib.RingTheory.RegularLocalRing.GlobalDimension
public import Mathlib.RingTheory.RegularLocalRing.RegularRing.Basic
public import Mathlib.RingTheory.RegularLocalRing.RegularRing.GlobalDimension
public import Mathlib.RingTheory.RegularLocalRing.RegularRing.Polynomial
public import Mathlib.RingTheory.RegularLocalRing.RegularRing.Syzygy
public import Mathlib.RingTheory.RingHom.Bijective
public import Mathlib.RingTheory.RingHom.EssFiniteType
public import Mathlib.RingTheory.RingHom.Etale
Expand Down
133 changes: 133 additions & 0 deletions Mathlib/Algebra/Category/ModuleCat/Baer.lean
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
/-
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.Grp.Zero
public import Mathlib.Algebra.Category.ModuleCat.EnoughInjectives
public import Mathlib.Algebra.Category.ModuleCat.Ext.DimensionShifting
public import Mathlib.Algebra.Category.ModuleCat.Projective
public import Mathlib.Algebra.Homology.DerivedCategory.Ext.EnoughInjectives
public import Mathlib.Algebra.Homology.DerivedCategory.Ext.EnoughProjectives
public import Mathlib.Algebra.Homology.ShortComplex.ModuleCat
public import Mathlib.CategoryTheory.Abelian.Injective.Resolution
public import Mathlib.RingTheory.Ideal.Quotient.Operations

/-!
# Category Language Baer Criterion
-/

@[expose] public section

universe u u' v v'

variable {R : Type u} [CommRing R]

open CategoryTheory Abelian

section

set_option backward.isDefEq.respectTransparency false in
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
let Sf := (Shrink.linearEquiv.{v} R R).symm.toLinearMap.comp
(I.subtype.comp (Shrink.linearEquiv.{v} R I).toLinearMap)
let Sg := (Shrink.linearEquiv.{v} R (R ⧸ I)).symm.toLinearMap.comp
((Ideal.Quotient.mkₐ R I).toLinearMap.comp (Shrink.linearEquiv.{v} R R).toLinearMap)
have exac : Function.Exact Sf Sg := by
intro x
simp only [LinearMap.coe_comp, LinearEquiv.coe_coe, AlgHom.coe_toLinearMap,
Ideal.Quotient.mkₐ_eq_mk, Function.comp_apply, EmbeddingLike.map_eq_zero_iff,
Submodule.coe_subtype, Set.mem_range, Ideal.Quotient.eq_zero_iff_mem, Sg, Sf]
refine ⟨fun h ↦ ⟨(equivShrink I) ⟨_, h⟩, by simp⟩, fun ⟨y, hy⟩ ↦ by simp [← hy]⟩
have inj : Function.Injective Sf := by simpa [Sf] using (Shrink.linearEquiv R I).injective
have surj : Function.Surjective Sg := by simpa [Sg] using Ideal.Quotient.mk_surjective
let S : ShortComplex (ModuleCat.{v} R) := {
f := ModuleCat.ofHom Sf
g := ModuleCat.ofHom Sg
zero := by
ext x
simp [exac.apply_apply_eq_zero] }
have S_exact : S.ShortExact := {
exact := (ShortComplex.ShortExact.moduleCat_exact_iff_function_exact _).mpr exac
mono_f := (ModuleCat.mono_iff_injective _).mpr inj
epi_g := (ModuleCat.epi_iff_surjective _).mpr surj }
have : Subsingleton (Ext (ModuleCat.of R (Shrink.{v} (R ⧸ I))) M 1) ↔
Function.Surjective ((Ext.mk₀ S.f).precomp M (add_zero 0)) := by
apply Iff.trans _ ((Ext.contravariant_sequence_exact₁' S_exact M 0 1 rfl).epi_f_iff.symm.trans
(AddCommGrpCat.epi_iff_surjective _))
refine ⟨fun h ↦ ((@AddCommGrpCat.isZero_of_subsingleton _ h).eq_zero_of_tgt _), fun h ↦ ?_⟩
exact AddCommGrpCat.subsingleton_of_isZero ((Ext.contravariant_sequence_exact₃' S_exact M 0 1
rfl).isZero_X₂ h ((@AddCommGrpCat.isZero_of_subsingleton _
(Ext.subsingleton_of_projective S.X₂ M 0)).eq_zero_of_tgt _))
apply this.trans ⟨fun h ↦ fun g ↦ ?_, fun h ↦ fun e ↦ ?_⟩
· let f := g.comp (Shrink.linearEquiv R I).toLinearMap
rcases h (Ext.mk₀ (ModuleCat.ofHom f)) with ⟨f', hf'⟩
rw [Ext.bilinearComp_apply_apply, ← Ext.mk₀_addEquiv₀_apply f', Ext.mk₀_comp_mk₀] at hf'
have eqcomp := congrArg ModuleCat.Hom.hom ((Ext.mk₀_bijective _ _).1 hf')
simp only [← LinearMap.comp_assoc, ModuleCat.hom_comp, ModuleCat.hom_ofHom,
LinearEquiv.eq_comp_toLinearMap_iff, S, Sf, f] at eqcomp
use (ModuleCat.Hom.hom (Ext.addEquiv₀ f')).comp (Shrink.linearEquiv R R).symm.toLinearMap
intro x hx
simp only [LinearMap.coe_comp, Function.comp_apply, ← eqcomp, LinearEquiv.coe_coe,
Submodule.coe_subtype]
rfl
· rcases h ((Ext.addEquiv₀ e).hom.comp (Shrink.linearEquiv R I).symm.toLinearMap) with ⟨g', hg'⟩
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
have eq : (Shrink.linearEquiv R R) (Sf x) = ((Shrink.linearEquiv R I) x).1 :=
(Shrink.linearEquiv R R).apply_symm_apply _
simp only [ModuleCat.hom_comp, ModuleCat.hom_ofHom, LinearMap.coe_comp, LinearEquiv.coe_coe,
Function.comp_apply, S, eq, hg' _ ((Shrink.linearEquiv R I) x).2]
exact congrArg _ ((Shrink.linearEquiv R I).symm_apply_apply _)

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)

open Limits in
lemma ext_subsingleton_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))) :
∀ N : ModuleCat.{v} R, Subsingleton (Ext N M (n + 1)) := by
induction n generalizing M
· have : Injective M := injective_of_subsingleton_ext_quotient_one M h
intro N
exact subsingleton_of_forall_eq 0 (fun e ↦ Ext.eq_zero_of_injective e)
· rename_i n ih
let ei : EnoughInjectives (ModuleCat R) := inferInstance
rcases ei.1 M with ⟨ip⟩
let S := ip.shortComplex
have (N : ModuleCat R) : Subsingleton (Ext N M (n + 2)) ↔
Subsingleton (Ext N (cokernel ip.3) (n + 1)) := by
let _ := Ext.subsingleton_of_injective N S.X₂
have := (Ext.covariantSequence_exact N ip.shortExact_shortComplex (n + 1) (n + 2)
rfl).isIso_map' 1 (by decide) ((AddCommGrpCat.of _).isZero_of_subsingleton.eq_zero_of_src _)
((AddCommGrpCat.of _).isZero_of_subsingleton.eq_zero_of_tgt _)
exact (@asIso _ _ _ _ _ this).addCommGroupIsoToAddEquiv.subsingleton_congr.symm
simp only [this] at h ⊢
exact ih (cokernel ip.3) h

lemma ext_subsingleton_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)) :
∀ N : ModuleCat.{v} R, Subsingleton (Ext N M n) := by
match n with
| 0 =>
let e₀ := (Shrink.linearEquiv R (R ⧸ (⊥ : Ideal R))).trans
(AlgEquiv.quotientBot R R).toLinearEquiv
have := (Ext.homEquiv₀.subsingleton_congr.mp (h ⊥))
rw [ModuleCat.homAddEquiv.subsingleton_congr,
((e₀.congrLeft M R).trans (LinearMap.ringLmapEquivSelf R R M)).subsingleton_congr,
← ModuleCat.isZero_iff_subsingleton] at this
intro N
rw [Ext.homEquiv₀.subsingleton_congr]
exact subsingleton_of_forall_eq 0 (fun y ↦ Limits.IsZero.eq_zero_of_tgt this y)
| n + 1 => exact ext_subsingleton_of_quotients' M n h

end
15 changes: 15 additions & 0 deletions Mathlib/Algebra/Module/SpanRank.lean
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Authors: Wanyi He, Jiedong Jiang, Xuchun Li, Christian Merten, Jingting Wang, An
module

public import Mathlib.Data.ENat.Lattice
public import Mathlib.LinearAlgebra.Dimension.Free
public import Mathlib.LinearAlgebra.Dimension.StrongRankCondition
public import Mathlib.RingTheory.Finiteness.Ideal

Expand Down Expand Up @@ -128,6 +129,9 @@ lemma fg_iff_spanRank_eq_spanFinrank {p : Submodule R M} : p.spanRank = p.spanFi
rw [spanFinrank, ← spanRank_finite_iff_fg, eq_comm]
exact cast_toNat_eq_iff_lt_aleph0

lemma FG.spanRank_eq_spanFinrank {p : Submodule R M} (fg : p.FG) : p.spanRank = p.spanFinrank :=
fg_iff_spanRank_eq_spanFinrank.mpr fg

lemma spanRank_span_le_card (s : Set M) : (Submodule.span R s).spanRank ≤ #s := by
rw [spanRank]
let s' : {s1 : Set M // span R s1 = span R s} := ⟨s, rfl⟩
Expand Down Expand Up @@ -363,6 +367,17 @@ theorem Submodule.rank_eq_spanRank_of_free [Module.Free R M] [StrongRankConditio
rw [← Basis.mk_eq_rank'' B, ← Basis.mk_eq_spanRank B, ← Cardinal.lift_id #(Set.range B),
Cardinal.mk_range_eq_of_injective B.injective, Cardinal.lift_id _]

lemma Module.finrank_eq_spanFinrank_of_free [StrongRankCondition R]
(M : Type*) [AddCommGroup M] [Module R M] [Module.Free R M] :
Module.finrank R M = (⊤ : Submodule R M).spanFinrank := by
by_cases fin : Module.Finite R M
· have : Submodule.spanFinrank (⊤ : Submodule R M) = Module.rank R M := by
rw [← Submodule.fg_iff_spanRank_eq_spanFinrank.mpr fin.1,
Submodule.rank_eq_spanRank_of_free]
simpa only [← Module.finrank_eq_rank, Nat.cast_inj] using this.symm
· have fin' : ¬ (⊤ : Submodule R M).FG := Not.intro (fun h ↦ fin ⟨h⟩)
rw [Module.finrank_of_not_finite fin, Submodule.spanFinrank_of_not_fg fin']

theorem Submodule.rank_le_spanRank [StrongRankCondition R] :
Module.rank R M ≤ (⊤ : Submodule R M).spanRank := by
rw [Module.rank, Submodule.spanRank]
Expand Down
4 changes: 4 additions & 0 deletions Mathlib/Algebra/Module/Torsion/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,10 @@ def submodule_torsionBy_orderIso (a : R) :
left_inv := by intro; ext; simp [restrictScalarsEmbedding]
right_inv := by intro; ext; simp [restrictScalarsEmbedding] }

instance (M : Type*) [AddCommGroup M] [Module R M] [Module.Finite R M] (I : Ideal R) :
Module.Finite (R ⧸ I) (M ⧸ I • (⊤ : Submodule R M)) :=
Module.Finite.of_restrictScalars_finite R _ _

end Submodule

end NeedsGroup
Expand Down
44 changes: 34 additions & 10 deletions Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean
Original file line number Diff line number Diff line change
Expand Up @@ -118,14 +118,30 @@ theorem add_eq_coe :
lemma add_coe_eq_top_iff : x + b = ⊤ ↔ x = ⊤ := by simp
lemma coe_add_eq_top_iff : a + y = ⊤ ↔ y = ⊤ := by simp

lemma _root_.IsAddLeftRegular.withTop (ha : IsAddLeftRegular a) :
IsAddLeftRegular (a : WithTop α) := by
rintro (_ | b) (_ | c) <;> simp [none_eq_top, some_eq_coe, ← coe_add, ha.eq_iff]

lemma _root_.IsAddRightRegular.withTop (ha : IsAddRightRegular a) :
IsAddRightRegular (a : WithTop α) := by
rintro (_ | b) (_ | c) <;> simp [none_eq_top, some_eq_coe, ← coe_add, ha.eq_iff]

lemma _root_.AddLECancellable.withTop [LE α] (ha : AddLECancellable a) :
AddLECancellable (a : WithTop α) := by
rintro (_ | b) (_ | c)
· simp [none_eq_top]
· simp [none_eq_top]
· simp [some_eq_coe, ← coe_add, none_eq_top]
· simpa [none_eq_top, some_eq_coe, ← coe_add] using fun a ↦ ha a

lemma add_right_inj [IsRightCancelAdd α] (hz : z ≠ ⊤) : x + z = y + z ↔ x = y := by
lift z to α using hz; cases x <;> cases y <;> simp [← coe_add]
lift z to α using hz; exact (IsAddRightRegular.all _).withTop.eq_iff

lemma add_right_cancel [IsRightCancelAdd α] (hz : z ≠ ⊤) (h : x + z = y + z) : x = y :=
(WithTop.add_right_inj hz).1 h

lemma add_left_inj [IsLeftCancelAdd α] (hx : x ≠ ⊤) : x + y = x + z ↔ y = z := by
lift x to α using hx; cases y <;> cases z <;> simp [← coe_add]
lift x to α using hx; exact (IsAddLeftRegular.all _).withTop.eq_iff

lemma add_left_cancel [IsLeftCancelAdd α] (hx : x ≠ ⊤) (h : x + y = x + z) : y = z :=
(WithTop.add_left_inj hx).1 h
Expand Down Expand Up @@ -464,6 +480,22 @@ theorem add_eq_coe :
lemma add_coe_eq_bot_iff : x + b = ⊥ ↔ x = ⊥ := by simp
lemma coe_add_eq_bot_iff : a + y = ⊥ ↔ y = ⊥ := by simp

lemma _root_.IsAddLeftRegular.withBot (ha : IsAddLeftRegular a) :
IsAddLeftRegular (a : WithBot α) := by
rintro (_ | b) (_ | c) <;> simp [none_eq_bot, some_eq_coe, ← coe_add]; simpa using @ha _ _

lemma _root_.IsAddRightRegular.withBot (ha : IsAddRightRegular a) :
IsAddRightRegular (a : WithBot α) := by
rintro (_ | b) (_ | c) <;> simp [none_eq_bot, some_eq_coe, ← coe_add]; simpa using @ha _ _

lemma _root_.AddLECancellable.withBot [LE α] (ha : AddLECancellable a) :
AddLECancellable (a : WithBot α) := by
rintro (_ | b) (_ | c)
· simp [none_eq_bot]
· simp [none_eq_bot]
· simp [some_eq_coe, ← coe_add, none_eq_bot]
· simpa [none_eq_bot, some_eq_coe, ← coe_add] using fun a ↦ ha a

lemma add_right_inj [IsRightCancelAdd α] (hz : z ≠ ⊥) : x + z = y + z ↔ x = y := by
lift z to α using hz; cases x <;> cases y <;> simp [← coe_add]

Expand Down Expand Up @@ -674,12 +706,4 @@ protected def _root_.AddMonoidHom.withBotMap {M N : Type*} [AddZeroClass M] [Add
(f : M →+ N) : WithBot M →+ WithBot N :=
{ ZeroHom.withBotMap f.toZeroHom, AddHom.withBotMap f.toAddHom with toFun := WithBot.map f }

-- instance orderedAddCommMonoid [OrderedAddCommMonoid α] : OrderedAddCommMonoid (WithBot α) :=
-- { WithBot.partialOrder, WithBot.addCommMonoid with
-- add_le_add_left := fun _ _ h c => add_le_add_left h c }
--
-- instance linearOrderedAddCommMonoid [LinearOrderedAddCommMonoid α] :
-- LinearOrderedAddCommMonoid (WithBot α) :=
-- { WithBot.linearOrder, WithBot.orderedAddCommMonoid with }

end WithBot
24 changes: 24 additions & 0 deletions Mathlib/Data/ENat/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -611,3 +611,27 @@ lemma WithBot.add_one_le_iff {n : ℕ} {m : WithBot ℕ∞} : n + 1 ≤ m ↔ n
· simp
· rw [WithBot.coe_le_coe, ENat.coe_add, ENat.coe_one, ENat.add_one_le_iff (ENat.coe_ne_top n),
← WithBot.coe_lt_coe, WithBot.coe_natCast]

lemma WithBot.add_natCast_cancel {a b : WithBot ℕ∞} {c : ℕ} : a + c = b + c ↔ a = b :=
(IsAddRightRegular.all c).withTop.withBot.eq_iff

lemma WithBot.add_one_cancel {a b : WithBot ℕ∞} : a + 1 = b + 1 ↔ a = b :=
(IsAddRightRegular.all 1).withTop.withBot.eq_iff

lemma WithBot.natCast_add_cancel {a b : WithBot ℕ∞} {c : ℕ} : c + a = c + b ↔ a = b :=
(IsAddLeftRegular.all c).withTop.withBot.eq_iff

lemma WithBot.one_add_cancel {a b : WithBot ℕ∞} : 1 + a = 1 + b ↔ a = b :=
(IsAddLeftRegular.all 1).withTop.withBot.eq_iff

lemma WithBot.add_le_add_natCast_right_iff {a b : WithBot ℕ∞} {c : ℕ} : a + c ≤ b + c ↔ a ≤ b :=
(Contravariant.AddLECancellable (a := c)).withTop.withBot.add_le_add_iff_right

lemma WithBot.add_le_add_one_right_iff {a b : WithBot ℕ∞} : a + 1 ≤ b + 1 ↔ a ≤ b :=
WithBot.add_le_add_natCast_right_iff

lemma WithBot.add_le_add_natCast_left_iff {a b : WithBot ℕ∞} {c : ℕ} : c + a ≤ c + b ↔ a ≤ b := by
rw [add_comm _ a, add_comm _ b, WithBot.add_le_add_natCast_right_iff]

lemma WithBot.add_le_add_one_left_iff {a b : WithBot ℕ∞} : 1 + a ≤ 1 + b ↔ a ≤ b :=
WithBot.add_le_add_natCast_left_iff
5 changes: 5 additions & 0 deletions Mathlib/LinearAlgebra/Span/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -875,3 +875,8 @@ theorem coord_apply_smul (y : Submodule.span R ({x} : Set M)) : coord R M x h y
Subtype.ext_iff.1 <| (toSpanNonzeroSingleton R M x h).apply_symm_apply _

end LinearEquiv

lemma Submodule.span_val_image_eq_iff {R M : Type*} [CommRing R] [AddCommGroup M] [Module R M]
(p : Submodule R M) (s : Set p) :
Submodule.span R (Subtype.val '' s) = p ↔ Submodule.span R s = ⊤ := by
simp [← (Submodule.map_injective_of_injective p.injective_subtype).eq_iff, Submodule.map_span]
Loading
Loading