@@ -32,6 +32,29 @@ variable {ι R M N : Type*} [CommRing R] [AddCommGroup M] [Module R M] [AddCommG
3232
3333namespace 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+
3558lemma 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+
108145lemma 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