Skip to content

Commit 3eb2bc7

Browse files
Yu-Misakaocfnash
andcommitted
feat: a Cartan matrix of a reduced crystallographic root system cannot have eigenvalue 4 (leanprover-community#39491)
This proves the TODO that a Cartan matrix of a reduced crystallographic root system cannot have eigenvalue 4. Co-authored-by: Oliver Nash <github@olivernash.org>
1 parent a35aeb0 commit 3eb2bc7

3 files changed

Lines changed: 20 additions & 7 deletions

File tree

Mathlib/LinearAlgebra/RootSystem/CartanMatrix.lean

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ module
88
public import Mathlib.Algebra.CharZero.Infinite
99
public import Mathlib.Algebra.Module.Submodule.Union
1010
public import Mathlib.Data.Int.Star
11+
public import Mathlib.LinearAlgebra.Determinant
1112
public import Mathlib.LinearAlgebra.Matrix.BilinearForm
1213
public import Mathlib.LinearAlgebra.Matrix.PosDef
14+
public import Mathlib.LinearAlgebra.Matrix.ZMatrix
1315
public import Mathlib.LinearAlgebra.RootSystem.Base
1416
public import Mathlib.LinearAlgebra.RootSystem.Finite.Lemmas
1517
public import Mathlib.LinearAlgebra.RootSystem.Finite.Nondegenerate
@@ -208,6 +210,21 @@ lemma exists_cartanMatrix_diagaonal_mul_posDef [DecidableEq ι] [P.IsRootSystem]
208210
rw [← PosDef.transpose_iff] at hd'
209211
aesop
210212

213+
open LinearMap Module.End in
214+
lemma det_four_sub_cartanMatrix_ne_zero [DecidableEq ι] [P.IsRootSystem] :
215+
(4 - b.cartanMatrix).det ≠ 0 := by
216+
suffices ¬ HasEigenvalue b.cartanMatrix.toLin' 4 by
217+
have aux : (4 - b.cartanMatrix).toLin' = - (b.cartanMatrix.toLin' - (4 : ℤ) • 1) := by ext; simp
218+
rwa [ne_eq, ← det_toLin', det_eq_zero_iff_ker_ne_bot, aux, ker_neg, ← eigenspace_def,
219+
← hasEigenvalue_iff]
220+
obtain ⟨d, hd, hdS⟩ := b.exists_cartanMatrix_diagaonal_mul_posDef
221+
have aux (i j : b.support) : b.cartanMatrix i j ≤ if i = j then 2 else 0 := by
222+
rcases eq_or_ne i j with rfl | hij
223+
· simp
224+
· simpa [hij] using cartanMatrix_le_zero_of_ne b i j hij
225+
have := b.cartanMatrix.lt_two_mul_of_mul_diagonal_posDef_of_for_le_of_hasEigen d hdS hd 2 4 aux
226+
aesop
227+
211228
/-- A characterisation of the connectedness of the Dynkin diagram for irreducible root pairings. -/
212229
lemma induction_on_cartanMatrix [P.IsReduced] [P.IsIrreducible]
213230
(p : b.support → Prop) {i j : b.support} (hi : p i)

Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basis.lean

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,6 @@ def basis :
9191
instance : (cartanSubalgebra' b).IsCartanSubalgebra :=
9292
inferInstanceAs (basis b).cartan.IsCartanSubalgebra
9393

94-
-- TODO drop this after: https://github.com/leanprover-community/mathlib4/issues/28713
95-
variable [Fact ((4 - b.cartanMatrix).det ≠ 0)]
96-
9794
open LieAlgebra.IsKilling in
9895
/-- Up to equivalence, `LieAlgebra.IsKilling.rootSystem` is left inverse to
9996
`RootPairing.GeckConstruction.lieAlgebra`. -/

Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Semisimple.lean

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -352,9 +352,7 @@ lemma coe_genWeightSpace_zero_eq_span_range_u :
352352
rintro ⟨⟨x, -⟩, hx⟩
353353
exact ⟨1, funext fun j ↦ by simpa using apply_sum_inl_eq_zero_of_mem_span_h i j hx⟩
354354

355-
-- TODO Turn this `Fact` into a lemma: it is always true and may be proved via Perron-Frobenius
356-
-- See https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Eigenvalues.20of.20Cartan.20matrices/near/516844801
357-
variable [Fact ((4 - b.cartanMatrix).det ≠ 0)] [P.IsReduced] [P.IsIrreducible]
355+
variable [P.IsReduced] [P.IsIrreducible]
358356

359357
/-- Lemma 4.2 from [Geck](Geck2017). -/
360358
instance instIsIrreducible [Nonempty ι] :
@@ -369,7 +367,8 @@ instance instIsIrreducible [Nonempty ι] :
369367
obtain ⟨c, hc⟩ : ∃ c : b.support → K, ∑ i, c i • u i = x :=
370368
(mem_span_range_iff_exists_fun K).mp <| hU hx
371369
suffices c = 0 by simp [this, ← hc]
372-
have hCM : (4 - b.cartanMatrix).det ≠ 0 := Fact.out
370+
have hCM : (4 - b.cartanMatrix).det ≠ 0 :=
371+
RootPairing.Base.det_four_sub_cartanMatrix_ne_zero b
373372
contrapose! hCM
374373
suffices ((Int.castRingHom K).mapMatrix (4 - b.cartanMatrix)).det = 0 by
375374
simpa only [← RingHom.map_det, eq_intCast, Int.cast_eq_zero] using this

0 commit comments

Comments
 (0)