Paper II · Lean source

ReleaseRectifiableRSError.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 (1)

KomorebiVerification/PaperII/ReleaseRectifiableRSError.lean354 lines

Original source pathformal/current/KomorebiVerification/PaperII/ReleaseRectifiableRSError.lean
Skip declarations and read code

Skip source text

1 import KomorebiVerification.PaperII.ReleaseRectifiableCycle
2 
3 /-! Classical tagged Riemann–Stieltjes integration and its actual velocity representation. -/
4 set_option autoImplicit false
5 noncomputable section
6 namespace Komorebi.PaperII.ReleaseRectifiableRSError
7 
8 open MeasureTheory Set
9 open scoped Topology BigOperators
10 open Komorebi.PaperII.ReleaseRectifiable
11 
12 variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℂ E]
13   [NormedSpace ℝ E] [CompleteSpace E]
14 
15 /-- Exact tagged-sum error on a single interval, using the actual path velocity. -/
16 theorem tagged_increment_sub_integral {f : ℝ → ℂ} {a b τ : ℝ} {H : ℂ → E}
17     (hf : AbsolutelyContinuousOnInterval f a b)
18     (hH : ContinuousOn H (f '' uIcc a b)) :
19     (f b - f a) • H (f τ) -
20         (∫ s : ℝ in a..b, coordinateVelocity f s • H (f s)) =
21       ∫ s : ℝ in a..b, coordinateVelocity f s • (H (f τ) - H (f s)) := by
22   have hv := integrable_coordinateVelocity hf
23   have hcomp : ContinuousOn (fun s ↦ H (f s)) (uIcc a b) :=
24     hH.comp hf.continuousOn (fun s hs ↦ mem_image_of_mem _ hs)
25   have hi := hv.smul_continuousOn hcomp
26   have hc := hv.smul_continuousOn (continuousOn_const (c := H (f τ)))
27   rw [← integral_coordinateVelocity hf, ← intervalIntegral.integral_smul_const,
28     ← intervalIntegral.integral_sub hc hi]
29   apply intervalIntegral.integral_congr
30   intro s hs
31   exact (smul_sub _ _ _).symm
32 
33 /-- Oscillation times integrated speed bounds the genuine tagged-sum error. -/
34 theorem norm_tagged_increment_sub_integral_le {f : ℝ → ℂ} {a b τ ε : ℝ} {H : ℂ → E}
35     (hab : a ≤ b) (hf : AbsolutelyContinuousOnInterval f a b)
36     (hH : ContinuousOn H (f '' uIcc a b))
37     (hosc : ∀ s ∈ Icc a b, ‖H (f τ) - H (f s)‖ ≤ ε) :
38     ‖(f b - f a) • H (f τ) -
39         (∫ s : ℝ in a..b, coordinateVelocity f s • H (f s))‖ ≤
40       (∫ s : ℝ in a..b, ‖coordinateVelocity f s‖) * ε := by
41   rw [tagged_increment_sub_integral hf hH]
42   calc
43     _ ≤ ∫ s : ℝ in a..b, ‖coordinateVelocity f s‖ * ε := by
44       apply intervalIntegral.norm_integral_le_of_norm_le hab
45       · exact Filter.Eventually.of_forall fun s hs ↦ by
46           rw [norm_smul]
47           exact mul_le_mul_of_nonneg_left (hosc s (Ioc_subset_Icc_self hs)) (norm_nonneg _)
48       · exact (integrable_coordinateVelocity hf).norm.mul_const ε
49     _ = _ := intervalIntegral.integral_mul_const _ _
50 
51 /-- Genuine tagged Riemann–Stieltjes contour sum. -/
52 def taggedSum (f : ℝ → ℂ) (H : ℂ → E) (p q : ℕ → ℝ) (n : ℕ) : E :=
53   ∑ j ∈ Finset.range n, (f (p (j+1)) - f (p j)) • H (f (q j))
54 
55 /-- All endpoints of an ordered partition lie in its endpoint interval. -/
56 theorem partition_mem {a b : ℝ} {n : ℕ} {p : ℕ → ℝ}
57     (hp : MonotoneOn p (Iic n)) (hp0 : p 0 = a) (hpn : p n = b)
58     {j : ℕ} (hj : j ≤ n) : p j ∈ uIcc a b := by
59   have ha : a ≤ p j := by rw [← hp0]; exact hp (by simp) hj (Nat.zero_le j)
60   have hb : p j ≤ b := by rw [← hpn]; exact hp hj (by simp) hj
61   exact Icc_subset_uIcc ⟨ha,hb⟩
62 
63 /-- Every finite ordered partition has total tagged-sum error bounded by one
64 common oscillation bound times the actual integral of speed. -/
65 theorem norm_taggedSum_sub_integral_le {f : ℝ → ℂ} {a b ε : ℝ} {H : ℂ → E}
66     (hf : AbsolutelyContinuousOnInterval f a b)
67     (hH : ContinuousOn H (f '' uIcc a b))
68     {n : ℕ} {p q : ℕ → ℝ}
69     (hp : MonotoneOn p (Iic n)) (hp0 : p 0 = a) (hpn : p n = b)
70     (hosc : ∀ j < n, ∀ s ∈ Icc (p j) (p (j+1)), ‖H (f (q j)) - H (f s)‖ ≤ ε) :
71     ‖taggedSum f H p q n - (∫ s : ℝ in a..b, coordinateVelocity f s • H (f s))‖ ≤
72       (∫ s : ℝ in a..b, ‖coordinateVelocity f s‖) * ε := by
73   have hsub (j : ℕ) (hj : j < n) : uIcc (p j) (p (j+1)) ⊆ uIcc a b :=
74     uIcc_subset_uIcc (partition_mem hp hp0 hpn (Nat.le_of_lt hj))
75       (partition_mem hp hp0 hpn (Nat.succ_le_of_lt hj))
76   have hac (j : ℕ) (hj : j < n) := hf.mono (hsub j hj)
77   have hcont (j : ℕ) (hj : j < n) :
78       ContinuousOn H (f '' uIcc (p j) (p (j+1))) :=
79     hH.mono (image_mono (hsub j hj))
80   have hint (j : ℕ) (hj : j < n) :
81       IntervalIntegrable (fun s ↦ coordinateVelocity f s • H (f s)) volume (p j) (p (j+1)) :=
82     (integrable_coordinateVelocity (hac j hj)).smul_continuousOn
83       ((hcont j hj).comp (hac j hj).continuousOn (fun s hs ↦ mem_image_of_mem _ hs))
84   have hsum : (∑ j ∈ Finset.range n,
85       ∫ s : ℝ in p j..p (j+1), coordinateVelocity f s • H (f s)) =
86         ∫ s : ℝ in a..b, coordinateVelocity f s • H (f s) := by
87     simpa only [hp0,hpn] using intervalIntegral.sum_integral_adjacent_intervals hint
88   have hnormsum : (∑ j ∈ Finset.range n,
89       ∫ s : ℝ in p j..p (j+1), ‖coordinateVelocity f s‖) =
90         ∫ s : ℝ in a..b, ‖coordinateVelocity f s‖ := by
91     simpa only [hp0,hpn] using intervalIntegral.sum_integral_adjacent_intervals
92       (fun j hj ↦ (integrable_coordinateVelocity (hac j hj)).norm)
93   calc
94     _ = ‖∑ j ∈ Finset.range n, ((f (p (j+1)) - f (p j)) • H (f (q j)) -
95         ∫ s : ℝ in p j..p (j+1), coordinateVelocity f s • H (f s))‖ := by
96       rw [Finset.sum_sub_distrib, hsum]
97       rfl
98     _ ≤ ∑ j ∈ Finset.range n, ‖(f (p (j+1)) - f (p j)) • H (f (q j)) -
99         ∫ s : ℝ in p j..p (j+1), coordinateVelocity f s • H (f s)‖ := norm_sum_le _ _
100     _ ≤ ∑ j ∈ Finset.range n, (∫ s : ℝ in p j..p (j+1), ‖coordinateVelocity f s‖) * ε := by
101       apply Finset.sum_le_sum
102       intro j hj
103       have hjn := Finset.mem_range.mp hj
104       exact norm_tagged_increment_sub_integral_le
105         (hp (Nat.le_of_lt hjn) (Nat.succ_le_of_lt hjn) (Nat.le_succ j))
106         (hac j hjn) (hcont j hjn) (hosc j hjn)
107     _ = _ := by rw [← Finset.sum_mul, hnormsum]
108 
109 /-- Classical all-tagged-partitions epsilon-delta contour integral predicate.
110 Repeated partition points are allowed and contribute zero. -/
111 def HasTaggedContourIntegral (f : ℝ → ℂ) (H : ℂ → E) (a b : ℝ) (I : E) : Prop :=
112   a ≤ b ∧ ∀ ε : ℝ, 0 < ε → ∃ δ : ℝ, 0 < δ ∧
113     ∀ (n : ℕ) (p q : ℕ → ℝ), MonotoneOn p (Iic n) → p 0 = a → p n = b →
114       (∀ j < n, q j ∈ Icc (p j) (p (j+1))) →
115       (∀ j < n, p (j+1) - p j < δ) → ‖taggedSum f H p q n - I‖ < ε
116 
117 /-- For every absolutely continuous path, every tagged Riemann–Stieltjes sum
118 converges to the genuine Bochner velocity integral.  This is an all-partitions
119 statement, with no Riemann–Stieltjes/velocity equality assumed in its hypotheses. -/
120 theorem hasTaggedContourIntegral_of_absolutelyContinuous {f : ℝ → ℂ} {a b : ℝ} {H : ℂ → E}
121     (hab : a ≤ b) (hf : AbsolutelyContinuousOnInterval f a b)
122     (hH : ContinuousOn H (f '' uIcc a b)) :
123     HasTaggedContourIntegral f H a b
124       (∫ s : ℝ in a..b, coordinateVelocity f s • H (f s)) := by
125   refine ⟨hab, ?_⟩
126   intro ε hε
127   let V : ℝ := ∫ s : ℝ in a..b, ‖coordinateVelocity f s‖
128   have hV : 0 ≤ V := intervalIntegral.integral_nonneg_of_forall hab (fun s ↦ norm_nonneg _)
129   let η : ℝ := ε / (V+1)
130   have hden : 0 < V+1 := by linarith
131   have hη : 0 < η := div_pos hε hden
132   have hsmall : V * η < ε := by
133     have heq : η * (V+1) = ε := div_mul_cancel₀ ε (ne_of_gt hden)
134     nlinarith
135   have hcomp : ContinuousOn (fun s ↦ H (f s)) (uIcc a b) :=
136     hH.comp hf.continuousOn (fun s hs ↦ mem_image_of_mem _ hs)
137   have huc := isCompact_uIcc.uniformContinuousOn_of_continuous hcomp
138   obtain ⟨δ,hδ,hctl⟩ := Metric.uniformContinuousOn_iff.mp huc η hη
139   refine ⟨δ,hδ,?_⟩
140   intro n p q hp hp0 hpn htag hmesh
141   have hosc : ∀ j < n, ∀ s ∈ Icc (p j) (p (j+1)), ‖H (f (q j)) - H (f s)‖ ≤ η := by
142     intro j hj s hs
143     have ht := htag j hj
144     have hsub : uIcc (p j) (p (j+1)) ⊆ uIcc a b :=
145       uIcc_subset_uIcc (partition_mem hp hp0 hpn (Nat.le_of_lt hj))
146         (partition_mem hp hp0 hpn (Nat.succ_le_of_lt hj))
147     have hdist : dist (q j) s < δ := by
148       have hle : dist (q j) s ≤ p (j+1) - p j := by
149         rw [Real.dist_eq, abs_le]
150         constructor <;> linarith [ht.1, ht.2, hs.1, hs.2]
151       exact hle.trans_lt (hmesh j hj)
152     have hlt := hctl (q j) (hsub (Icc_subset_uIcc ht)) s (hsub (Icc_subset_uIcc hs)) hdist
153     have hlt' : ‖H (f (q j)) - H (f s)‖ < η := by
154       simpa only [dist_eq_norm] using hlt
155     exact hlt'.le
156   exact (norm_taggedSum_sub_integral_le hf hH hp hp0 hpn hosc).trans_lt hsmall
157 
158 omit [NormedSpace ℝ E] [CompleteSpace E] in
159 /-- Orientation-preserving continuous monotone reparameterization preserves
160 the classical tagged contour integral, including flat parameter segments. -/
161 theorem HasTaggedContourIntegral.comp_monotone {f g : ℝ → ℂ} {H : ℂ → E}
162     {a b c d : ℝ} {I : E} {φ : ℝ → ℝ}
163     (hI : HasTaggedContourIntegral g H c d I) (hab : a ≤ b)
164     (hφc : ContinuousOn φ (uIcc a b)) (hφm : MonotoneOn φ (uIcc a b))
165     (hφa : φ a = c) (hφb : φ b = d) (hfg : EqOn f (g ∘ φ) (uIcc a b)) :
166     HasTaggedContourIntegral f H a b I := by
167   refine ⟨hab, ?_⟩
168   intro ε hε
169   obtain ⟨δ,hδ,hctl⟩ := hI.2 ε hε
170   have huc := isCompact_uIcc.uniformContinuousOn_of_continuous hφc
171   obtain ⟨η,hη,hφctl⟩ := Metric.uniformContinuousOn_iff.mp huc δ hδ
172   refine ⟨η,hη,?_⟩
173   intro n p q hp hp0 hpn htag hmesh
174   have hpmem (j : ℕ) (hj : j ≤ n) : p j ∈ uIcc a b := partition_mem hp hp0 hpn hj
175   have hqmem (j : ℕ) (hj : j < n) : q j ∈ uIcc a b :=
176     (uIcc_subset_uIcc (hpmem j (Nat.le_of_lt hj)) (hpmem (j+1) (Nat.succ_le_of_lt hj)))
177       (Icc_subset_uIcc (htag j hj))
178   have hp' : MonotoneOn (φ ∘ p) (Iic n) := by
179     intro j hj k hk hjk
180     exact hφm (hpmem j hj) (hpmem k hk) (hp hj hk hjk)
181   have hp0' : (φ ∘ p) 0 = c := by simp only [Function.comp_apply,hp0,hφa]
182   have hpn' : (φ ∘ p) n = d := by simp only [Function.comp_apply,hpn,hφb]
183   have htag' : ∀ j < n, (φ ∘ q) j ∈ Icc ((φ ∘ p) j) ((φ ∘ p) (j+1)) := by
184     intro j hj
185     exact ⟨hφm (hpmem j (Nat.le_of_lt hj)) (hqmem j hj) (htag j hj).1,
186       hφm (hqmem j hj) (hpmem (j+1) (Nat.succ_le_of_lt hj)) (htag j hj).2⟩
187   have hmesh' : ∀ j < n, (φ ∘ p) (j+1) - (φ ∘ p) j < δ := by
188     intro j hj
189     have hpj : p j ≤ p (j+1) := hp (Nat.le_of_lt hj) (Nat.succ_le_of_lt hj) (Nat.le_succ j)
190     have hd : dist (p (j+1)) (p j) < η := by
191       rw [Real.dist_eq, abs_of_nonneg (sub_nonneg.mpr hpj)]
192       exact hmesh j hj
193     have h := hφctl (p (j+1)) (hpmem (j+1) (Nat.succ_le_of_lt hj))
194       (p j) (hpmem j (Nat.le_of_lt hj)) hd
195     have h' : |φ (p (j+1)) - φ (p j)| < δ := by simpa only [Real.dist_eq] using h
196     exact (le_abs_self (φ (p (j+1)) - φ (p j))).trans_lt h' 
197   have hsum : taggedSum f H p q n = taggedSum g H (φ ∘ p) (φ ∘ q) n := by
198     apply Finset.sum_congr rfl
199     intro j hj
200     have hjn := Finset.mem_range.mp hj
201     rw [hfg (hpmem (j+1) (Nat.succ_le_of_lt hjn)), hfg (hpmem j (Nat.le_of_lt hjn)),
202       hfg (hqmem j hjn)]
203     rfl
204   rw [hsum]
205   exact hctl n (φ ∘ p) (φ ∘ q) hp' hp0' hpn' htag' hmesh'
206 
207 open Komorebi.PaperII.ReleaseArcLength
208 
209 /-- Every continuous bounded-variation path has its original classical tagged
210 contour integral identified with the arclength-reconstructed Bochner velocity
211 integral, including the zero-length case. -/
212 theorem hasTaggedContourIntegral_of_rectifiable {f : ℝ → ℂ} {H : ℂ → E}
213     (hv : BoundedVariationOn f (Icc (0:ℝ) 1))
214     (hc : ContinuousOn f (Icc (0:ℝ) 1))
215     (hH : ContinuousOn H (f '' Icc (0:ℝ) 1)) :
216     HasTaggedContourIntegral f H 0 1
217       (∫ s : ℝ in (0:ℝ)..1, coordinateVelocity (unitIntervalPath f) s •
218         H (unitIntervalPath f s)) := by
219   have h01 : (0:ℝ) ≤ 1 := by norm_num
220   have hGU : LipschitzOnWith ⟨geometricLength f, ENNReal.toReal_nonneg⟩
221       (unitIntervalPath f) (uIcc (0:ℝ) 1) := by
222     simpa only [uIcc_of_le h01] using unitIntervalPath_lipschitz hv hc
223   have hHG : ContinuousOn H (unitIntervalPath f '' uIcc (0:ℝ) 1) := by
224     rw [uIcc_of_le h01, unitIntervalPath_image hv hc]
225     exact hH
226   have hG := hasTaggedContourIntegral_of_absolutelyContinuous h01
227     hGU.absolutelyContinuousOnInterval hHG
228   by_cases hL : geometricLength f = 0
229   · have hfg : EqOn f (unitIntervalPath f ∘ id) (uIcc (0:ℝ) 1) := by
230       intro t ht
231       have ht' : t ∈ Icc (0:ℝ) 1 := by simpa only [uIcc_of_le h01] using ht
232       have hmem : arcMap f t ∈ Icc 0 (geometricLength f) := by
233         rw [← arcMap_image hv hc]
234         exact mem_image_of_mem _ ht'
235       have ha : arcMap f t = 0 := by rw [hL] at hmem; exact le_antisymm hmem.2 hmem.1
236       change f t = arcPath f (geometricLength f * t)
237       rw [hL, zero_mul, ← ha]
238       exact (arcPath_recovers hv t ht').symm
239     exact hG.comp_monotone h01 continuous_id.continuousOn (monotone_id.monotoneOn _) rfl rfl hfg
240   · have hLpos : 0 < geometricLength f := lt_of_le_of_ne ENNReal.toReal_nonneg (Ne.symm hL)
241     have hφc : ContinuousOn (fun t ↦ arcMap f t / geometricLength f) (uIcc (0:ℝ) 1) := by
242       simpa only [uIcc_of_le h01] using (arcMap_continuous hv hc).div_const (geometricLength f)
243     have hφm : MonotoneOn (fun t ↦ arcMap f t / geometricLength f) (uIcc (0:ℝ) 1) := by
244       rw [uIcc_of_le h01]
245       intro x hx y hy hxy
246       exact div_le_div_of_nonneg_right (arcMap_monotone hv hx hy hxy) hLpos.le
247     have hφa : arcMap f 0 / geometricLength f = 0 := by simp
248     have hφb : arcMap f 1 / geometricLength f = 1 := by simp [hL]
249     have hfg : EqOn f (unitIntervalPath f ∘ (fun t ↦ arcMap f t / geometricLength f))
250         (uIcc (0:ℝ) 1) := by
251       intro t ht
252       have ht' : t ∈ Icc (0:ℝ) 1 := by simpa only [uIcc_of_le h01] using ht
253       have hscale : geometricLength f * (arcMap f t / geometricLength f) = arcMap f t := by
254         field_simp
255       change f t = arcPath f (geometricLength f * (arcMap f t / geometricLength f))
256       rw [hscale]
257       exact (arcPath_recovers hv t ht').symm
258     exact hG.comp_monotone h01 hφc hφm hφa hφb hfg
259 
260 omit [NormedSpace ℝ E] [CompleteSpace E] in
261 /-- Every positive mesh tolerance admits an honest finite tagged partition.
262 This rules out a vacuous all-partitions integral predicate. -/
263 theorem exists_tagged_partition {a b δ : ℝ} (hab : a ≤ b) (hδ : 0 < δ) :
264     ∃ (n : ℕ) (p q : ℕ → ℝ), MonotoneOn p (Iic n) ∧ p 0 = a ∧ p n = b ∧
265       (∀ j < n, q j ∈ Icc (p j) (p (j+1))) ∧ (∀ j < n, p (j+1) - p j < δ) := by
266   obtain ⟨n,hn⟩ := exists_nat_gt ((b-a)/δ)
267   have hnp : (0:ℝ) < (n:ℝ) := (div_nonneg (sub_nonneg.mpr hab) hδ.le).trans_lt hn
268   have hnz : (n:ℝ) ≠ 0 := ne_of_gt hnp
269   let p : ℕ → ℝ := fun j ↦ a + (b-a) * (j:ℝ) / (n:ℝ)
270   have hp : MonotoneOn p (Iic n) := by
271     intro j hj k hk hjk
272     dsimp [p]
273     gcongr
274   have hp0 : p 0 = a := by simp [p]
275   have hpn : p n = b := by dsimp [p]; field_simp; ring
276   refine ⟨n,p,p,hp,hp0,hpn,?_,?_⟩
277   · intro j hj
278     exact ⟨le_rfl, hp (Nat.le_of_lt hj) (Nat.succ_le_of_lt hj) (Nat.le_succ j)⟩
279   · intro j hj
280     have hstep : p (j+1) - p j = (b-a)/(n:ℝ) := by dsimp [p]; push_cast; ring
281     rw [hstep,div_lt_iff₀ hnp]
282     have hlt := (div_lt_iff₀ hδ).mp hn
283     nlinarith
284 
285 omit [NormedSpace ℝ E] [CompleteSpace E] in
286 /-- Classical tagged contour integrals have a unique value. -/
287 theorem HasTaggedContourIntegral.unique {f : ℝ → ℂ} {H : ℂ → E} {a b : ℝ} {I J : E}
288     (hI : HasTaggedContourIntegral f H a b I) (hJ : HasTaggedContourIntegral f H a b J) : I = J := by
289   apply eq_of_forall_dist_le
290   intro ε hε
291   obtain ⟨δI,hδI,hctlI⟩ := hI.2 (ε/2) (by positivity)
292   obtain ⟨δJ,hδJ,hctlJ⟩ := hJ.2 (ε/2) (by positivity)
293   obtain ⟨n,p,q,hp,hp0,hpn,htag,hmesh⟩ :=
294     exists_tagged_partition hI.1 (lt_min hδI hδJ)
295   have hSI := hctlI n p q hp hp0 hpn htag (fun j hj ↦ (hmesh j hj).trans_le (min_le_left _ _))
296   have hSJ := hctlJ n p q hp hp0 hpn htag (fun j hj ↦ (hmesh j hj).trans_le (min_le_right _ _))
297   have htri := dist_triangle I (taggedSum f H p q n) J
298   have hSI' : dist I (taggedSum f H p q n) < ε/2 := by
299     simpa only [dist_eq_norm,norm_sub_rev] using hSI
300   have hSJ' : dist (taggedSum f H p q n) J < ε/2 := by simpa only [dist_eq_norm] using hSJ
301   linarith
302 
303 /-- The classical contour integral defined by its unique limit of all tagged
304 Riemann–Stieltjes sums; zero is only the undefined-case convention. -/
305 def taggedContourIntegral (f : ℝ → ℂ) (H : ℂ → E) (a b : ℝ) : E := by
306   classical
307   exact if h : ∃ I, HasTaggedContourIntegral f H a b I then Classical.choose h else 0
308 
309 omit [NormedSpace ℝ E] [CompleteSpace E] in
310 /-- A genuine all-tagged-partitions limit identifies the classical integral. -/
311 theorem HasTaggedContourIntegral.taggedContourIntegral_eq {f : ℝ → ℂ} {H : ℂ → E}
312     {a b : ℝ} {I : E} (hI : HasTaggedContourIntegral f H a b I) :
313     taggedContourIntegral f H a b = I := by
314   classical
315   have hex : ∃ J, HasTaggedContourIntegral f H a b J := ⟨I,hI⟩
316   simp only [taggedContourIntegral,dite_eq_left hex]
317   exact (Classical.choose_spec hex).unique hI
318 
319 /-- Original continuous rectifiable contours integrate by the constructed
320 arclength velocity, as a proved comparison of two distinct definitions. -/
321 theorem taggedContourIntegral_eq_velocity_of_rectifiable {f : ℝ → ℂ} {H : ℂ → E}
322     (hv : BoundedVariationOn f (Icc (0:ℝ) 1))
323     (hc : ContinuousOn f (Icc (0:ℝ) 1))
324     (hH : ContinuousOn H (f '' Icc (0:ℝ) 1)) :
325     taggedContourIntegral f H 0 1 =
326       ∫ s : ℝ in (0:ℝ)..1, coordinateVelocity (unitIntervalPath f) s • H (unitIntervalPath f s) :=
327   (hasTaggedContourIntegral_of_rectifiable hv hc hH).taggedContourIntegral_eq
328 
329 open Komorebi.PaperII.ReleaseAnalyticContour
330 open Komorebi.PaperII.ReleaseRectifiableCycle
331 
332 /-- Sum of the original classical rectifiable contour integrals equals the
333 actual constructed IntegralCycle line integral, retaining each occurrence. -/
334 theorem sum_taggedContourIntegral_eq_lineIntegral (n : ℕ) (f : Fin n → ℝ → ℂ)
335     (hv : ∀ i, BoundedVariationOn (f i) (Icc (0:ℝ) 1))
336     (hc : ∀ i, ContinuousOn (f i) (Icc (0:ℝ) 1))
337     (hclosed : ∀ i, f i 1 = f i 0) {H : ℂ → E}
338     (hH : ∀ i, ContinuousOn H (f i '' Icc (0:ℝ) 1)) :
339     (∑ i : Fin n, taggedContourIntegral (f i) H 0 1) =
340       (cycleOfRectifiable n f hv hc hclosed).lineIntegral H := by
341   unfold IntegralCycle.lineIntegral
342   apply Finset.sum_congr rfl
343   intro i hi
344   rw [taggedContourIntegral_eq_velocity_of_rectifiable (hv i) (hc i) (hH i)]
345   change (∫ s : ℝ in (0:ℝ)..1, coordinateVelocity (unitIntervalPath (f i)) s • H (unitIntervalPath (f i) s)) =
346     ∫ s : ℝ in (0:ℝ)..1, coordinateVelocity (unitIntervalPath (f i)) s •
347       H ((cycleOfRectifiable n f hv hc hclosed).curve i s)
348   apply intervalIntegral.integral_congr
349   intro s hs
350   exact congrArg (fun z : ℂ ↦ coordinateVelocity (unitIntervalPath (f i)) s • H z)
351     (curve_cycleOfRectifiable n f hv hc hclosed i s
352       (by simpa only [uIcc_of_le (by norm_num : (0:ℝ) ≤ 1)] using hs)).symm
353 
354 end Komorebi.PaperII.ReleaseRectifiableRSError

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: 77d9bcaee7694e27d95c7baed667afca223a6096abde3f94b786e07be993c356

Original source on GitHub

Back to Paper II: Refinement Towers, Weighted Transfer, and Integral Separation of Operator Packets