Paper XI · Lean source
PrimitiveCharacterBlock.lean
Selected results recorded Coverage and evidence
Compiler/replay evidence is reported for a subset or bounded block. No whole-work coverage is implied.
This viewer reads the retained source; it does not run Lean or assign new claim mappings.
Local imports (1)
PaperXI/PrimitiveCharacterBlock.lean128 lines
Original source path
formalization/PaperXI/PrimitiveCharacterBlock.leanSkip declarations and read code
1 import PaperXI.SemisimpleDetection
2
3 /-! Primitive central character blocks in the literal finite group algebra.
4 Primitivity means absence of nontrivial central sub-idempotents, not rank one. -/
5 set_option autoImplicit false
6 noncomputable section
7 open scoped MonoidAlgebra BigOperators Classical
8 namespace PaperXI.PrimitiveCharacterBlock
9 open PaperXI.CharacterProjector PaperXI.SemisimpleDetection
10 universe u v w
11 variable {G : Type u} [Group G] [Fintype G]
12 variable {V : Type v} [AddCommGroup V] [Module ℂ V] [FiniteDimensional ℂ V]
13 variable {W : Type w} [AddCommGroup W] [Module ℂ W]
14
15 omit [Fintype G] [FiniteDimensional ℂ V] in
16 /-- Representation equivalences intertwine the full group-algebra action. -/
17 theorem equiv_algebra_action (ρ : Representation ℂ G V) (σ : Representation ℂ G W)
18 (e : Representation.Equiv ρ σ) (a : MonoidAlgebra ℂ G) (x : V) :
19 e (ρ.asAlgebraHom a x) = σ.asAlgebraHom a (e x) := by
20 induction a using MonoidAlgebra.induction_on with
21 | of g => simpa using Representation.IntertwiningMap.isIntertwining ρ σ e.toIntertwiningMap g x
22 | add a b ha hb => simp [ha, hb]
23 | smul c a ha => simp [ha]
24
25 /-- The character element is nonzero. -/
26 theorem nonzero (ρ : Representation ℂ G V) [Representation.IsIrreducible ρ] :
27 element ρ ≠ 0 := by
28 have := nontrivial_space ρ
29 intro h
30 have he : Nonempty (Representation.Equiv ρ ρ) := ⟨Representation.Equiv.refl ρ⟩
31 have hi := irreducible_action ρ ρ
32 simp [h, he] at hi
33
34 /-- Idempotence is an equality in C[G], detected through all simple modules. -/
35 theorem idempotent (ρ : Representation ℂ G V) [Representation.IsIrreducible ρ] :
36 element ρ * element ρ = element ρ := by
37 apply eq_of_irreducible_actions
38 intro W _ _ _ σ _
39 rw [map_mul, irreducible_action ρ σ]
40 split_ifs <;> simp
41
42 /-- The target irreducible detects every element supported on its central block. -/
43 theorem supported_eq_zero (ρ : Representation ℂ G V) [Representation.IsIrreducible ρ]
44 (a : MonoidAlgebra ℂ G) (hs : a * element ρ = a)
45 (ha : ρ.asAlgebraHom a = 0) : a = 0 := by
46 apply eq_zero_of_irreducible_actions
47 intro W _ _ _ σ _
48 by_cases he : Nonempty (Representation.Equiv ρ σ)
49 · let e := Classical.choice he
50 ext y
51 obtain ⟨x, rfl⟩ := e.toLinearEquiv.surjective y
52 change σ.asAlgebraHom a (e x) = 0
53 rw [← equiv_algebra_action ρ σ e a x, ha]
54 simp
55 · calc
56 σ.asAlgebraHom a = σ.asAlgebraHom (a * element ρ) := congrArg σ.asAlgebraHom hs.symm
57 _ = 0 := by simp [irreducible_action ρ σ, he]
58
59 /-- Faithfulness on the designated block, not on the whole group algebra. -/
60 theorem block_action_injective (ρ : Representation ℂ G V) [Representation.IsIrreducible ρ]
61 (a b : MonoidAlgebra ℂ G) (ha : a * element ρ = a) (hb : b * element ρ = b)
62 (hab : ρ.asAlgebraHom a = ρ.asAlgebraHom b) : a = b := by
63 apply sub_eq_zero.mp
64 apply supported_eq_zero ρ (a - b)
65 · simp [sub_mul, ha, hb]
66 · simp [hab]
67
68 /-- The standard central-primitive condition, stated directly. -/
69 def IsPrimitiveCentral {A : Type*} [Ring A] (e : A) : Prop :=
70 e ≠ 0 ∧ e * e = e ∧ e ∈ Submonoid.center A ∧
71 ∀ p : A, p ∈ Submonoid.center A → p * p = p → p * e = p → p = 0 ∨ p = e
72
73 /-- Proposition 4.2 for every finite group and irreducible complex representation. -/
74 theorem primitive_central (ρ : Representation ℂ G V) [Representation.IsIrreducible ρ] :
75 IsPrimitiveCentral (element ρ) := by
76 refine ⟨nonzero ρ, idempotent ρ, central ρ, ?_⟩
77 intro p hp hpp hpe
78 have := nontrivial_space ρ
79 obtain ⟨c, hc⟩ := central_scalar ρ hp
80 have hmul := congrArg ρ.asAlgebraHom hpp
81 rw [map_mul, hc] at hmul
82 have hcc : c * c = c := by
83 apply smul_left_injective ℂ (one_ne_zero : (1 : Module.End ℂ V) ≠ 0)
84 simpa only [smul_mul_assoc, mul_smul_comm, one_mul, smul_smul] using hmul
85 have hz : c * (c - 1) = 0 := by
86 calc
87 c * (c - 1) = c * c - c := by ring
88 _ = 0 := by rw [hcc, sub_self]
89 rcases mul_eq_zero.mp hz with hc0 | hc1
90 · left
91 exact supported_eq_zero ρ p hpe (by simp [hc, hc0])
92 · right
93 have hc1' : c = 1 := sub_eq_zero.mp hc1
94 apply block_action_injective ρ p (element ρ) hpe (idempotent ρ)
95 have he : Nonempty (Representation.Equiv ρ ρ) := ⟨Representation.Equiv.refl ρ⟩
96 simp [hc, hc1', irreducible_action ρ ρ, he]
97
98 /-- A decomposition into orthogonal central sub-idempotents has a zero summand. -/
99 theorem no_nontrivial_central_split (ρ : Representation ℂ G V)
100 [Representation.IsIrreducible ρ] (p q : MonoidAlgebra ℂ G)
101 (hp : p ∈ Submonoid.center (MonoidAlgebra ℂ G))
102 (hpp : p * p = p) (hpq : p * q = 0) (hs : p + q = element ρ) :
103 p = 0 ∨ q = 0 := by
104 have hpe : p * element ρ = p := by rw [← hs, mul_add, hpp, hpq, add_zero]
105 rcases (primitive_central ρ).2.2.2 p hp hpp hpe with hz | he
106 · exact Or.inl hz
107 · right
108 have hq : element ρ + q = element ρ + 0 := by simpa [he] using hs
109 exact add_left_cancel hq
110
111 /-- Nonisomorphic irreducible characters give orthogonal central idempotents. -/
112 theorem orthogonal [FiniteDimensional ℂ W]
113 (ρ : Representation ℂ G V) (σ : Representation ℂ G W)
114 [Representation.IsIrreducible ρ] [Representation.IsIrreducible σ]
115 (h : ¬Nonempty (Representation.Equiv ρ σ)) :
116 element ρ * element σ = 0 := by
117 apply supported_eq_zero σ
118 · rw [mul_assoc, idempotent σ]
119 · simp [irreducible_action ρ σ, h]
120
121 omit [FiniteDimensional ℂ V] in
122 /-- An isomorphic presentation does not change the literal character element. -/
123 theorem presentation_invariant
124 (ρ : Representation ℂ G V) (σ : Representation ℂ G W)
125 (e : Representation.Equiv ρ σ) : element ρ = element σ := by
126 simp only [element, e.toLinearEquiv.finrank_eq, Representation.char_iso e]
127
128 end PaperXI.PrimitiveCharacterBlock
Original file and source record
This copy matches the recorded source file. Its publication here does not change the work’s review status.
SHA-256: 5950f0f65ec50d3dc6a4c36c40237c087ccc4a4c0eeb35b1fe536e897bcdf6e5
Back to Paper XI: Packets, Arithmetic Realization, and Conditional Comparison