The Picard limit and its finite Bielecki norm
DefinitionKLSModular_LevyStochCalc_Ito_PicardContractionFixedPointVendored from the LevyStochCalc library (https://github.com/cgarryZA/LevyStochCalc). picardLimit is the bieleckiLimit of the process-space Picard iterates, and the bundle proves that it is jointly measurable and progressively measurable. When the explicit contraction factor is strictly less than , bieleckiNorm_picardLimit_lt_top proves finiteness of its unweighted Bielecki norm on . These declarations concern the limit construction and its regularity and do not themselves state a full fixed-point or SDE solution theorem.
Original module imports
import LevyStochCalc.Ito.PicardContractionEstimate
Original declaration excerpt
Shown in the original module context.
noncomputable def picardLimit (hT : 0 < T) (X₀ : SBoundedProcess (n := n) P ℱ' T) :
ℝ → Ω → (Fin n → ℝ) :=
bieleckiLimit fun m =>
(picardIter W N ℱ' hℱW hℱN hℱ0 hnull coeffs hReg hLip x₀ hT X₀ m).X
Module navigation
Direct project imports: LevyStochCalc/Ito/PicardContractionEstimate.
Theorems in source order:
measurable_picardStepOnRawStop_slicebieleckiNorm_picardStepOnRawStop_picardLimit_eq_zeroae_eq_zero_of_bieleckiNorm_eq_zeropicardSelfMapRaw_picardLimit_ae_eqbieleckiNorm_picardStepOnRawStop_diff_lepicardStepOnRawStop_congr_aepicardSelfMapRaw_isFixedPoint
Project result: The KLS conjecture.
Original module · LevyStochCalc.Ito.PicardContractionFixedPoint · Frozen source 408915f.
import Definitions.Def_KLSModular_LevyStochCalc_Ito_PicardContractionEstimate
/-
Copyright (c) 2026 Christian Garry. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Christian Garry
-/
-- Vendored from https://github.com/cgarryZA/LevyStochCalc at commit 984dbf0b790031eac05d56fe5a84b65e15e1e932 (upstream path LevyStochCalc/Ito/PicardContractionFixedPoint.lean; Apache-2.0; provenance in formalization/vendor/vendor-lock.json of the KLS repository)
open MeasureTheory ProbabilityTheory
open scoped NNReal ENNReal
namespace LevyStochCalc
namespace Ito
namespace Picard
variable {Ω : Type*} [MeasurableSpace Ω] {E : Type*} [MeasurableSpace E]
variable {P : Measure Ω} [IsProbabilityMeasure P] {ν : Measure E} [SigmaFinite ν]
variable {n d : ℕ} {ℱ : MeasureTheory.Filtration ℝ ‹MeasurableSpace Ω›} {T : ℝ}
variable (W : LevyStochCalc.Brownian.Multidim.MultidimBrownianMotion P d)
(N : LevyStochCalc.Poisson.PoissonRandomMeasure P ν)
(ℱ' : MeasureTheory.Filtration ℝ ‹MeasurableSpace Ω›) [ℱ'.IsRightContinuous]
(hℱW : ∀ j : Fin d, LevyStochCalc.Brownian.IsBrownianFiltration (W.W j) ℱ')
(hℱN : LevyStochCalc.Poisson.IsPoissonFiltration N ℱ')
(hℱ0 : ∀ t : ℝ, t ≤ 0 → ℱ' 0 ≤ ℱ' t)
(hnull : ∀ s : Set Ω, MeasurableSet s → P s = 0 → MeasurableSet[ℱ' 0] s)
(coeffs : LevyStochCalc.Ito.Setting.JumpDiffusionCoeffs n d E)
(hReg : LevyStochCalc.Ito.Setting.JumpDiffusionCoeffs.IsRegular coeffs ν)
variable {L : ℝ}
(hLip : LevyStochCalc.Ito.Setting.JumpDiffusionCoeffs.IsLipschitz coeffs ν L)
(x₀ : Fin n → ℝ)
/-- **The limit of the Picard iterates.** -/
noncomputable def picardLimit (hT : 0 < T) (X₀ : SBoundedProcess (n := n) P ℱ' T) :
ℝ → Ω → (Fin n → ℝ) :=
bieleckiLimit fun m =>
(picardIter W N ℱ' hℱW hℱN hℱ0 hnull coeffs hReg hLip x₀ hT X₀ m).X
theorem measurable_picardLimit (hT : 0 < T) (X₀ : SBoundedProcess (n := n) P ℱ' T) :
Measurable (Function.uncurry
(picardLimit W N ℱ' hℱW hℱN hℱ0 hnull coeffs hReg hLip x₀ hT X₀)) :=
measurable_bieleckiLimit fun m =>
(picardIter W N ℱ' hℱW hℱN hℱ0 hnull coeffs hReg hLip x₀ hT X₀ m).measurable_path
theorem progressivelyMeasurable_picardLimit (hT : 0 < T)
(X₀ : SBoundedProcess (n := n) P ℱ' T) (i : Fin n) :
Probability.ProgressivelyMeasurable ℱ'
fun ω s => picardLimit W N ℱ' hℱW hℱN hℱ0 hnull coeffs hReg hLip x₀ hT X₀ s ω i :=
progressivelyMeasurable_bieleckiLimit
(fun m i' => (picardIter W N ℱ' hℱW hℱN hℱ0 hnull coeffs hReg hLip x₀ hT X₀ m).adapted i') i
omit [ℱ'.IsRightContinuous] hℱW hℱN hℱ0 hnull hReg in
/-- Slice measurability of a jointly measurable path map. -/
theorem measurable_slice_of_uncurry {Z : ℝ → Ω → (Fin n → ℝ)}
(hZm : Measurable (Function.uncurry Z)) (t : ℝ) (i : Fin n) :
Measurable fun ω => Z t ω i :=
(measurable_pi_apply i).comp (Measurable.of_uncurry_left hZm)
/-- The limit of the Picard iterates has finite Bielecki norm at weight `0`. -/
theorem bieleckiNorm_picardLimit_lt_top {β : ℝ} (hβ : 0 < β) (hT : 0 < T)
(X₀ : SBoundedProcess (n := n) P ℱ' T)
(hq : (ENNReal.ofReal
((3 * ((n : ℝ) * L ^ 2 * T + (n : ℝ) * ((d : ℝ) * L ^ 2) + (n : ℝ) * L ^ 2))
/ (2 * β))) ^ ((1 : ℝ) / 2) < 1) :
bieleckiNorm (P := P) 0 T
(picardLimit W N ℱ' hℱW hℱN hℱ0 hnull coeffs hReg hLip x₀ hT X₀) < ⊤ := by
have hYm := measurable_picardLimit W N ℱ' hℱW hℱN hℱ0 hnull coeffs hReg hLip x₀ hT X₀
have hbase : bieleckiNorm (P := P) β T X₀.X < ⊤ :=
lt_of_le_of_lt (bieleckiNorm_le_bieleckiNorm_zero hβ.le T X₀.X) X₀.sup_L2
have hsub := bieleckiNorm_picardIter_sub_bieleckiLimit_le W N ℱ' hℱW hℱN hℱ0 hnull coeffs
hReg hLip x₀ hβ hT X₀ hq 0
have hfin : ((1 - (ENNReal.ofReal
((3 * ((n : ℝ) * L ^ 2 * T + (n : ℝ) * ((d : ℝ) * L ^ 2) + (n : ℝ) * L ^ 2))
/ (2 * β))) ^ ((1 : ℝ) / 2))⁻¹
* bieleckiNorm (P := P) β T (fun t ω i =>
(picardIter W N ℱ' hℱW hℱN hℱ0 hnull coeffs hReg hLip x₀ hT X₀ 1).X t ω i
- (picardIter W N ℱ' hℱW hℱN hℱ0 hnull coeffs hReg hLip x₀ hT X₀ 0).X t ω i))
≠ ⊤ :=
ENNReal.mul_ne_top (ENNReal.inv_ne_top.mpr (tsub_pos_of_lt hq).ne')
(bieleckiNorm_sub_lt_top ℱ' hβ.le _ _).ne
have hd : bieleckiNorm (P := P) β T (fun t ω i => X₀.X t ω i
- picardLimit W N ℱ' hℱW hℱN hℱ0 hnull coeffs hReg hLip x₀ hT X₀ t ω i) < ⊤ := by
refine lt_of_le_of_lt hsub ?_
rw [pow_zero, one_mul]
exact lt_top_iff_ne_top.mpr hfin
refine lt_of_le_of_lt (bieleckiNorm_zero_le_mul (P := P) hβ.le _)
(ENNReal.mul_lt_top ENNReal.ofReal_lt_top ?_)
exact bieleckiNorm_lt_top_of_approx β T
(fun t i => measurable_slice_of_uncurry X₀.measurable_path t i)
(fun t i => measurable_slice_of_uncurry hYm t i) hbase hd
end Picard
end Ito
end LevyStochCalc