Paper XI · Lean source

TameGaussNaturality.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/TameGaussNaturality.lean79 lines

Original source pathformalization/PaperXI/TameGaussNaturality.lean
Skip declarations and read code

Skip source text

1 import PaperXI.GaussCharacters
2 import Mathlib.Algebra.Group.Units.Equiv
3 
4 /-! Additive-character normalization is part of the finite comparison data.
5 These statements concern the literal finite Gauss sum, not a full local epsilon
6 factor. A nontrivial residue character is required for a unit-norm phase. -/
7 set_option autoImplicit false
8 noncomputable section
9 namespace PaperXI.TameGaussNaturality
10 open scoped Classical
11 variable {k : Type*} [Field k] [Fintype k]
12 
13 /-- Pull the multiplicative character back along a field automorphism. -/
14 def pullMul (e : k ≃+* k) (χ : kˣ →* ℂˣ) : kˣ →* ℂˣ :=
15   χ.comp (Units.map e.toMonoidHom)
16 
17 /-- The additive character must be transported at the same time. -/
18 def pullAdd (e : k ≃+* k) (ψ : AddChar k ℂ) : AddChar k ℂ :=
19   ψ.compAddMonoidHom e.toAddMonoidHom
20 
21 /-- Simultaneous transport of both characters is an exact change of summation variable. -/
22 theorem sum_transport (e : k ≃+* k) (χ : kˣ →* ℂˣ) (ψ : AddChar k ℂ) :
23     GaussCharacters.sum (pullMul e χ) (pullAdd e ψ) = GaussCharacters.sum χ ψ := by
24   unfold GaussCharacters.sum
25   exact Fintype.sum_equiv (Units.mapEquiv e.toMulEquiv).toEquiv _ _ (fun _ => rfl)
26 
27 theorem phase_transport (e : k ≃+* k) (χ : kˣ →* ℂˣ) (ψ : AddChar k ℂ) :
28     GaussCharacters.phase (pullMul e χ) (pullAdd e ψ) = GaussCharacters.phase χ ψ := by
29   unfold GaussCharacters.phase
30   rw [sum_transport]
31 
32 /-- Rotation of the residue character preserves the phase only with the stated
33 additive-character invariance. In particular this applies to Frobenius-stable ψ. -/
34 theorem phase_of_stable_additive (e : k ≃+* k) (χ : kˣ →* ℂˣ)
35     (ψ : AddChar k ℂ) (hψ : pullAdd e ψ = ψ) :
36     GaussCharacters.phase (pullMul e χ) ψ = GaussCharacters.phase χ ψ := by
37   simpa only [hψ] using phase_transport e χ ψ
38 
39 /-- Rescaling the additive character contributes the inverse multiplicative value. -/
40 theorem phase_mulShift (χ : kˣ →* ℂˣ) (ψ : AddChar k ℂ) (a : kˣ) :
41     GaussCharacters.phase χ (ψ.mulShift (a : k)) =
42       (χ a : ℂ)⁻¹ * GaussCharacters.phase χ ψ := by
43   simp only [GaussCharacters.phase, GaussCharacters.sum_eq_unitSum,
44     GaussSums.unitSum_eq_gaussSum]
45   rw [gaussSum_mulShift_eq, MulChar.inv_apply_eq_inv', MulChar.ofUnitHom_coe,
46     mul_div_assoc]
47 
48 /-- The trivial multiplicative character does not have a unit-norm normalized sum. -/
49 theorem phase_trivial {ψ : AddChar k ℂ} (hψ : ψ ≠ 1) :
50     GaussCharacters.phase (1 : kˣ →* ℂˣ) ψ =
51       -1 / (Real.sqrt (Fintype.card k) : ℂ) := by
52   have he : MulChar.ofUnitHom (1 : kˣ →* ℂˣ) = (1 : MulChar k ℂ) :=
53     (MulChar.mulEquivToUnitHom (R := k) (R' := ℂ)).symm.map_one
54   simp only [GaussCharacters.phase, GaussCharacters.sum_eq_unitSum,
55     GaussSums.unitSum_eq_gaussSum, he]
56   rw [gaussSum_one_left hψ]
57 
58 /-- Both trivial and nontrivial residue characters have an exact magnitude rule. -/
59 theorem phase_norm_cases (χ : kˣ →* ℂˣ) {ψ : AddChar k ℂ} (hψ : ψ ≠ 1) :
60     ‖GaussCharacters.phase χ ψ‖ =
61       if χ = 1 then (Real.sqrt (Fintype.card k))⁻¹ else 1 := by
62   by_cases hχ : χ = 1
63   · subst χ
64     rw [ite_eq_left rfl, phase_trivial hψ, norm_div]
65     simp [Complex.norm_real, Real.norm_eq_abs,
66       abs_of_pos (GaussSums.sqrt_card_pos (k := k)), one_div]
67   · rw [ite_eq_right hχ]
68     exact GaussCharacters.phase_norm hχ hψ
69 
70 /-- A declared residue phase is never zero under a nontrivial additive character. -/
71 theorem phase_ne_zero (χ : kˣ →* ℂˣ) {ψ : AddChar k ℂ} (hψ : ψ ≠ 1) :
72     GaussCharacters.phase χ ψ ≠ 0 := by
73   apply norm_ne_zero_iff.mp
74   rw [phase_norm_cases χ hψ]
75   split_ifs
76   · exact inv_ne_zero (ne_of_gt (GaussSums.sqrt_card_pos (k := k)))
77   · exact one_ne_zero
78 
79 end PaperXI.TameGaussNaturality

Back to source controls

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: 85bd64090e77888f06f233d6ea04a3cee2a539e3341988dd95273b8cdf5c1f7b

Original source on GitHub

Back to Paper XI: Packets, Arithmetic Realization, and Conditional Comparison