Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1384 commits
Select commit Hold shift + click to select a range
92cdc5d
Merge branch 'Dimension-Shifting-Tools' into category-version-Baer-cr…
Thmoas-Guan Dec 5, 2025
5c1590b
golf
Thmoas-Guan Dec 5, 2025
7279093
separate lemma out
Thmoas-Guan Dec 5, 2025
ea3e9a2
Merge branch 'category-version-Baer-criterion' into Global-Dimension
Thmoas-Guan Dec 5, 2025
bd16445
fix universe and add injective dimension related results
Thmoas-Guan Dec 5, 2025
f032f17
Merge branch 'Ischebeck-theorem' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Dec 5, 2025
58ed5df
Merge branch 'mbkybky/AuslanderBuchsbaum' into Auslander-Buchsbaum-Se…
Thmoas-Guan Dec 5, 2025
6238eb4
Merge branch 'Regular-Local-Ring' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Dec 5, 2025
304a465
Merge branch 'Global-Dimension' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Dec 5, 2025
f515cd6
fix naming and variable
Thmoas-Guan Dec 8, 2025
813dc6d
fix docstring
Thmoas-Guan Dec 8, 2025
750a723
Merge branch 'rees-theorem-for-depth'' into definition-of-depth
Thmoas-Guan Dec 8, 2025
a6c9031
fix
Thmoas-Guan Dec 8, 2025
2df288c
fix doc and small golf
Thmoas-Guan Dec 9, 2025
8ffa4f6
Merge branch 'rees-theorem-for-depth'' into definition-of-depth
Thmoas-Guan Dec 9, 2025
84e0db8
fix universe arrangement
Thmoas-Guan Dec 9, 2025
620e2a4
Merge branch 'definition-of-depth' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Dec 9, 2025
e6bbaac
small golf
Thmoas-Guan Dec 9, 2025
f401f5e
small golf
Thmoas-Guan Dec 9, 2025
0477c46
add general version
Thmoas-Guan Dec 9, 2025
c0a5782
add monotone version
Thmoas-Guan Dec 9, 2025
69e7fba
fix naming
Thmoas-Guan Dec 15, 2025
8307e25
Merge branch 'rees-theorem-for-depth'' into definition-of-depth
Thmoas-Guan Dec 15, 2025
d50557e
fix
Thmoas-Guan Dec 15, 2025
81ee1d0
fix induction syntax
Thmoas-Guan Dec 16, 2025
36b66b3
golf exists_isRegular_of_exists_subsingleton_ext
Thmoas-Guan Dec 16, 2025
0f165c8
separate a non-degenerate lemma
Thmoas-Guan Dec 16, 2025
882e83b
golf ext_subsingleton_of_exists_isRegular
Thmoas-Guan Dec 16, 2025
63606c8
fix universe
Thmoas-Guan Dec 16, 2025
166e3d3
golf Rees theorem
Thmoas-Guan Dec 16, 2025
9a8b8c6
Merge branch 'rees-theorem-for-depth'' into definition-of-depth
Thmoas-Guan Dec 16, 2025
3faeb1f
generalize some lemma
Thmoas-Guan Dec 16, 2025
d896811
add head of long exact sequence of Ext
Thmoas-Guan Dec 16, 2025
f529cfe
fix variable
Thmoas-Guan Dec 16, 2025
d723824
Merge branch 'master' into rees-theorem-for-depth'
Thmoas-Guan Dec 16, 2025
18855ad
Merge branch 'master' into definition-of-depth
Thmoas-Guan Dec 16, 2025
ef7bb4f
fix
Thmoas-Guan Dec 16, 2025
524df01
Merge branch 'definition-of-depth' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Dec 17, 2025
31582f0
Merge branch 'master' into Dimension-Shifting-Tools
Thmoas-Guan Dec 17, 2025
01071c0
refactor classical choose
Thmoas-Guan Dec 17, 2025
2988922
Merge branch 'master' into Ext-finitely-generated
Thmoas-Guan Dec 17, 2025
979c652
Merge branch 'definition-of-depth' into Ischebeck-theorem
Thmoas-Guan Dec 17, 2025
253a61e
golf
Thmoas-Guan Dec 17, 2025
48dfa67
separate injective
Thmoas-Guan Dec 17, 2025
1ad2a64
fix naming
Thmoas-Guan Dec 17, 2025
4834264
Merge branch 'master' into head-of-long-exact-sequence-of-Ext
Thmoas-Guan Dec 18, 2025
a18142e
Merge branch 'master' into rees-theorem-for-depth'
Thmoas-Guan Dec 18, 2025
5573a3b
Merge branch 'master' into definition-of-depth
Thmoas-Guan Dec 18, 2025
65abe6c
Merge branch 'master' into Dimension-Shifting-Tools
Thmoas-Guan Dec 18, 2025
9e2dca0
Merge branch 'master' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Dec 18, 2025
e5ce3db
Merge branch 'master' into Ext-finitely-generated
Thmoas-Guan Dec 18, 2025
14779d2
Merge branch 'master' into Ischebeck-theorem
Thmoas-Guan Dec 18, 2025
9190fa9
Merge branch 'master' into WithBot-ENat-lemmas
Thmoas-Guan Dec 18, 2025
5ae2b50
Merge branch 'master' into Regular-Local-Ring-Def
Thmoas-Guan Dec 18, 2025
d961a0a
Merge branch 'master' into Regular-Local-Ring
Thmoas-Guan Dec 18, 2025
4a82bb7
fix
Thmoas-Guan Dec 18, 2025
619e341
Merge branch 'head-of-long-exact-sequence-of-Ext' into definition-of-…
Thmoas-Guan Dec 18, 2025
ec3a16a
remove duplicated
Thmoas-Guan Dec 18, 2025
747fac1
Merge branch 'definition-of-depth' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Dec 18, 2025
83faa18
fix
Thmoas-Guan Dec 18, 2025
0f252aa
Merge branch 'definition-of-depth' into Ischebeck-theorem
Thmoas-Guan Dec 18, 2025
a9e4125
Merge branch 'master' into category-version-Baer-criterion
Thmoas-Guan Dec 18, 2025
e33e90f
Merge branch 'master' into Global-Dimension
Thmoas-Guan Dec 18, 2025
3700bc7
Merge branch 'Global-Dimension' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Dec 18, 2025
e63fa7e
Merge branch 'Regular-Local-Ring' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Dec 18, 2025
5cce0ff
Merge branch 'Ischebeck-theorem' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Dec 18, 2025
720d1f9
Merge branch 'mbkybky/AuslanderBuchsbaum' into Auslander-Buchsbaum-Se…
Thmoas-Guan Dec 18, 2025
d6fcd59
fix missing space
Thmoas-Guan Dec 22, 2025
6bfc5ee
Merge branch 'WithBot-ENat-lemmas' into Regular-Local-Ring
Thmoas-Guan Dec 22, 2025
e01b43f
Merge branch 'Regular-Local-Ring' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Dec 22, 2025
8b808fb
fix variable
Thmoas-Guan Dec 28, 2025
5dfc265
golf
Thmoas-Guan Dec 28, 2025
c5b8261
Merge branch 'head-of-long-exact-sequence-of-Ext' into definition-of-…
Thmoas-Guan Dec 28, 2025
9b7c3ca
fix
Thmoas-Guan Dec 28, 2025
87686c7
Merge branch 'definition-of-depth' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Dec 28, 2025
024e87b
fix
Thmoas-Guan Dec 28, 2025
38c7704
Merge branch 'definition-of-depth' into Ischebeck-theorem
Thmoas-Guan Dec 28, 2025
b8ec79b
Merge branch 'Ischebeck-theorem' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Dec 28, 2025
28fb438
Merge branch 'mbkybky/AuslanderBuchsbaum' into Auslander-Buchsbaum-Se…
Thmoas-Guan Dec 28, 2025
e967fc5
Merge branch 'master' into Dimension-Shifting-Tools
Thmoas-Guan Dec 29, 2025
08062ba
move some decls
Thmoas-Guan Dec 29, 2025
dcd1842
Merge branch 'Dimension-Shifting-Tools' into category-version-Baer-cr…
Thmoas-Guan Dec 29, 2025
b911ace
fix
Thmoas-Guan Dec 29, 2025
ee2dbfc
Merge branch 'Dimension-Shifting-Tools' into Ext-finitely-generated
Thmoas-Guan Dec 29, 2025
c26a03c
Merge branch 'category-version-Baer-criterion' into Global-Dimension
Thmoas-Guan Dec 29, 2025
9c9f93b
Merge branch 'master' into WithBot-ENat-lemmas
Thmoas-Guan Dec 29, 2025
941f207
Merge branch 'master' into rees-theorem-for-depth'
Thmoas-Guan Dec 29, 2025
98564d5
Merge branch 'master' into definition-of-depth
Thmoas-Guan Dec 29, 2025
b0cb05e
Merge branch 'master' into mbkybky/AuslanderBuchsbaum
Thmoas-Guan Dec 29, 2025
9fd3854
Merge branch 'master' into Ischebeck-theorem
Thmoas-Guan Dec 29, 2025
078853c
fix
Thmoas-Guan Dec 29, 2025
de321c1
golf
YaelDillies Jan 1, 2026
050d5ae
remove unused intermediate lemma
Thmoas-Guan Jan 5, 2026
c220224
Merge branch 'master' into Regular-Local-Ring-Def
Thmoas-Guan Jan 5, 2026
e103dc9
move lemma and golf
Thmoas-Guan Jan 5, 2026
c4d888a
Merge branch 'Regular-Local-Ring-Def' into Regular-Local-Ring
Thmoas-Guan Jan 5, 2026
7936fc4
fix condition
Thmoas-Guan Jan 5, 2026
bfe3a88
fix
Thmoas-Guan Jan 5, 2026
a1190ab
Merge branch 'WithBot-ENat-lemmas' into Regular-Local-Ring
Thmoas-Guan Jan 5, 2026
58c27f5
use AddLECancellable
Thmoas-Guan Jan 6, 2026
9fed251
Merge branch 'WithBot-ENat-lemmas' into Regular-Local-Ring
Thmoas-Guan Jan 6, 2026
21e7b00
Merge branch 'Ischebeck-theorem' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Jan 6, 2026
3ff78ea
Merge branch 'mbkybky/AuslanderBuchsbaum' into Auslander-Buchsbaum-Se…
Thmoas-Guan Jan 6, 2026
fd06fea
Merge branch 'Regular-Local-Ring' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Jan 6, 2026
880981b
Merge branch 'Global-Dimension' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Jan 6, 2026
2cf20d1
fix
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
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
da78e43
Merge branch 'master' into Ischebeck-theorem
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
1fea94f
Merge branch 'definition-of-depth' into Ischebeck-theorem
Thmoas-Guan Jan 6, 2026
34bc2e1
golf
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
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
7868aeb
Merge branch 'master' into Regular-Local-Ring-Def
Thmoas-Guan Jan 6, 2026
215145b
Merge branch 'WithBot-ENat-lemmas' into Regular-Local-Ring
Thmoas-Guan Jan 6, 2026
fd53996
Merge branch 'Ischebeck-theorem' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Jan 6, 2026
8555c26
Merge branch 'mbkybky/AuslanderBuchsbaum' into Auslander-Buchsbaum-Se…
Thmoas-Guan Jan 6, 2026
0394402
Merge branch 'Regular-Local-Ring' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Jan 6, 2026
fc52b5e
Merge branch 'category-version-Baer-criterion' into Global-Dimension
Thmoas-Guan Jan 6, 2026
a98e8da
Merge branch 'Global-Dimension' into Auslander-Buchsbaum-Serre-Aux
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
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
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
50f682c
Merge branch 'master' into Ischebeck-theorem
Thmoas-Guan Jan 25, 2026
39f85f6
Merge branch 'Ext-finitely-generated' into Ischebeck-theorem
Thmoas-Guan Jan 25, 2026
1dcffea
fix
Thmoas-Guan Jan 25, 2026
5968d79
fix
Thmoas-Guan Jan 25, 2026
aa4add0
fix import
Thmoas-Guan Jan 25, 2026
46c4f36
Merge branch 'Regular-Local-Ring' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Jan 25, 2026
f3a71f3
Merge branch 'Ischebeck-theorem' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Jan 25, 2026
7ffff4e
Merge branch 'mbkybky/AuslanderBuchsbaum' into Auslander-Buchsbaum-Se…
Thmoas-Guan Jan 25, 2026
ab49188
Merge branch 'Global-Dimension' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Jan 25, 2026
ca41c93
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
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
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
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
ea0618c
Merge branch 'Ext-finitely-generated' into Ischebeck-theorem
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
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
d80e8e7
Merge branch 'Ischebeck-theorem' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Jan 28, 2026
e8c101b
Merge branch 'mbkybky/AuslanderBuchsbaum' into Auslander-Buchsbaum-Se…
Thmoas-Guan Jan 28, 2026
4d3e1e0
Merge branch 'Regular-Local-Ring' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Jan 28, 2026
c6f682e
Merge branch 'Global-Dimension' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Jan 28, 2026
90078c6
fix
Thmoas-Guan Jan 28, 2026
846c4e3
golf
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
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
88ebf95
Merge branch 'master' into Regular-Local-Ring-Def
Thmoas-Guan Feb 7, 2026
4485092
Merge branch 'master' into Regular-Local-Ring
Thmoas-Guan Feb 7, 2026
87a56cd
Merge branch 'Regular-Local-Ring' into Auslander-Buchsbaum-Serre-Aux
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
ad251a6
Merge branch 'definition-of-depth' into Ischebeck-theorem
Thmoas-Guan Feb 18, 2026
94e1699
fix
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
dcbf52a
Merge branch 'Regular-Local-Ring-Def' into Regular-Local-Ring
Thmoas-Guan Feb 18, 2026
5919bb3
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
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
1345a2b
Merge branch 'Regular-Local-Ring' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Feb 19, 2026
a3309e6
Merge branch 'Ischebeck-theorem' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Feb 19, 2026
bc5aea3
Merge branch 'mbkybky/AuslanderBuchsbaum' into Auslander-Buchsbaum-Se…
Thmoas-Guan Feb 19, 2026
e512e38
Merge branch 'Global-Dimension' into Auslander-Buchsbaum-Serre-Aux
Thmoas-Guan Feb 19, 2026
06a1205
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
7 changes: 7 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 @@ -6139,6 +6140,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 @@ -6450,11 +6452,16 @@ 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.AuslanderBuchsbaumSerre
public import Mathlib.RingTheory.RegularLocalRing.Basic
public import Mathlib.RingTheory.RegularLocalRing.Defs
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