Skip to content

Commit 8e310c9

Browse files
Yu-Misakamichaellee94
authored andcommitted
chore(RepresentationTheory): invert ordering FDRep with Representation namespace sections (leanprover-community#41242)
Split from leanprover-community#40665. The motivation here is: I proved a result for `Representation`, and I can derive analogy for `FDRep`, but the reverse direction seems to run into universe issues with [FDRep.of](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RepresentationTheory/FDRep.html#FDRep.of), see the zulip link [here](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Integrality.20of.20character/with/603655189).
1 parent debc3b0 commit 8e310c9

1 file changed

Lines changed: 96 additions & 96 deletions

File tree

Mathlib/RepresentationTheory/Character.lean

Lines changed: 96 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -43,102 +43,6 @@ open CategoryTheory LinearMap CategoryTheory.MonoidalCategory Representation Mod
4343

4444
variable {k : Type u} [Field k]
4545

46-
namespace FDRep
47-
48-
section Monoid
49-
50-
variable {G : Type v} [Monoid G]
51-
52-
/-- The character of a representation `V : FDRep k G` is the function associating to `g : G` the
53-
trace of the linear map `V.ρ g`. -/
54-
def character (V : FDRep k G) (g : G) :=
55-
LinearMap.trace k V (V.ρ g)
56-
57-
theorem char_mul_comm (V : FDRep k G) (g : G) (h : G) :
58-
V.character (h * g) = V.character (g * h) := by simp only [trace_mul_comm, character, map_mul]
59-
60-
@[simp]
61-
theorem char_one (V : FDRep k G) : V.character 1 = Module.finrank k V := by
62-
simp only [character, map_one, trace_one]
63-
64-
/-- The character is multiplicative under the tensor product. -/
65-
@[simp]
66-
theorem char_tensor (V W : FDRep k G) : (V ⊗ W).character = V.character * W.character := by
67-
ext g; convert! trace_tensorProduct' (V.ρ g) (W.ρ g)
68-
69-
/-- The character of isomorphic representations is the same. -/
70-
theorem char_iso {V W : FDRep k G} (i : V ≅ W) : V.character = W.character := by
71-
ext g
72-
simp only [character, FDRep.Iso.conj_ρ i]
73-
exact (trace_conj' (V.ρ g) _).symm
74-
75-
end Monoid
76-
77-
section Group
78-
79-
variable {G : Type v} [Group G]
80-
81-
/-- The character of a representation is constant on conjugacy classes. -/
82-
@[simp]
83-
theorem char_conj (V : FDRep k G) (g : G) (h : G) : V.character (h * g * h⁻¹) = V.character g := by
84-
rw [char_mul_comm, inv_mul_cancel_left]
85-
86-
@[simp]
87-
theorem char_dual (V : FDRep k G) (g : G) : (of (dual V.ρ)).character g = V.character g⁻¹ :=
88-
trace_transpose' (V.ρ g⁻¹)
89-
90-
@[simp]
91-
theorem char_linHom (V W : FDRep k G) (g : G) :
92-
(of (linHom V.ρ W.ρ)).character g = V.character g⁻¹ * W.character g := by
93-
rw [← char_iso (dualTensorIsoLinHom _ _), char_tensor, Pi.mul_apply, char_dual]
94-
95-
variable [Fintype G] [Invertible (Fintype.card G : k)]
96-
97-
theorem average_char_eq_finrank_invariants (V : FDRep k G) :
98-
⅟(Fintype.card G : k) • ∑ g : G, V.character g = finrank k (invariants V.ρ) := by
99-
rw [← (isProj_averageMap V.ρ).trace]
100-
simp [character, GroupAlgebra.average, _root_.map_sum]
101-
102-
/--
103-
If `V` are `W` are finite-dimensional representations of a finite group, then the
104-
scalar product of their characters is equal to the dimension of the space of
105-
equivariant maps from `V` to `W`.
106-
-/
107-
theorem scalar_product_char_eq_finrank_equivariant (V W : FDRep k G) :
108-
⅟(Fintype.card G : k) • ∑ g : G, W.character g * V.character g⁻¹ =
109-
Module.finrank k (V ⟶ W) := by
110-
conv_lhs => congr; rfl; congr; rfl; intro _; rw [mul_comm, ← FDRep.char_linHom]
111-
-- The scalar product is the character of `Hom(V, W).`
112-
rw [FDRep.average_char_eq_finrank_invariants, ← LinearEquiv.finrank_eq
113-
(Representation.linHom.invariantsEquivFDRepHom V W), of_ρ']
114-
-- The average over the group of the character of a representation equals the dimension of the
115-
-- space of invariants, and the space of invariants of `Hom(W, V)` is the subspace of
116-
--`G`-equivariant linear maps, `Hom_G(W, V)`.
117-
118-
end Group
119-
120-
section Orthogonality
121-
122-
variable {G : Type v} [Group G] [IsAlgClosed k]
123-
124-
variable [Fintype G] [Invertible (Fintype.card G : k)]
125-
126-
open scoped Classical in
127-
/-- Orthogonality of characters for irreducible representations of finite group over an
128-
algebraically closed field whose characteristic doesn't divide the order of the group. -/
129-
theorem char_orthonormal (V W : FDRep k G) [Simple V] [Simple W] :
130-
⅟(Fintype.card G : k) • ∑ g : G, V.character g * W.character g⁻¹ =
131-
if Nonempty (V ≅ W) then1 else0 := by
132-
rw [scalar_product_char_eq_finrank_equivariant]
133-
-- The scalar products of the characters is equal to the dimension of the space of
134-
-- equivariant maps `W ⟶ V`.
135-
rw_mod_cast [finrank_hom_simple_simple W V, Iso.nonempty_iso_symm]
136-
-- By Schur's Lemma, the dimension of `Hom_G(W, V)` is `1` is `V ≅ W` and `0` otherwise.
137-
138-
end Orthogonality
139-
140-
end FDRep
141-
14246
namespace Representation
14347

14448
section Monoid
@@ -240,3 +144,99 @@ theorem char_orthonormal [IsIrreducible ρ] [IsIrreducible σ] :
240144
end Orthogonality
241145

242146
end Representation
147+
148+
namespace FDRep
149+
150+
section Monoid
151+
152+
variable {G : Type v} [Monoid G]
153+
154+
/-- The character of a representation `V : FDRep k G` is the function associating to `g : G` the
155+
trace of the linear map `V.ρ g`. -/
156+
def character (V : FDRep k G) (g : G) :=
157+
LinearMap.trace k V (V.ρ g)
158+
159+
theorem char_mul_comm (V : FDRep k G) (g : G) (h : G) :
160+
V.character (h * g) = V.character (g * h) := by simp only [trace_mul_comm, character, map_mul]
161+
162+
@[simp]
163+
theorem char_one (V : FDRep k G) : V.character 1 = Module.finrank k V := by
164+
simp only [character, map_one, trace_one]
165+
166+
/-- The character is multiplicative under the tensor product. -/
167+
@[simp]
168+
theorem char_tensor (V W : FDRep k G) : (V ⊗ W).character = V.character * W.character := by
169+
ext g; convert! trace_tensorProduct' (V.ρ g) (W.ρ g)
170+
171+
/-- The character of isomorphic representations is the same. -/
172+
theorem char_iso {V W : FDRep k G} (i : V ≅ W) : V.character = W.character := by
173+
ext g
174+
simp only [character, FDRep.Iso.conj_ρ i]
175+
exact (trace_conj' (V.ρ g) _).symm
176+
177+
end Monoid
178+
179+
section Group
180+
181+
variable {G : Type v} [Group G]
182+
183+
/-- The character of a representation is constant on conjugacy classes. -/
184+
@[simp]
185+
theorem char_conj (V : FDRep k G) (g : G) (h : G) : V.character (h * g * h⁻¹) = V.character g := by
186+
rw [char_mul_comm, inv_mul_cancel_left]
187+
188+
@[simp]
189+
theorem char_dual (V : FDRep k G) (g : G) : (of (dual V.ρ)).character g = V.character g⁻¹ :=
190+
trace_transpose' (V.ρ g⁻¹)
191+
192+
@[simp]
193+
theorem char_linHom (V W : FDRep k G) (g : G) :
194+
(of (linHom V.ρ W.ρ)).character g = V.character g⁻¹ * W.character g := by
195+
rw [← char_iso (dualTensorIsoLinHom _ _), char_tensor, Pi.mul_apply, char_dual]
196+
197+
variable [Fintype G] [Invertible (Fintype.card G : k)]
198+
199+
theorem average_char_eq_finrank_invariants (V : FDRep k G) :
200+
⅟(Fintype.card G : k) • ∑ g : G, V.character g = finrank k (invariants V.ρ) := by
201+
rw [← (isProj_averageMap V.ρ).trace]
202+
simp [character, GroupAlgebra.average, _root_.map_sum]
203+
204+
/--
205+
If `V` are `W` are finite-dimensional representations of a finite group, then the
206+
scalar product of their characters is equal to the dimension of the space of
207+
equivariant maps from `V` to `W`.
208+
-/
209+
theorem scalar_product_char_eq_finrank_equivariant (V W : FDRep k G) :
210+
⅟(Fintype.card G : k) • ∑ g : G, W.character g * V.character g⁻¹ =
211+
Module.finrank k (V ⟶ W) := by
212+
conv_lhs => congr; rfl; congr; rfl; intro _; rw [mul_comm, ← FDRep.char_linHom]
213+
-- The scalar product is the character of `Hom(V, W).`
214+
rw [FDRep.average_char_eq_finrank_invariants, ← LinearEquiv.finrank_eq
215+
(Representation.linHom.invariantsEquivFDRepHom V W), of_ρ']
216+
-- The average over the group of the character of a representation equals the dimension of the
217+
-- space of invariants, and the space of invariants of `Hom(W, V)` is the subspace of
218+
--`G`-equivariant linear maps, `Hom_G(W, V)`.
219+
220+
end Group
221+
222+
section Orthogonality
223+
224+
variable {G : Type v} [Group G] [IsAlgClosed k]
225+
226+
variable [Fintype G] [Invertible (Fintype.card G : k)]
227+
228+
open scoped Classical in
229+
/-- Orthogonality of characters for irreducible representations of finite group over an
230+
algebraically closed field whose characteristic doesn't divide the order of the group. -/
231+
theorem char_orthonormal (V W : FDRep k G) [Simple V] [Simple W] :
232+
⅟(Fintype.card G : k) • ∑ g : G, V.character g * W.character g⁻¹ =
233+
if Nonempty (V ≅ W) then1 else0 := by
234+
rw [scalar_product_char_eq_finrank_equivariant]
235+
-- The scalar products of the characters is equal to the dimension of the space of
236+
-- equivariant maps `W ⟶ V`.
237+
rw_mod_cast [finrank_hom_simple_simple W V, Iso.nonempty_iso_symm]
238+
-- By Schur's Lemma, the dimension of `Hom_G(W, V)` is `1` is `V ≅ W` and `0` otherwise.
239+
240+
end Orthogonality
241+
242+
end FDRep

0 commit comments

Comments
 (0)