Paper XII · Lean source
ResidualAugmentation.lean
Inherited / related evidence Coverage and evidence
The edition relies on earlier or related formal evidence. That evidence is not a fresh full-edition replay.
This viewer reads the retained source; it does not run Lean or assign new claim mappings.
Local imports (2)
PaperXII/ResidualAugmentation.lean78 lines
Original source path
core/publication/source/lean_guide/formal_release/lean/PaperXII/ResidualAugmentation.leanSkip declarations and read code
1 import PaperXII.AuxiliaryGroupAlgebra
2 import PaperXII.LocalIdempotents
3 import Mathlib.Algebra.CharP.Lemmas
4 import Mathlib.Algebra.CharP.Algebra
5 import Mathlib.GroupTheory.PGroup
6 import Mathlib.RingTheory.Nilpotent.Basic
7
8 set_option autoImplicit false
9
10 /-! Paper XII, the locality conclusion of 5.2 and Corollary 5.3 in the
11 finite abelian p-group context of Section 5. The argument only needs an
12 abelian p-group; finiteness is unnecessary. Augmentation is the actual
13 group-algebra homomorphism, not an abstract residue map. -/
14 namespace PaperXII.ResidualAugmentation
15
16 open scoped MonoidAlgebra
17 open PaperXII.AuxiliaryGroupAlgebra
18
19 variable {k G : Type*} [Field k] [CommGroup G]
20 variable {p : ℕ} [Fact p.Prime] [CharP k p]
21
22 /-- Every group-basis difference is nilpotent in residue characteristic p. -/
23 theorem generator_nilpotent (hG : IsPGroup p G) (g : G) :
24 IsNilpotent (MonoidAlgebra.single g (1 : k) - 1) := by
25 let : CharP k[G] p := charP_of_injective_algebraMap (algebraMap k k[G]).injective p
26 obtain ⟨n, hn⟩ := hG g
27 refine ⟨p ^ n, ?_⟩
28 rw [sub_pow_char_pow, MonoidAlgebra.single_pow, hn, one_pow, one_pow]
29 simp [MonoidAlgebra.one_def]
30
31 /-- Subtracting the scalar augmentation leaves a nilpotent element. -/
32 theorem augmentation_difference_nilpotent (hG : IsPGroup p G) (x : k[G]) :
33 IsNilpotent (x - algebraMap k k[G] (augmentation x)) := by
34 induction x using MonoidAlgebra.induction_on with
35 | of g =>
36 simpa [augmentation_single, MonoidAlgebra.one_def] using
37 generator_nilpotent (k := k) hG g
38 | add x y hx hy =>
39 simpa only [map_add, add_sub_add_comm] using
40 (Commute.all _ _).isNilpotent_add hx hy
41 | smul r x hx =>
42 simpa only [map_smul, Algebra.algebraMap_eq_smul_one, smul_sub,
43 smul_smul, smul_eq_mul] using hx.smul r
44
45 /-- The actual augmentation ideal consists of nilpotents. -/
46 theorem augmentation_kernel_nilpotent (hG : IsPGroup p G) (x : k[G])
47 (hx : augmentation x = 0) : IsNilpotent x := by
48 simpa [hx] using augmentation_difference_nilpotent hG x
49
50 /-- A group-algebra element is invertible exactly when its augmentation is nonzero. -/
51 theorem isUnit_iff_augmentation_ne_zero (hG : IsPGroup p G) (x : k[G]) :
52 IsUnit x ↔ augmentation x ≠ 0 := by
53 constructor
54 · intro hx
55 exact (hx.map augmentation.toMonoidHom).ne_zero
56 · intro hx
57 have hu : IsUnit (algebraMap k k[G] (augmentation x)) :=
58 (isUnit_iff_ne_zero.mpr hx).map (algebraMap k k[G])
59 simpa using (augmentation_difference_nilpotent hG x).isUnit_add_left_of_commute
60 hu (Commute.all _ _)
61
62 /-- The residual group algebra is local. -/
63 theorem isLocalRing (hG : IsPGroup p G) : IsLocalRing k[G] := by
64 apply IsLocalRing.of_isUnit_or_isUnit_one_sub_self
65 intro x
66 by_cases hx : augmentation x = 0
67 · right
68 apply (isUnit_iff_augmentation_ne_zero hG _).mpr
69 simp [hx]
70 · exact Or.inl ((isUnit_iff_augmentation_ne_zero hG x).mpr hx)
71
72 /-- Corollary 5.3: there are no nontrivial residual character projectors. -/
73 theorem idempotent_eq_zero_or_one (hG : IsPGroup p G) (e : k[G])
74 (he : e * e = e) : e = 0 ∨ e = 1 := by
75 let := isLocalRing (k := k) hG
76 exact PaperXII.LocalIdempotents.eq_zero_or_one e he
77
78 end PaperXII.ResidualAugmentation
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: 8ceac287f565bf81c0267dae0387734682e46389ce9099b2bb1e5a98ffa65fa7
Back to Paper XII: Patching Support, Hecke Packets, and Conditional Automorphic Completion