Komorebi Space · Lean source

SplitTowerCanonicity.lean

Declared contract recorded Coverage and evidence

The cited release explicitly reports completion of its registered formal contract, under its exact hypotheses.

This viewer reads the retained source; it does not run Lean or assign new claim mappings.

Local imports (2)

KomorebiSpace/SplitTowerCanonicity.lean137 lines

Original source pathlean/KomorebiSpace/SplitTowerCanonicity.lean
Skip declarations and read code

Skip source text

1 import KomorebiSpace.SplitDefectCharts
2 import KomorebiSpace.SplitTowerCoordinates
3 
4 set_option autoImplicit false
5 
6 /-!
7 # Canonicity for the actual split-tower differential
8 
9 Two valid target splittings yield different possible repairs but the same
10 exact core, residual space, and subspace of seed-plus-kernel profiles.
11 The intrinsic exact-core charts change by bounded triangular shears.
12 -/
13 universe u v
14 noncomputable section
15 open scoped NNReal ENNReal
16 namespace KomorebiSpace
17 namespace BanachTower
18 namespace Splitting
19 variable {𝕜 : Type u} [NontriviallyNormedField 𝕜]
20 variable (X : BanachTower.{u,v} 𝕜) {Y : BanachTower.{u,v} 𝕜}
21 variable (L M N : Splitting Y)
22 
23 /-- The seed-plus-innovation profile space has a splitting-independent description. -/
24 theorem semanticSpace_characterization (f : Candidates X Y) :
25     f ∈ L.semanticSpace X ↔ ∀ n, (Y.down n).comp (f (n+1)) = 0 := by
26   rw [L.mem_semanticSpace X]
27   constructor
28   · intro hf n
29     have hn := congrArg (fun a : Candidates X Y => a (n+1)) hf
30     change L.innovation X f n = f (n+1) at hn
31     rw [← hn]
32     exact L.innovation_down X f n
33   · intro hf
34     apply lp.ext
35     funext n
36     cases n with
37     | zero => rfl
38     | succ n =>
39       change f (n+1) - (L.up n).comp ((Y.down n).comp (f (n+1))) = f (n+1)
40       rw [hf n]
41       simp
42 
43 /-- Profile values depend on the splitting, but their possible-value subspace does not. -/
44 theorem semanticSpace_eq : L.semanticSpace X = M.semanticSpace X := by
45   ext f
46   rw [L.semanticSpace_characterization X, M.semanticSpace_characterization X]
47 
48 @[simp] theorem observable_cross (f : Candidates X Y) :
49     L.observable X (M.observable X f) = M.observable X f := by
50   apply (L.mem_semanticSpace X _).mp
51   rw [L.semanticSpace_eq X M]
52   exact (M.mem_semanticSpace X _).mpr (M.observable_idempotent X f)
53 
54 variable (hL : (L.bound : ℝ) * X.bound < 1)
55 variable (hM : (M.bound : ℝ) * X.bound < 1)
56 variable (hN : (N.bound : ℝ) * X.bound < 1)
57 
58 /-- The previously constructed correction is a section of the actual differential. -/
59 def defectSection : SplitDefect.Section (differential X Y) where
60   lift := L.correction X hL
61   right_inv := L.differential_correction X hL
62 
63 @[simp] theorem defectSection_project (f : Candidates X Y) :
64     (L.defectSection X hL).project f = L.repair X hL f := rfl
65 
66 /-- The first factor here is the intrinsic exact core, independent of L. -/
67 def coreCoordinates : Candidates X Y ≃L[𝕜]
68     (SplitDefect.Core (differential X Y) × Residuals X Y) :=
69   (L.defectSection X hL).chart
70 
71 @[simp] theorem coreCoordinates_exact (f : Candidates X Y) :
72     (L.coreCoordinates X hL f).1.val = L.repair X hL f := rfl
73 
74 @[simp] theorem coreCoordinates_residual (f : Candidates X Y) :
75     (L.coreCoordinates X hL f).2 = differential X Y f := rfl
76 
77 /-- A change of splitting does not change the residual coordinate. -/
78 def coreTransition : (SplitDefect.Core (differential X Y) × Residuals X Y) ≃L[𝕜]
79     (SplitDefect.Core (differential X Y) × Residuals X Y) :=
80   (L.defectSection X hL).transition (M.defectSection X hM)
81 
82 theorem coreTransition_formula (z : SplitDefect.Core (differential X Y) × Residuals X Y) :
83     L.coreTransition X M hL hM z =
84       (z.1 + (L.defectSection X hL).difference (M.defectSection X hM) z.2, z.2) :=
85   (L.defectSection X hL).transition_formula (M.defectSection X hM) z
86 
87 theorem coreTransition_cocycle (z : SplitDefect.Core (differential X Y) × Residuals X Y) :
88     M.coreTransition X N hM hN (L.coreTransition X M hL hM z) =
89       L.coreTransition X N hL hN z :=
90   (L.defectSection X hL).transition_cocycle (M.defectSection X hM)
91     (N.defectSection X hN) z
92 
93 /-- Difference of two corrections is an exact transport family. -/
94 theorem correction_difference_exact (r : Residuals X Y) :
95     Exact X Y (L.correction X hL r - M.correction X hM r) := by
96   apply (exact_iff_differential_zero X Y _).mpr
97   simp
98 
99 theorem repair_change (f : Candidates X Y) :
100     M.repair X hM f - L.repair X hL f =
101       (L.correction X hL - M.correction X hM) (differential X Y f) := by
102   simp only [repair_apply, sub_apply]
103   abel
104 
105 theorem repair_change_norm (f : Candidates X Y) :
106     ‖M.repair X hM f - L.repair X hL f‖ ≤
107       ‖L.correction X hL - M.correction X hM‖ * ‖differential X Y f‖ := by
108   rw [L.repair_change X M hL hM f]
109   exact (L.correction X hL - M.correction X hM).le_opNorm _
110 
111 theorem repair_change_gain_bound (f : Candidates X Y) :
112     ‖M.repair X hM f - L.repair X hL f‖ ≤
113       (L.gain X + M.gain X) * ‖differential X Y f‖ := by
114   apply (L.repair_change_norm X M hL hM f).trans
115   apply mul_le_mul_of_nonneg_right _ (norm_nonneg _)
116   exact (norm_sub_le _ _).trans
117     (add_le_add (L.correction_opNorm X hL) (M.correction_opNorm X hM))
118 
119 @[simp] theorem repair_cross (f : Candidates X Y) :
120     L.repair X hL (M.repair X hM f) = M.repair X hM f :=
121   L.repair_fixes_exact X hL _ (M.repair_exact X hM f)
122 
123 theorem repairs_commute_iff :
124     (L.repair X hL).comp (M.repair X hM) =
125       (M.repair X hM).comp (L.repair X hL) ↔
126     L.repair X hL = M.repair X hM :=
127   (L.defectSection X hL).projects_commute_iff (M.defectSection X hM)
128 
129 /-- Two charts coincide on exact inputs even when their repairs differ elsewhere. -/
130 theorem repairs_agree_on_exact (f : Candidates X Y) (hf : Exact X Y f) :
131     L.repair X hL f = M.repair X hM f := by
132   rw [L.repair_fixes_exact X hL f hf, M.repair_fixes_exact X hM f hf]
133 
134 end Splitting
135 end BanachTower
136 end KomorebiSpace
137 end

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: baf657b8924fbcdbecd2ab2b59d4f1dcda091d3a61563f82b09a63a8e9aee236

Original source on GitHub

Back to Komorebi Space