Paper XI · Lean source

SchrodingerTrace.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/SchrodingerTrace.lean88 lines

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

Skip source text

1 import PaperXI.SchrodingerOperator
2 import Mathlib.LinearAlgebra.Trace
3 import Mathlib.NumberTheory.GaussSum
4 import Mathlib.Analysis.Complex.Basic
5 import Mathlib.Tactic
6 
7 /-! Character support for the literal finite function-space Schrödinger operators. -/
8 set_option autoImplicit false
9 noncomputable section
10 namespace PaperXI.SchrodingerTrace
11 open scoped Classical
12 
13 variable {K X : Type*} [Field K] [AddCommGroup X] [Module K X]
14 
15 /-- A nonzero linear functional onto the scalar field is surjective. -/
16 theorem functional_surjective {ξ : X →ₗ[K] K} (hξ : ξ ≠ 0) :
17     Function.Surjective ξ := by
18   obtain ⟨u, hu⟩ := DFunLike.ne_iff.mp hξ
19   change ξ u ≠ 0 at hu
20   intro a
21   refine ⟨(a / ξ u) • u, ?_⟩
22   simp [map_smul, smul_eq_mul, hu]
23 
24 /-- A nontrivial character remains nontrivial after a nonzero functional. -/
25 theorem functional_character_ne_one {ψ : AddChar K ℂ} (hψ : ψ ≠ 1)
26     {ξ : X →ₗ[K] K} (hξ : ξ ≠ 0) :
27     ψ.compAddMonoidHom ξ.toAddMonoidHom ≠ 1 := by
28   intro h
29   apply hψ
30   ext a
31   obtain ⟨u, rfl⟩ := functional_surjective hξ a
32   have hu := congrArg (fun χ : AddChar X ℂ => χ u) h
33   simpa using hu
34 
35 variable [Fintype X]
36 
37 /-- Exact finite Fourier cancellation for every nonzero scalar functional. -/
38 theorem sum_functional_character {ψ : AddChar K ℂ} (hψ : ψ ≠ 1)
39     {ξ : X →ₗ[K] K} (hξ : ξ ≠ 0) : (∑ u : X, ψ (ξ u)) = 0 := by
40   exact AddChar.sum_eq_zero_of_ne_one (functional_character_ne_one hψ hξ)
41 
42 /-- The diagonal matrix entries are computed in the actual delta-function basis. -/
43 theorem operator_diagonal (ψ : AddChar K ℂ) (x : X) (ξ : X →ₗ[K] K)
44     (z : K) (u : X) :
45     LinearMap.toMatrix (Pi.basisFun ℂ X) (Pi.basisFun ℂ X)
46       (Schrodinger.operator ψ x ξ z) u u =
47       if x = 0 then ψ (z + ξ u) else 0 := by
48   classical
49   rw [LinearMap.toMatrix_apply, Pi.basisFun_repr, Schrodinger.operator_apply,
50     Pi.basisFun_apply]
51   by_cases hx : x = 0
52   · subst x
53     simp
54   · have hux : u + x ≠ u := by simpa using hx
55     simp [hx, hux]
56 
57 /-- Translation by a nonzero vector has no diagonal contribution. -/
58 theorem trace_of_translation_ne_zero (ψ : AddChar K ℂ) {x : X} (hx : x ≠ 0)
59     (ξ : X →ₗ[K] K) (z : K) :
60     LinearMap.trace ℂ (X → ℂ) (Schrodinger.operator ψ x ξ z) = 0 := by
61   classical
62   rw [LinearMap.trace_eq_matrix_trace ℂ (Pi.basisFun ℂ X)]
63   simp [Matrix.trace, hx]
64 
65 /-- Pure modulation has trace equal to its literal finite character sum. -/
66 theorem trace_of_translation_zero (ψ : AddChar K ℂ) (ξ : X →ₗ[K] K) (z : K) :
67     LinearMap.trace ℂ (X → ℂ) (Schrodinger.operator ψ 0 ξ z) =
68       ψ z * ∑ u : X, ψ (ξ u) := by
69   classical
70   rw [LinearMap.trace_eq_matrix_trace ℂ (Pi.basisFun ℂ X)]
71   simp [Matrix.trace, ψ.map_add_eq_mul, Finset.mul_sum]
72 
73 /-- Proposition 7.3: exact character support, without assuming the trace formula. -/
74 theorem character_support {ψ : AddChar K ℂ} (hψ : ψ ≠ 1)
75     (x : X) (ξ : X →ₗ[K] K) (z : K) :
76     LinearMap.trace ℂ (X → ℂ) (Schrodinger.operator ψ x ξ z) =
77       if x = 0 ∧ ξ = 0 then (Fintype.card X : ℂ) * ψ z else 0 := by
78   classical
79   by_cases hx : x = 0
80   · subst x
81     rw [trace_of_translation_zero]
82     by_cases hξ : ξ = 0
83     · subst ξ
84       simp [mul_comm]
85     · simp [hξ, sum_functional_character hψ hξ]
86   · simp [hx, trace_of_translation_ne_zero ψ hx]
87 
88 end PaperXI.SchrodingerTrace

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: 0c523e1824a16155d9072d81a47308e828eef34cdf178595eff2ccbd8dbe7498

Original source on GitHub

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