Skip to content

Commit 396cbfc

Browse files
committed
feat: add characterisation of irreducible root pairing using IsSimpleOrder (leanprover-community#24958)
1 parent 55c73a5 commit 396cbfc

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

Mathlib/LinearAlgebra/RootSystem/Irreducible.lean

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,29 @@ variable {ι R M N : Type*} [CommRing R] [AddCommGroup M] [Module R M] [AddCommG
3232

3333
namespace RootPairing
3434

35+
/-- The sublattice of invariant submodules of the root space. -/
36+
def invtRootSubmodule : Sublattice (Submodule R M) :=
37+
⨅ i, invtSubmodule (P.reflection i)
38+
39+
lemma mem_invtRootSubmodule_iff {q : Submodule R M} :
40+
q ∈ P.invtRootSubmodule ↔ ∀ i, q ∈ Module.End.invtSubmodule (P.reflection i) := by
41+
simp [invtRootSubmodule]
42+
43+
@[simp] protected lemma invtRootSubmodule.top_mem : ⊤ ∈ P.invtRootSubmodule := by
44+
simp [invtRootSubmodule]
45+
46+
@[simp] protected lemma invtRootSubmodule.bot_mem : ⊥ ∈ P.invtRootSubmodule := by
47+
simp [invtRootSubmodule]
48+
49+
instance : BoundedOrder P.invtRootSubmodule where
50+
top := ⟨⊤, invtRootSubmodule.top_mem P⟩
51+
bot := ⟨⊥, invtRootSubmodule.bot_mem P⟩
52+
le_top := fun ⟨p, hp⟩ ↦ by simp
53+
bot_le := fun ⟨p, hp⟩ ↦ by simp
54+
55+
instance [Nontrivial M] : Nontrivial P.invtRootSubmodule where
56+
exists_pair_ne := ⟨⊥, ⊤, by rw [ne_eq, Subtype.ext_iff]; exact bot_ne_top⟩
57+
3558
lemma isSimpleModule_weylGroupRootRep_iff [Nontrivial M] :
3659
IsSimpleModule (MonoidAlgebra R P.weylGroup) P.weylGroupRootRep.asModule ↔
3760
∀ (q : Submodule R M), (∀ i, q ∈ invtSubmodule (P.reflection i)) → q ≠ ⊥ → q = ⊤ := by
@@ -105,6 +128,20 @@ lemma IsIrreducible.mk' {K : Type*} [Field K] [Module K M] [Module K N] [Nontriv
105128
replace ne_bot : q.dualAnnihilator ≠ ⊤ := by simpa
106129
simpa using h ne_bot
107130

131+
lemma isIrreducible_iff_invtRootSubmodule
132+
{K : Type*} [Field K] [Module K M] [Module K N] [Nontrivial M] (P : RootPairing ι K M N) :
133+
P.IsIrreducible ↔ IsSimpleOrder P.invtRootSubmodule := by
134+
refine ⟨fun h ↦ ⟨fun ⟨q, hq⟩ ↦ ?_⟩, fun h ↦ IsIrreducible.mk' P fun q hq hq' ↦ ?_⟩
135+
· simp only [invtRootSubmodule.bot_mem, invtRootSubmodule.top_mem, Subtype.mk_eq_bot_iff,
136+
Subtype.mk_eq_top_iff]
137+
rw [mem_invtRootSubmodule_iff] at hq
138+
have := IsIrreducible.eq_top_of_invtSubmodule_reflection q hq
139+
tauto
140+
· let q' : P.invtRootSubmodule := ⟨q, P.mem_invtRootSubmodule_iff.mpr hq⟩
141+
replace hq' : ⊥ < q' := by simpa [q', bot_lt_iff_ne_bot]
142+
suffices q' = ⊤ by simpa [q'] using this
143+
exact IsSimpleOrder.eq_top_of_lt hq'
144+
108145
lemma exist_set_root_not_disjoint_and_le_ker_coroot'_of_invtSubmodule
109146
[NeZero (2 : R)] [NoZeroSMulDivisors R M] (q : Submodule R M)
110147
(hq : ∀ i, q ∈ invtSubmodule (P.reflection i)) :

0 commit comments

Comments
 (0)