Skip to content

Commit ff7b786

Browse files
committed
bump mathlib dependancies
1 parent f1ebfa8 commit ff7b786

17 files changed

Lines changed: 503 additions & 439 deletions

ClassificationOfSubgroups/Ch4_PGLIsoPSLOverAlgClosedField/ProjectiveGeneralLinearGroup.lean

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,7 @@ theorem mem_center_general_linear_group_iff {n : Type u} [DecidableEq n]
8989
intro hM N
9090
obtain ⟨r, rfl⟩ := hM
9191
ext i j
92-
simp [GeneralLinearGroup.coe_mul, GeneralLinearGroup.coe_mul,
93-
← coe_scalar_matrix, scalar_commute]
92+
simp
9493

9594
end Center
9695

@@ -188,10 +187,10 @@ lemma exists_SL_eq_scaled_GL_of_IsAlgClosed {n F : Type*} [hn₁ : Fintype n] [D
188187
simp [hα]
189188
obtain ⟨α, hα⟩ := hα'
190189
have det_inv_c_G_eq_one : det (α⁻¹ • G).1 = (1 : F) := by
191-
simp [← hα, inv_smul_eq_iff, Units.smul_def]
190+
simp [← hα, Units.smul_def]
192191
use α, ⟨(α⁻¹ • G), det_inv_c_G_eq_one⟩
193192
ext
194-
simp [coe]
193+
simp
195194

196195
open Function
197196

@@ -206,7 +205,7 @@ instance (n R : Type*) [Fintype n] [DecidableEq n] [CommRing R] :
206205
refine IsScalarTower.of_smul_one_mul ?_
207206
intro r g
208207
ext
209-
simp [GeneralLinearGroup.coe_mul]
208+
simp
210209

211210

212211
theorem Injective_PSL_monoidHom_PGL (n F : Type*) [hn₁ : Fintype n] [DecidableEq n]
@@ -235,7 +234,7 @@ theorem SpecialLinearGroup.toGL_inj {n : Type*} [DecidableEq n] [Fintype n] {R :
235234
[CommRing R] : Injective (@SpecialLinearGroup.toGL n _ _ R _) := by
236235
refine (injective_iff_map_eq_one SpecialLinearGroup.toGL).mpr ?_
237236
intro x hx
238-
simp [GeneralLinearGroup.ext_iff, coe] at hx
237+
simp [GeneralLinearGroup.ext_iff] at hx
239238
ext i j
240239
exact hx i j
241240

@@ -258,7 +257,7 @@ theorem ker_SL_monoidHom_PGL_eq_center (n F : Type*) [hn₁ : Fintype n] [Decida
258257
simp [mem_center_iff]
259258
intro y
260259
ext i j
261-
simp [coe, ← hr]
260+
simp [← hr]
262261
exact CommMonoid.mul_comm (y i j) r
263262

264263
theorem Surjective_PSL_monoidHom_PGL (n F : Type*) [hn₁ : Fintype n] [DecidableEq n]
@@ -274,9 +273,7 @@ theorem Surjective_PSL_monoidHom_PGL (n F : Type*) [hn₁ : Fintype n] [Decidabl
274273
suffices c⁻¹ • 1 * G = S by
275274
simp [← h]
276275
ext
277-
simp [GeneralLinearGroup.scalar,
278-
nonsing_inv_mul _ <| isUnits_det_units (SpecialLinearGroup.toGL S),
279-
← Matrix.smul_one_eq_diagonal]
276+
simp
280277
rw [← h, smul_mul_assoc, one_mul, inv_smul_eq_iff]
281278
rw [← hG, class_G_eq_class_S]
282279
-- by definition these equivalence classes are the same

ClassificationOfSubgroups/Ch5_PropertiesOfSLOverAlgClosedField/S1_SpecialMatrices.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ lemma d_eq_diagonal (δ : Fˣ) :
103103
lemma d_one_eq_one : d (1 : Fˣ) = 1 := by ext <;> simp [d]
104104

105105
@[simp]
106-
lemma d_neg_one_eq_neg_one : d (-1 : Fˣ) = -1 := by ext <;> simp [d, inv_neg_one]
106+
lemma d_neg_one_eq_neg_one : d (-1 : Fˣ) = -1 := by ext <;> simp [d]
107107

108108
@[simp]
109109
lemma neg_d_eq_d_neg (δ : Fˣ) : - d δ = d (-δ) := by ext <;> simp [d, inv_neg]

ClassificationOfSubgroups/Ch5_PropertiesOfSLOverAlgClosedField/S2_SpecialSubgroups.lean

Lines changed: 35 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ lemma diagonal_iff_upper_and_lower {M: Matrix (Fin 2) (Fin 2) F} :
8585
obtain ⟨a, b, d, hM_upper⟩ := h_upper
8686
obtain ⟨a', c, d', hM_lower⟩ := h_lower
8787
use a, d
88-
ext <;> simp [← hM_upper, ← hM_lower]
88+
ext <;> simp [← hM_upper]
8989
have : b = M 0 1 := by rw [← hM_upper]; rfl
9090
rw [this]
9191
rw [← hM_lower]
@@ -127,6 +127,10 @@ def D_iso_units (F : Type*) [Field F] : SpecialSubgroups.D F ≃* Fˣ where
127127
repeat'
128128
simp_rw [← hδ₁, ← hδ₂]
129129
simp [SpecialMatrices.d, mul_comm]
130+
@[simp]
131+
lemma d_mem_D {F : Type*} [Field F] {δ : Fˣ} : d δ ∈ D F := by
132+
use δ
133+
130134

131135
end Diagonal
132136
section Shear
@@ -175,9 +179,8 @@ lemma D_meet_S_eq_bot (F : Type*) [Field F] : D F ⊓ S F = ⊥ := by
175179
· intro h
176180
simp at h
177181
constructor
178-
· simp [h]; exact Subgroup.one_mem (D F)
179-
· simp [h]; exact Subgroup.one_mem (S F)
180-
182+
· simp [h]
183+
· simp [h]
181184
/--
182185
This is H in the notes.
183186
-/
@@ -190,7 +193,7 @@ def L (F : Type*) [Field F] : Subgroup SL(2,F) where
190193
ext
191194
· simp [d, s]
192195
· simp [d, s]
193-
· field_simp [d, s]; ring
196+
· simp [d, s]; field_simp
194197
· simp [d, s, mul_comm]
195198
one_mem' := ⟨1, 0, by simp⟩
196199
inv_mem' := by
@@ -220,12 +223,16 @@ lemma mem_L_iff_lower_triangular [DecidableEq F] {x : SL(2,F)} :
220223
have a_is_unit : IsUnit a := isUnit_of_mul_eq_one a d had
221224
have a_inv_eq_d : a⁻¹ = d := DivisionMonoid.inv_eq_of_mul a d had
222225
use a_is_unit.unit, c * a_is_unit.unit
223-
simp [SpecialMatrices.d, SpecialMatrices.s, had]
224-
ext <;> field_simp [a_inv_eq_d, had, ← hx]; exact (eq_one_div_of_mul_eq_one_right had).symm
226+
simp [SpecialMatrices.d, SpecialMatrices.s]
227+
ext <;>
228+
simp [← a_inv_eq_d, ← hx]
229+
rw [← mul_assoc]
230+
have a_ne_zero : a ≠ 0 := left_ne_zero_of_mul_eq_one had
231+
field_simp [a_ne_zero]
225232

226233
lemma S_le_L : S F ≤ L F := by
227234
rintro x ⟨σ, rfl⟩
228-
rw [L, mem_mk, Set.mem_setOf_eq]
235+
rw [L, mem_mk]
229236
use 1, σ
230237
rw [d_one_eq_one, one_mul]
231238

@@ -250,7 +257,7 @@ lemma normal_S_subgroupOf_L {F : Type*} [Field F] : ((S F).subgroupOf (L F)).Nor
250257
inv_d_eq_d_inv, mul_assoc, mul_assoc (s (-σ)), ← mul_assoc (s σ'),
251258
← mul_assoc (d δ⁻¹), ← mul_assoc (d δ⁻¹), d_eq_inv_d_inv δ,
252259
d_mul_s_mul_d_inv_eq_s, s_mul_s_eq_s_add, s_mul_s_eq_s_add]
253-
rw [S, inv_inv, neg_add_cancel_comm_assoc, mem_mk, Set.mem_setOf_eq]
260+
rw [S, inv_inv, neg_add_cancel_comm_assoc, mem_mk]
254261
use σ' * (δ : F) * (δ : F)
255262
· rintro ⟨σ', hσ'⟩
256263
rw [mem_subgroupOf]
@@ -338,23 +345,8 @@ lemma D_join_S_eq_L (F : Type*) [Field F]: D F ⊔ S F = L F := by
338345
rfl
339346

340347

341-
-- def foo {G : Type*} [Group G] (H K : Subgroup G) : (H ⊔ K :) ⧸ K ≃* H := by sorry
342348

343349

344-
-- noncomputable def pi : (L F) →* (D F) where
345-
-- toFun := fun l => ⟨d (l.property.choose), ⟨l.property.choose, rfl⟩⟩
346-
-- map_one' := by
347-
-- have d_one_in_L : d 1 * s 0 ∈ L F := ⟨1, 0, by simp⟩
348-
-- have one_eq_d_one : (⟨d 1 * s 0, d_one_in_L⟩ : L F) = 1 := by simp
349-
-- have : Exists.choose (⟨d 1 * s 0, d_one_in_L⟩ : L F).property = 1 := by sorry
350-
-- rw [← one_eq_d_one]
351-
-- ext
352-
-- · simp only [Fin.isValue, OneMemClass.coe_one, SpecialLinearGroup.coe_one, one_apply_eq]
353-
-- sorry
354-
-- · exact rfl
355-
-- · exact rfl
356-
-- · sorry
357-
-- map_mul' := by sorry
358350

359351
-- second isomorphism theorem!!!!
360352
#check QuotientGroup.quotientInfEquivProdNormalQuotient
@@ -499,15 +491,15 @@ def DW (F : Type*) [Field F] : Subgroup SL(2,F) where
499491

500492
lemma D_leq_DW : D F ≤ DW F := by
501493
rintro x ⟨δ, rfl⟩
502-
rw [DW, mem_mk, Set.mem_union, Set.mem_setOf_eq]
494+
rw [DW, mem_mk]
503495
left
504496
apply exists_apply_eq_apply
505497

506498

507499
lemma Dw_leq_DW : (D F : Set SL(2,F)) * ({w} : Set SL(2,F)) ⊆ (DW F : Set SL(2,F)) := by
508500
rintro x ⟨d', hd', w, hw, rfl⟩
509501
obtain ⟨δ, rfl⟩ := hd'
510-
rw [DW, coe_set_mk, Set.mem_union, Set.mem_setOf_eq]
502+
rw [DW, coe_set_mk]
511503
right
512504
use δ
513505
rw [Set.mem_singleton_iff] at hw
@@ -578,8 +570,7 @@ lemma Field.one_eq_neg_one_of_two_eq_zero (two_eq_zero : (2 : F) = 0) : 1 = (-1
578570
lemma SpecialLinearGroup.neg_one_eq_one_of_two_eq_zero (two_eq_zero : (2 : F) = 0) :
579571
1 = (-1 : SL(2,F)) := by
580572
ext
581-
<;> simp [Field.one_eq_neg_one_of_two_eq_zero]
582-
<;> exact Field.one_eq_neg_one_of_two_eq_zero two_eq_zero
573+
<;> simpa using Field.one_eq_neg_one_of_two_eq_zero two_eq_zero
583574

584575

585576

@@ -626,7 +617,7 @@ lemma card_Z_eq_two_of_two_ne_zero [NeZero (2 : F)]: Nat.card (Z F) = 2 := by
626617
use 1, ⟨-1, neg_one_mem_Z⟩
627618
split_ands
628619
· intro h
629-
rw [Subtype.ext_val_iff] at h
620+
rw [Subtype.ext_iff] at h
630621
-- -1 ≠ 1 for characteristic different to 2
631622
simp at h
632623
· rw [Set.eq_univ_iff_forall]
@@ -703,7 +694,7 @@ instance IsCyclic_Z : IsCyclic (Z F) := by
703694
rw [card_Z_eq_one_of_two_eq_zero two_eq_zero]
704695
simp only [orderOf_eq_one_iff, exists_eq]
705696

706-
instance IsCommutative_Z : IsCommutative (Z F) := inferInstance
697+
instance IsCommutative_Z : IsMulCommutative (Z F) := inferInstance
707698

708699

709700
namespace IsPGroup
@@ -834,14 +825,14 @@ lemma S_mul_Z_subset_SZ :
834825

835826
section CommutativeSubgroups
836827

837-
lemma IsCommutative_iff {G : Type*} [Group G] (H : Subgroup G) :
838-
IsCommutative H ↔ ∀ x y : H, x * y = y * x := by
828+
lemma IsMulCommutative_iff {G : Type*} [Group G] {H : Subgroup G} :
829+
IsMulCommutative H ↔ ∀ x y : H, x * y = y * x := by
839830
constructor
840831
· intro h x y
841-
have := @mul_comm_of_mem_isCommutative G _ H h x y (by simp) (by simp)
832+
have := @mul_comm_of_mem_isMulCommutative G _ H h x y (by simp) (by simp)
842833
exact SetLike.coe_eq_coe.mp this
843834
· intro h
844-
rw [← le_centralizer_iff_isCommutative]
835+
rw [← le_centralizer_iff_isMulCommutative]
845836
intro y hy
846837
rw [mem_centralizer_iff]
847838
intro x hx
@@ -850,20 +841,20 @@ lemma IsCommutative_iff {G : Type*} [Group G] (H : Subgroup G) :
850841
simp only [MulMemClass.mk_mul_mk, Subtype.mk.injEq] at h
851842
exact h
852843

853-
instance IsCommutative_D : IsCommutative (D F) := by
854-
rw [IsCommutative_iff]
844+
instance IsMulCommutative_D : IsMulCommutative (D F) := by
845+
rw [IsMulCommutative_iff]
855846
rintro ⟨x, ⟨δ₁, hδ₁⟩⟩ ⟨y, ⟨δ₂, hδ₂⟩⟩
856-
simp [Subtype.ext_val_iff, coe_mul, ← hδ₁, ← hδ₂, mul_comm]
847+
simp [← hδ₁, ← hδ₂, mul_comm]
857848

858-
instance IsCommutative_S (F : Type*) [Field F] : IsCommutative (S F) := by
859-
rw [IsCommutative_iff]
849+
instance IsMulCommutative_S (F : Type*) [Field F] : IsMulCommutative (S F) := by
850+
rw [IsMulCommutative_iff]
860851
rintro ⟨x, ⟨σ₁, hσ₁⟩⟩ ⟨y, ⟨σ₂, hσ₂⟩⟩
861-
simp [@Subtype.ext_val_iff]
852+
simp [Subtype.ext_iff]
862853
rw [← hσ₁, ← hσ₂]
863854
simp [add_comm]
864855

865-
instance IsCommutative_SZ (F : Type*) [Field F] : IsCommutative (SZ F) := by
866-
refine le_centralizer_iff_isCommutative.mp ?_
856+
instance IsMulCommutative_SZ (F : Type*) [Field F] : IsMulCommutative (SZ F) := by
857+
refine le_centralizer_iff_isMulCommutative.mp ?_
867858
rintro x (⟨σ₁, rfl⟩ | ⟨σ₁, rfl⟩)
868859
repeat
869860
rw [mem_centralizer_iff]
@@ -923,15 +914,15 @@ lemma S_join_Z_eq_SZ : S F ⊔ Z F = SZ F := by
923914
rw [Set.mem_mul]
924915
use s σ
925916
split_ands
926-
simp [Z, closure_neg_one_eq]
917+
simp only [SetLike.mem_coe]
927918
use σ
928919
simp
929920
apply Subgroup.subset_closure mem_Z_mul_S
930921
· have mem_Z_mul_T : -s σ ∈ ((S F) : Set SL(2,F)) * (Z F) := by
931922
rw [Set.mem_mul]
932923
use s σ
933924
split_ands
934-
simp [Z, closure_neg_one_eq]
925+
simp only [SetLike.mem_coe]
935926
use σ
936927
simp
937928
apply Subgroup.subset_closure mem_Z_mul_T

ClassificationOfSubgroups/Ch5_PropertiesOfSLOverAlgClosedField/S3_JordanNormalFormOfSL.lean

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
import ClassificationOfSubgroups.Ch5_PropertiesOfSLOverAlgClosedField.S2_SpecialSubgroups
2-
import Mathlib.Algebra.GroupWithZero.Conj
3-
import Mathlib.FieldTheory.IsAlgClosed.Basic
4-
import Mathlib.LinearAlgebra.FreeModule.PID
5-
import Mathlib.LinearAlgebra.Matrix.GeneralLinearGroup.Defs
6-
import Mathlib.RingTheory.Artinian.Instances
7-
import Mathlib.RingTheory.FiniteLength
2+
import Mathlib
83

94
set_option autoImplicit false
105
set_option linter.style.longLine true
@@ -57,8 +52,8 @@ lemma associated_of_dvd_mul_irreducibles {k : Type*} [Field k] {q p₁ p₂: k[X
5752
rcases hp₂ with ⟨-, hp₂⟩
5853
rcases hd₁ with ⟨k₁, hk₁⟩
5954
rcases hd₂ with ⟨k₂, hk₂⟩
60-
specialize hp₁ d₁ k₁ hk₁
61-
specialize hp₂ d₂ k₂ hk₂
55+
specialize hp₁ hk₁
56+
specialize hp₂ hk₂
6257
rcases hp₁ with (h₁ | h₁)
6358
· rcases hp₂ with (h₂ | h₂)
6459
· left
@@ -194,7 +189,8 @@ lemma Matrix.conj_s_eq {x : F} {a b c d : F} :
194189
s x * !![a, b; c, d] * s (-x) =
195190
!![-b * x + a, b; (-b) * x * x + (a -d) * x + c, b*x + d] := by
196191
simp [s]
197-
ext; ring_nf
192+
ring_nf
193+
trivial
198194

199195
def SpecialLinearGroup.mk' {n : ℕ} (M : Matrix (Fin n) (Fin n) F) (h : det M = 1) : SL(n, F) :=
200196
⟨M, h⟩
@@ -212,13 +208,13 @@ theorem isTriangularizable_of_algClosed [DecidableEq F] [IsAlgClosed F]
212208
by_cases hβ : β ≠ 0
213209
· obtain ⟨σ, hσ⟩ := exists_root_of_special_poly α β γ δ hβ
214210
use s σ
215-
simp [M_coe_eq, s, Matrix.conj_s_eq]
211+
simp [M_coe_eq, s]
216212
ring_nf at hσ ⊢
217213
exact hσ
218214
simp at hβ
219215
· use w
220216
rw [upper_triangular_iff]
221-
simp [M_coe_eq, w, inv_def, hβ]
217+
simp [M_coe_eq, w, hβ]
222218

223219
/-
224220
A 2x2 upper triangular matrix is conjugate to a diagonal matrix if `a ≠ d`
@@ -227,7 +223,6 @@ lemma upper_triangular_isConj_diagonal_of_nonzero_det [DecidableEq F]
227223
{a b d : F} (had : a - d ≠ 0) : ∃ C : SL(2,F), C * !![a, b; 0, d] * C⁻¹ = !![a, 0; 0, d] := by
228224
use ⟨!![1, b / (a - d); 0, 1], by simp⟩
229225
simp
230-
ext
231226
repeat'
232227
field_simp
233228
ring_nf
@@ -239,8 +234,7 @@ lemma upper_triangular_isConj_jordan {a b : F} (hb : b ≠ 0) :
239234
IsConj !![a, b; 0, a] !![a, 1; 0, a] := by
240235
use GeneralLinearGroup.mk' !![1 / b, 0; 0, 1]
241236
(by simp; apply invertibleOfNonzero <| inv_ne_zero hb)
242-
ext
243-
repeat' field_simp
237+
ext <;> simp <;> field_simp
244238

245239
/-
246240
A 2x2 lower triangular matrix is conjugate to an upper triangular matrix
@@ -307,7 +301,7 @@ theorem SL2_IsConj_d_or_IsConj_s_or_IsConj_neg_s_of_AlgClosed [DecidableEq F] [I
307301
-- Because !![a, b; 0, d] is conjugate to S it also has determinant 1
308302
have det_eq_one : det !![a, b; 0, d] = 1 := by
309303
rw [← det_coe_S_eq_one, h]
310-
simp only [det_mul, SpecialLinearGroup.det_coe, mul_one, one_mul]
304+
simp only [det_mul, SpecialLinearGroup.det_coe, mul_one]
311305
have had := det_eq_one
312306
-- The determinant being equal to 1 implies a * d = 1
313307
simp at had

0 commit comments

Comments
 (0)