Paper XI · Lean source
SchrodingerFourier.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.
PaperXI/SchrodingerFourier.lean77 lines
Original source path
formalization/PaperXI/SchrodingerFourier.leanSkip declarations and read code
1 import Mathlib.LinearAlgebra.Pi
2 import Mathlib.Basic.Complex.Basic
3 import Mathlib.Algebra.BigOperators.Pi
4 import Mathlib.Tactic.FieldSimp
5 import Mathlib.Tactic.Ring
6
7 /-! Exact coordinate projections from a separating family of diagonal operators.
8 The finite elimination argument supplies the projector; orthogonality is not a hypothesis. -/
9 set_option autoImplicit false
10 noncomputable section
11 namespace PaperXI.SchrodingerFourier
12
13 variable {I X : Type*}
14
15 /-- Remove finitely many coordinates while preserving the distinguished coordinate. -/
16 theorem finite_elimination (χ : I → X → ℂ)
17 (hsep : ∀ u v : X, u ≠ v → ∃ i : I, χ i u ≠ χ i v)
18 (S : Submodule ℂ (X → ℂ))
19 (hS : ∀ i f, f ∈ S → (fun x => χ i x * f x) ∈ S)
20 (u : X) (f : X → ℂ) (hf : f ∈ S) (t : Finset X) :
21 ∃ g : X → ℂ, g ∈ S ∧ g u = f u ∧ ∀ v ∈ t, v ≠ u → g v = 0 := by
22 classical
23 induction t using Finset.induction_on with
24 | empty => exact ⟨f, hf, rfl, by simp⟩
25 | @insert v t _ ih =>
26 obtain ⟨g, hg, hgu, hgt⟩ := ih
27 by_cases hv : v = u
28 · refine ⟨g, hg, hgu, ?_⟩
29 intro w hw hwu
30 rcases Finset.mem_insert.mp hw with rfl | hw
31 · exact (hwu hv).elim
32 · exact hgt w hw hwu
33 · obtain ⟨i, hi⟩ := hsep u v (Ne.symm hv)
34 let g' : X → ℂ := (χ i u - χ i v)⁻¹ •
35 ((fun x => χ i x * g x) - χ i v • g)
36 have hg' : g' ∈ S :=
37 S.smul_mem _ (S.sub_mem (hS i g hg) (S.smul_mem _ hg))
38 have hgu' : g' u = f u := by
39 dsimp [g']
40 rw [← sub_mul, inv_mul_cancel_left₀ (sub_ne_zero.mpr hi), hgu]
41 refine ⟨g', hg', hgu', ?_⟩
42 intro w hw hwu
43 rcases Finset.mem_insert.mp hw with rfl | hw
44 · simp [g']
45 · simp [g', hgt w hw hwu]
46
47 /-- Stability under a separating diagonal family implies stability under every
48 coordinate projector, with no spectral theorem assumed. -/
49 theorem coordinate_projection_mem [Fintype X] [DecidableEq X] (χ : I → X → ℂ)
50 (hsep : ∀ u v : X, u ≠ v → ∃ i : I, χ i u ≠ χ i v)
51 (S : Submodule ℂ (X → ℂ))
52 (hS : ∀ i f, f ∈ S → (fun x => χ i x * f x) ∈ S)
53 (u : X) (f : X → ℂ) (hf : f ∈ S) :
54 (fun x => if x = u then f u else 0) ∈ S := by
55 classical
56 obtain ⟨g, hg, hgu, hgt⟩ := finite_elimination χ hsep S hS u f hf Finset.univ
57 have heq : g = (fun x => if x = u then f u else 0) := by
58 funext x
59 by_cases hx : x = u
60 · subst x; simpa using hgu
61 · simp [hx, hgt x (Finset.mem_univ x) hx]
62 rwa [← heq]
63
64 /-- A nonzero distinguished coordinate gives its unit coordinate vector. -/
65 theorem coordinate_unit_mem [Fintype X] [DecidableEq X] (χ : I → X → ℂ)
66 (hsep : ∀ u v : X, u ≠ v → ∃ i : I, χ i u ≠ χ i v)
67 (S : Submodule ℂ (X → ℂ))
68 (hS : ∀ i f, f ∈ S → (fun x => χ i x * f x) ∈ S)
69 (u : X) (f : X → ℂ) (hf : f ∈ S) (hfu : f u ≠ 0) :
70 (fun x => if x = u then (1 : ℂ) else 0) ∈ S := by
71 classical
72 have h := S.smul_mem (f u)⁻¹ (coordinate_projection_mem χ hsep S hS u f hf)
73 convert h using 1
74 funext x
75 by_cases hx : x = u <;> simp [hx, hfu]
76
77 end PaperXI.SchrodingerFourier
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: 1c9a3b9a2264e75afda601089ef6b0665e2e1f3533f7146575d747946f361125
Back to Paper XI: Packets, Arithmetic Realization, and Conditional Comparison