Documentation

LeanPool.Vlasov.OT.WellPosedness

Well-posedness ladder for the Vlasov equation + Dobrushin stability #

This file builds on the characteristic-flow infrastructure of LeanPool/Vlasov/OT/CharacteristicFlow.lean and carries the theorem ladder of the development:

See formalize/DESIGN.md (in the source repository) for the overall design.

§9 Theorem (Existence and uniqueness for Vlasov) (tex: thm:vlasov-wp) #

theorem Vlasov.integrable_gradW_shift {d : } (gradW : PhysSpace dPhysSpace d) (L : NNReal) (hL : LipschitzWith L gradW) (μ : MeasureTheory.Measure (PhysSpace d)) [MeasureTheory.IsFiniteMeasure μ] (h_yint : MeasureTheory.Integrable (fun (y : PhysSpace d) => y) μ) (xp : PhysSpace d) :
MeasureTheory.Integrable (fun (y : PhysSpace d) => gradW (xp - y)) μ

Lipschitz growth of the force plus a first moment of the measure make the shifted force integrable. The workhorse integrability fact behind every convolveFunctionMeasure estimate.

LocalSmallnessContraction L T IS the Grönwall contraction factor gronwallBound 0 (max 1 L) L T < 1, after unfolding both definitions.

theorem Vlasov.vlasovWellPosedness_local_picard_fixedPointFlow {d : } [NeZero d] (W : PhysSpace d) (gradW : PhysSpace dPhysSpace d) (hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL : LipschitzWith L gradW) (f₀ : MeasureTheory.Measure (PhaseSpace d)) [MeasureTheory.IsProbabilityMeasure f₀] (hf₀_int : MeasureTheory.Integrable (fun (z : PhaseSpace d) => z) f₀) {T : } (hT : 0 < T) (hTL_PL : LocalSmallnessPLBuffer L T) (hTL_con : LocalSmallnessContraction L T) (hB : L / (1 + L) * (Real.exp ((1 + L) * T) - 1) < 1) :
∃ (charX : PhaseSpace dPhysSpace d) (charV : PhaseSpace dPhysSpace d) (M_ρ : ), 0 M_ρ IsCharacteristicFlowOn gradW (fun (t : ) => spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ t)) charX charV (Set.Ioo 0 T) Set.univ (∀ (z : PhaseSpace d), tSet.Icc 0 T, HasDerivWithinAt (fun (s : ) => charX s z) (charV t z) (Set.Icc 0 T) t HasDerivWithinAt (fun (s : ) => charV s z) (-convolveFunctionMeasure gradW (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ t)) (charX t z)) (Set.Icc 0 T) t) (∀ sSet.Icc 0 T, (y : PhysSpace d), y spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s) M_ρ) (∀ sSet.Icc 0 T, MeasureTheory.Integrable (fun (y : PhysSpace d) => y) (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s))) (∀ (s : ), Continuous fun (x : PhysSpace d) => convolveFunctionMeasure gradW (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s)) x) (∀ (s : ), AEMeasurable (fun (z : PhaseSpace d) => (charX s z, charV s z)) f₀) ∀ (s : ) (x : PhysSpace d), MeasureTheory.Integrable (fun (y : PhysSpace d) => gradW (x - y)) (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s))

Sub-helper for vlasovWellPosedness_local — the Picard fixed-point self-consistent flow.

Given f₀ : Measure (PhaseSpace d) with finite first moment, produces a characteristic flow (charX, charV) whose own pushforward's spatial marginal is the reference measure the flow is built against — i.e., the Picard fixed point at the spatial-marginal-curve level:

ρ_t := spatialMarginal (Measure.map (z ↦ (charX t z, charV t z)) f₀) charX, charV solve the Vlasov ODE against this ρ.

The body carries the substantive Picard analysis:

  • M-fixed-point: pick a moment bound M ≥ A/(1 - B) where A = gronwallBound 1 (1+L) ‖gradW 0‖ T · (M_f₀ + 1) and B = L · (exp((1+L)·T) - 1)/(1+L) · (M_f₀ + 1). Requires B < 1, which is the genuine convergence criterion for the moment iteration (stronger than the contraction predicate LocalSmallnessContraction L T alone for large M_f₀ — the contraction predicate gates the q factor; the M-fixed-point additionally requires the moment iteration to converge).
  • Picard sequence x_n : ℕ → VlasovMeasureCurve d T M starting from x_0 := constantCurve (spatialMarginal f₀) and x_{n+1} := Phi_step(x_n).
  • Contraction via Phi_supW1_contraction: supW1On (Φρ) (Φσ) ≤ q · D with q < 1. Apply picard_iterate_isCauchy_of_contraction + picard_iterate_exists_limit to get the W₁-limit ρ_lim : VlasovMeasureCurve d T M.
  • Self-consistency Φ(ρ_lim) = ρ_lim: triangle through x_n.
  • Apply exists_vlasov_characteristicFlow_global_smallT to ρ_lim.extend to get the flow.

Metric-dependence note. The convergence rests on two independent predicates:

  • LocalSmallnessContraction L T := L · (exp((max 1 L)·T) - 1) / (max 1 L) < 1 — exponential in T, from Phi_supW1_contraction's W₁-based shape.
  • LocalSmallnessPLBuffer L T := L · T² < 1 — quadratic, from per-ball Picard-Lindelöf's ball geometry.

These are genuinely independent (neither universally implies the other), so each predicate matches its own sub-argument.

Under the Wbar refactor (Dobrushin 1979, §5), both constraints become linear-in-T and align: LocalSmallnessContraction reduces to C₂(L)·T < 1, and the single algebraic constraint then suffices and is satisfiable for any L > 0 by taking T < 1/C₂(L).

Output bundle (designed to feed vlasovSolutionViaPushforward_isLagrangianVlasovSolutionOn directly):

  • Flow (charX, charV) against the spatial marginal of the pushforward — the load-bearing self-consistency conjunct.
  • Boundary regularity.
  • Uniform moment bound M_ρ on the spatial marginal trajectory.
theorem Vlasov.vlasovWellPosedness_local_moment {d : } (W : PhysSpace d) (gradW : PhysSpace dPhysSpace d) (_hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL : LipschitzWith L gradW) (f₀ : MeasureTheory.Measure (PhaseSpace d)) [MeasureTheory.IsProbabilityMeasure f₀] (hf₀_int : MeasureTheory.Integrable (fun (z : PhaseSpace d) => z) f₀) {T : } (hT : 0 < T) (_hTL_PL : LocalSmallnessPLBuffer L T) (_hTL_con : LocalSmallnessContraction L T) (charX charV : PhaseSpace dPhysSpace d) (M_ρ : ) (hM_ρ_nn : 0 M_ρ) (hflow_on : IsCharacteristicFlowOn gradW (fun (t : ) => spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ t)) charX charV (Set.Ioo 0 T) Set.univ) (h_boundary : ∀ (z : PhaseSpace d), tSet.Icc 0 T, HasDerivWithinAt (fun (s : ) => charX s z) (charV t z) (Set.Icc 0 T) t HasDerivWithinAt (fun (s : ) => charV s z) (-convolveFunctionMeasure gradW (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ t)) (charX t z)) (Set.Icc 0 T) t) (hM_ρ_bound : sSet.Icc 0 T, (y : PhysSpace d), y spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s) M_ρ) (h_y_int_ρ : sSet.Icc 0 T, MeasureTheory.Integrable (fun (y : PhysSpace d) => y) (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s))) (_hconv_cont : ∀ (s : ), Continuous fun (x : PhysSpace d) => convolveFunctionMeasure gradW (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s)) x) (h_aemeas : ∀ (s : ), AEMeasurable (fun (z : PhaseSpace d) => (charX s z, charV s z)) f₀) (h_int_conv : ∀ (s : ) (x : PhysSpace d), MeasureTheory.Integrable (fun (y : PhysSpace d) => gradW (x - y)) (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s))) (t : ) (ht : t Set.Icc 0 T) :

Sub-helper for vlasovWellPosedness_local — moment-bound transport.

Given the Picard fixed-point flow's bundle (from _picard_fixedPointFlow), produces HasFiniteFirstMoment (f t) for t ∈ Icc 0 T, where f := vlasovSolutionViaPushforward charX charV f₀.

Proof strategy:

  1. Boundary transport: extract h_init / h_cont_Icc / h_deriv_Ico from hflow_on + h_boundary via characteristicFlow_boundary_regularity.
  2. flow_distance_growth_bound_on applied to (charX, charV) produces the growth constant C_T with ‖(charX t z, charV t z)‖ ≤ C_T * (‖z‖ + 1).
  3. Probability of f t = Measure.map (z ↦ (charX t z, charV t z)) f₀ from the AEMeasurable witness.
  4. Integrable ‖·‖ on f t: via integrable_map_measure + growth bound + Integrable ‖·‖ f₀.

Factored out to keep vlasovWellPosedness_local's body a clean glue.

theorem Vlasov.vlasovWellPosedness_local_isLagrangian {d : } (W : PhysSpace d) (gradW : PhysSpace dPhysSpace d) (_hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL : LipschitzWith L gradW) (f₀ : MeasureTheory.Measure (PhaseSpace d)) [MeasureTheory.IsProbabilityMeasure f₀] (hf₀_int : MeasureTheory.Integrable (fun (z : PhaseSpace d) => z) f₀) {T : } (hT : 0 < T) (_hTL_PL : LocalSmallnessPLBuffer L T) (_hTL_con : LocalSmallnessContraction L T) (charX charV : PhaseSpace dPhysSpace d) (M_ρ : ) (hM_ρ_nn : 0 M_ρ) (hflow_on : IsCharacteristicFlowOn gradW (fun (t : ) => spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ t)) charX charV (Set.Ioo 0 T) Set.univ) (h_boundary : ∀ (z : PhaseSpace d), tSet.Icc 0 T, HasDerivWithinAt (fun (s : ) => charX s z) (charV t z) (Set.Icc 0 T) t HasDerivWithinAt (fun (s : ) => charV s z) (-convolveFunctionMeasure gradW (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ t)) (charX t z)) (Set.Icc 0 T) t) (hM_ρ_bound : sSet.Icc 0 T, (y : PhysSpace d), y spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s) M_ρ) (h_y_int_ρ : sSet.Icc 0 T, MeasureTheory.Integrable (fun (y : PhysSpace d) => y) (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s))) (hconv_cont : ∀ (s : ), Continuous fun (x : PhysSpace d) => convolveFunctionMeasure gradW (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s)) x) (h_aemeas : ∀ (s : ), AEMeasurable (fun (z : PhaseSpace d) => (charX s z, charV s z)) f₀) (h_int_conv : ∀ (s : ) (x : PhysSpace d), MeasureTheory.Integrable (fun (y : PhysSpace d) => gradW (x - y)) (spatialMarginal (vlasovSolutionViaPushforward charX charV f₀ s))) :

Sub-helper for vlasovWellPosedness_local — IsLagrangianVlasovSolutionOn threading.

Given the Picard fixed-point flow's bundle (from _picard_fixedPointFlow), produces the IsLagrangianVlasovSolutionOn gradW f T conjunct via the 20-hypothesis threading through vlasovSolutionViaPushforward_isLagrangianVlasovSolutionOn.

Proof strategy:

  1. Boundary transport: extract h_init / h_cont_Icc / h_deriv_Ico.
  2. Universal-in-s convolution integrability (handling s outside [0, T] via the clamp-extension argument).
  3. AEMeasurable witness.
  4. IsCharacteristicFlowSelfConsistent: ∀ t, ρ_lim t = Φ charX f₀ t, which expands by definition since ρ_lim = spatialMarginal ∘ f and f = vlasovSolutionViaPushforward charX charV f₀; spatial marginal of pushforward = pushforward under Prod.fst ∘ ... = Φ charX f₀. The composition is the Measure.map_map-with-AEMeasurable bridge.
  5. Continuity of gradW: hL.continuous.
  6. Probability instance of spatialMarginal ∘ f: derived from AEMeasurable + IsProbabilityMeasure f₀.
  7. Final invocation: vlasovSolutionViaPushforward_isLagrangianVlasovSolutionOn with the full hypothesis bundle.

Factored out to keep vlasovWellPosedness_local's body a clean glue.

theorem Vlasov.vlasovWellPosedness_local {d : } [NeZero d] (W : PhysSpace d) (gradW : PhysSpace dPhysSpace d) (hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL : LipschitzWith L gradW) (f₀ : MeasureTheory.Measure (PhaseSpace d)) (hf₀ : HasFiniteFirstMoment f₀) {T : } (hT : 0 < T) (hTL_PL : LocalSmallnessPLBuffer L T) (hTL_con : LocalSmallnessContraction L T) (hB : L / (1 + L) * (Real.exp ((1 + L) * T) - 1) < 1) :
∃ (f : MeasureTheory.Measure (PhaseSpace d)) (charX : PhaseSpace dPhysSpace d) (charV : PhaseSpace dPhysSpace d), f 0 = f₀ (∀ tSet.Icc 0 T, HasFiniteFirstMoment (f t)) (∃ (M : ), 0 M tSet.Icc 0 T, (y : PhysSpace d), y spatialMarginal (f t) M) IsLagrangianVlasovSolutionOn gradW f T (∀ tSet.Icc 0 T, f t = MeasureTheory.Measure.map (fun (z : PhaseSpace d) => (charX t z, charV t z)) (f 0)) (∀ sSet.Icc 0 T, AEMeasurable (fun (z : PhaseSpace d) => (charX s z, charV s z)) (f 0)) (∀ (z : PhaseSpace d), tSet.Icc 0 T, HasDerivWithinAt (fun (s : ) => charX s z) (charV t z) (Set.Icc 0 T) t HasDerivWithinAt (fun (s : ) => charV s z) (-convolveFunctionMeasure gradW (spatialMarginal (f t)) (charX t z)) (Set.Icc 0 T) t) ∀ (z : PhaseSpace d), charX 0 z = z.1 charV 0 z = z.2

Local existence of a Vlasov solution on [0, T].

Under the joint constraint LocalSmallnessPLBuffer L T (L · T² < 1) + LocalSmallnessContraction L T, produces a local-time Vlasov solution f : ℝ → Measure (PhaseSpace d) on [0, T] satisfying initial condition + local finite first moment + IsLagrangianVlasovSolutionOn.

The forward-iteration continuation extends from local T to arbitrary T_target via fixed-T_0 iteration: the contraction time T_0 depends only on L (not on the moment bound M_n propagating through iterations), because Phi_supW1_contraction's q is gronwallBound 0 (max 1 L) (L · D) T — independent of M_n. So the continuation iterates [0, T_0], [T_0, 2 T_0], … with constant step T_0, reaching any T_target in ⌈T_target / T_0⌉ windows; gluing then bridges from IsLagrangianVlasovSolutionOn (local) to IsLagrangianVlasovSolution (global).

Proof strategy:

  1. Initial spatial marginal: μ₀ := spatialMarginal f₀. By HasFiniteFirstMoment f₀, μ₀ is a probability measure with Integrable ‖·‖. Let M_f₀ := ∫ ‖z‖ ∂f₀ (finite by hf₀.2.integral_norm_le).

  2. Picard sequence on spatial marginals:

    • ρ_0 := constantCurve μ₀.
    • ρ_{n+1} obtained via Phi_step applied to ρ_n's flow.

    Each ρ_n lives in VlasovMeasureCurve d T M for an appropriate M chosen so that the growth bound from flow_distance_growth_bound_on stays within M across iterations (the M-preservation constraint).

  3. Contraction estimate via Phi_supW1_contraction: supW1On (ρ_n.ρ) (ρ_{n+1}.ρ) ≤ ENNReal.ofReal (q^n * D₀) for q := gronwallBound 0 (max 1 L) (L · D) T < 1 (since T is small enough per the joint constraint).

  4. Apply picard_iterate_isCauchy_of_contraction to get the ENNReal-form Cauchy condition on the supW1On pseudodistance.

  5. Apply picard_iterate_exists_limit to extract the limit ρ_lim : VlasovMeasureCurve d T M plus pointwise W₁-tendsto.

  6. Self-consistency Φ(ρ_lim) = ρ_lim: triangle through ρ_n using the uniform-tendsto helper, contraction, and pointwise tendsto.

  7. Apply exists_vlasov_characteristicFlow_global_smallT to ρ_lim.extend to get the characteristic flow (charX, charV) against the self-consistent limit.

  8. Define f := vlasovSolutionViaPushforward charX charV f₀. Verify:

    • f 0 = f₀ (from IsCharacteristicFlowOn's initial-condition clause + Measure.map_id).
    • HasFiniteFirstMoment (f t) on [0, T] (from flow_distance_growth_bound_on applied to (charX, charV) + hf₀.2).
    • IsLagrangianVlasovSolutionOn gradW f T via vlasovSolutionViaPushforward_isLagrangianVlasovSolutionOn.

The body invokes vlasovWellPosedness_local_picard_fixedPointFlow for the Picard fixed-point flow, then vlasovWellPosedness_local_finalAssembly_* for the moment and Lagrangian conjuncts, deriving f 0 = f₀ inline.

Banked infrastructure: localized hasDerivAt_of_hasDerivAt_of_ne #

theorem Vlasov.hasDerivAt_of_hasDerivAt_of_ne_in_nhds {f g : } {x₀ : } (h_diff_ne : ∀ᶠ (y : ) in nhds x₀, y x₀HasDerivAt f (g y) y) (hf : ContinuousAt f x₀) (hg : ContinuousAt g x₀) :
HasDerivAt f (g x₀) x₀

Local version of hasDerivAt_of_hasDerivAt_of_ne (Mathlib/Analysis/Calculus/ FDeriv/Extend.lean): if f : ℝ → ℝ has HasDerivAt with derivative g(y) at every y ≠ x₀ in some neighborhood of x₀, and both f and g are continuous at x₀, then f has HasDerivAt with derivative g(x₀) at x₀.

The proof composes hasDerivWithinAt_Iic_of_tendsto_deriv (left side) + hasDerivWithinAt_Ici_of_tendsto_deriv (right side) + HasDerivWithinAt.union, following the Mathlib lemma's proof structure but with locally-quantified hypothesis (enabling use when the punctured-HasDerivAt holds only on a bounded interval, not all of ℝ).

Variable-T_target continuation via fixed-T_0 iteration #

theorem Vlasov.flowConv_continuousWithinAt_Iic_seam {d : } (gradW : PhysSpace dPhysSpace d) (L : NNReal) (hL : LipschitzWith L gradW) (charX : PhaseSpace dPhysSpace d) (f₀ : MeasureTheory.Measure (PhaseSpace d)) [MeasureTheory.IsProbabilityMeasure f₀] (hf₀_int : MeasureTheory.Integrable (fun (z : PhaseSpace d) => z) f₀) {T : } (hT : 0 < T) (μ : MeasureTheory.Measure (PhysSpace d)) (h_push : sSet.Icc 0 T, μ s = MeasureTheory.Measure.map (fun (z : PhaseSpace d) => charX s z) f₀) (h_aemeas : sSet.Icc 0 T, AEMeasurable (fun (z : PhaseSpace d) => charX s z) f₀) (h_charX_cont : ∀ (z : PhaseSpace d), ContinuousWithinAt (fun (s : ) => charX s z) (Set.Icc 0 T) T) (C_T : ) (_hC_T_nn : 0 C_T) (hC_T : sSet.Icc 0 T, ∀ (z : PhaseSpace d), charX s z C_T * (z + 1)) (z : PhaseSpace d) :
ContinuousWithinAt (fun (s : ) => convolveFunctionMeasure gradW (μ s) (charX s z)) (Set.Iic T) T

Route 2 inner kernel for glue_step h_cont_g (LEFT / Iic T): continuity at the seam T of s ↦ (∇W ∗ μ_s)(charX s z), where the window measure curve μ is the flow-pushforward of f₀.

Proven from PROVEN tools only (no deferred OT). The pushforward rewrite (∇W ∗ μ_s)(x) = ∫ z', gradW (x − charX s z') ∂f₀ (integral_map) turns the moving-measure convolution into a fixed-f₀ integral with moving integrand, closed by dominated convergence: convergence from the flow's seam continuity h_charX_cont, domination from the Gronwall growth bound hC_T (Piece A) against f₀'s finite first moment. This is the structural reason h_cont_g does NOT need the general narrow→W₁ kernel — its consumer carries a pushforward representation.

theorem Vlasov.flowConv_continuousWithinAt_Ici_seam {d : } (gradW : PhysSpace dPhysSpace d) (L : NNReal) (hL : LipschitzWith L gradW) (charX : PhaseSpace dPhysSpace d) (f₀ : MeasureTheory.Measure (PhaseSpace d)) [MeasureTheory.IsProbabilityMeasure f₀] (hf₀_int : MeasureTheory.Integrable (fun (z : PhaseSpace d) => z) f₀) {a b : } (hab : a < b) (μ : MeasureTheory.Measure (PhysSpace d)) (h_push : sSet.Icc a b, μ s = MeasureTheory.Measure.map (fun (z : PhaseSpace d) => charX s z) f₀) (h_aemeas : sSet.Icc a b, AEMeasurable (fun (z : PhaseSpace d) => charX s z) f₀) (h_charX_cont : ∀ (z : PhaseSpace d), ContinuousWithinAt (fun (s : ) => charX s z) (Set.Ici a) a) (C_T : ) (_hC_T_nn : 0 C_T) (hC_T : sSet.Icc a b, ∀ (z : PhaseSpace d), charX s z C_T * (z + 1)) (z : PhaseSpace d) :
ContinuousWithinAt (fun (s : ) => convolveFunctionMeasure gradW (μ s) (charX s z)) (Set.Ici a) a

Route 2 inner kernel for glue_step h_cont_g (RIGHT / Ici a): the exact mirror of flowConv_continuousWithinAt_Iic_seam, but on Set.Ici a over a generic window [a, b] with the seam at the lower endpoint a. Same proof shape; the only set-dependent swaps are Iic T → Ici a, Icc_mem_nhdsLEIcc_mem_nhdsGE, and the window [0, T] → [a, b]. Used for the RIGHT side of the seam at T where charX is the composed position flow Z_s z = charX_g (s-T) (charX_prev T z, …) and μ s = spatialMarginal (g (s-T)) is its pushforward of f₀.

theorem Vlasov.vlasovWellPosedness_glue {d : } [NeZero d] (W : PhysSpace d) (gradW : PhysSpace dPhysSpace d) (hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL : LipschitzWith L gradW) (f₀ : MeasureTheory.Measure (PhaseSpace d)) (hf₀ : HasFiniteFirstMoment f₀) {T : } (hT_pos : 0 < T) (f_prev : MeasureTheory.Measure (PhaseSpace d)) (h_prev_init : f_prev 0 = f₀) (h_prev_mom : tSet.Icc 0 T, HasFiniteFirstMoment (f_prev t)) (hM_prev : ∃ (M : ), 0 M tSet.Icc 0 T, (y : PhysSpace d), y spatialMarginal (f_prev t) M) (charX_prev charV_prev : PhaseSpace dPhysSpace d) (h_prev_vlasov : IsVlasovSolutionOn gradW f_prev T) (h_prev_flow : IsCharacteristicFlowOn gradW (fun (t : ) => spatialMarginal (f_prev t)) charX_prev charV_prev (Set.Ioo 0 T) Set.univ) (h_prev_push : tSet.Icc 0 T, f_prev t = MeasureTheory.Measure.map (fun (z : PhaseSpace d) => (charX_prev t z, charV_prev t z)) (f_prev 0)) (h_prev_aemeas : sSet.Icc 0 T, AEMeasurable (fun (z : PhaseSpace d) => (charX_prev s z, charV_prev s z)) (f_prev 0)) (h_prev_boundary : ∀ (z : PhaseSpace d), tSet.Icc 0 T, HasDerivWithinAt (fun (s : ) => charX_prev s z) (charV_prev t z) (Set.Icc 0 T) t HasDerivWithinAt (fun (s : ) => charV_prev s z) (-convolveFunctionMeasure gradW (spatialMarginal (f_prev t)) (charX_prev t z)) (Set.Icc 0 T) t) (h_prev_ic : ∀ (z : PhaseSpace d), charX_prev 0 z = z.1 charV_prev 0 z = z.2) {T_0 : } (hT_0_pos : 0 < T_0) (hT_0_small_PL : LocalSmallnessPLBuffer L T_0) (hT_0_small_con : LocalSmallnessContraction L T_0) (hT_0_small_B : L / (1 + L) * (Real.exp ((1 + L) * T_0) - 1) < 1) :
∃ (f_next : MeasureTheory.Measure (PhaseSpace d)) (charX_next : PhaseSpace dPhysSpace d) (charV_next : PhaseSpace dPhysSpace d), (∀ tSet.Icc 0 T, f_next t = f_prev t) f_next 0 = f₀ (∀ tSet.Icc 0 (T + T_0), HasFiniteFirstMoment (f_next t)) (∃ (M : ), 0 M tSet.Icc 0 (T + T_0), (y : PhysSpace d), y spatialMarginal (f_next t) M) IsLagrangianVlasovSolutionOn gradW f_next (T + T_0) (∀ tSet.Icc 0 (T + T_0), f_next t = MeasureTheory.Measure.map (fun (z : PhaseSpace d) => (charX_next t z, charV_next t z)) (f_next 0)) (∀ sSet.Icc 0 (T + T_0), AEMeasurable (fun (z : PhaseSpace d) => (charX_next s z, charV_next s z)) (f_next 0)) (∀ (z : PhaseSpace d), tSet.Icc 0 (T + T_0), HasDerivWithinAt (fun (s : ) => charX_next s z) (charV_next t z) (Set.Icc 0 (T + T_0)) t HasDerivWithinAt (fun (s : ) => charV_next s z) (-convolveFunctionMeasure gradW (spatialMarginal (f_next t)) (charX_next t z)) (Set.Icc 0 (T + T_0)) t) ∀ (z : PhaseSpace d), charX_next 0 z = z.1 charV_next 0 z = z.2

One-window glue step.

Given a solution f_prev : ℝ → Measure (PhaseSpace d) on [0, T] satisfying the local-existence conjuncts (initial condition + finite first moment + IsLagrangianVlasovSolutionOn), and a window length T_0 satisfying the smallness constraints LocalSmallnessPLBuffer L T_0 + LocalSmallnessContraction L T_0, produces a glued solution f_next : ℝ → Measure (PhaseSpace d) on [0, T + T_0] that agrees with f_prev on [0, T].

Proof strategy:

  1. Shift the initial condition: apply vlasovWellPosedness_local to f_prev T (which has finite first moment by h_prev_mom T) with window length T_0. Gives a solution g : ℝ → Measure (PhaseSpace d) on [0, T_0] with g 0 = f_prev T.

  2. Glue: define f_next t := if t ≤ T then f_prev t else g (t - T). Agreement at t = T is by g 0 = f_prev T.

  3. Verify the four output conjuncts:

    • Initial: f_next 0 = f_prev 0 = f₀.
    • Moment: piecewise from h_prev_mom and g's moment bound.
    • IsLagrangianVlasovSolutionOn on [0, T + T_0]:
      • IsVlasovSolutionOn: weak PDE on Ioo 0 (T + T_0) — split at T, use h_prev_lag.1 for Ioo 0 T part and g's for Ioo T (T+T_0), continuity at T from the integral being continuous.
      • Flow: glue the per-window flows via standard ODE composition (charX_next(t, z) := if t ≤ T then charX_prev(t, z) else charX_g(t - T, (charX_prev(T, z), charV_prev(T, z)))).
      • Pushforward equation: holds piecewise.
      • AEMeasurable witness: composition of AEMeasurable maps.
theorem Vlasov.exists_localSmallness_window (L : NNReal) (hL_pos : 0 < L) :
∃ (T_0 : ), 0 < T_0 LocalSmallnessPLBuffer L T_0 LocalSmallnessContraction L T_0 L / (1 + L) * (Real.exp ((1 + L) * T_0) - 1) < 1

For every positive Lipschitz constant there is a window length satisfying all three per-window smallness constraints — the PL buffer, the contraction, and the envelope closure. Pure threshold arithmetic: T_0 := min(1/√L, T_0_con, T_0_env)/2 with each threshold positive for every L > 0 (no L < 1 restriction).

theorem Vlasov.vlasovWellPosedness_forward {d : } [NeZero d] (W : PhysSpace d) (gradW : PhysSpace dPhysSpace d) (hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL : LipschitzWith L gradW) (hL_pos : 0 < L) (f₀ : MeasureTheory.Measure (PhaseSpace d)) (hf₀ : HasFiniteFirstMoment f₀) {T_target : } (hT_target : 0 < T_target) :
∃ (f : MeasureTheory.Measure (PhaseSpace d)), f 0 = f₀ (∀ tSet.Icc 0 T_target, HasFiniteFirstMoment (f t)) IsLagrangianVlasovSolutionOn gradW f T_target

Forward iteration to arbitrary T_target.

Extends the local-existence theorem from its small-T smallness window to any T_target > 0, by iterating the local theorem with shifted initial data at a fixed step T_0 depending only on L (no L < 1 hypothesis).

Proof strategy:

  1. Pick T_0 := min(T_0_PL, T_0_con, T_0_env) / 2, with T_0_PL := 1/√L (the PL-buffer threshold for L · T_0² < 1), T_0_con/T_0_env the contraction/envelope thresholds. Each is positive for every L > 0, so T_0 > 0 and all three smallness constraints hold.

  2. Pick N := ⌈T_target / T_0⌉₊ so that N · T_0 ≥ T_target.

  3. Nat.rec construction: a solution holding the conjuncts at T = n·T_0.

  4. Take f := f_N and verify the conjuncts for T_target ≤ N · T_0 via IsLagrangianVlasovSolutionOn's monotonicity in T (project down).

Uniqueness over IsLagrangianVlasovSolutionOn per window #

theorem Vlasov.vlasovWellPosedness_uniqueness {d : } (W : PhysSpace d) (gradW : PhysSpace dPhysSpace d) (_hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL : LipschitzWith L gradW) (f₀ : MeasureTheory.Measure (PhaseSpace d)) (_hf₀ : HasFiniteFirstMoment f₀) {T_target : } (hT_target : 0 < T_target) (f g : MeasureTheory.Measure (PhaseSpace d)) (hf_init : f 0 = f₀) (hg_init : g 0 = f₀) (hf_mom : tSet.Icc 0 T_target, HasFiniteFirstMoment (f t)) (hg_mom : tSet.Icc 0 T_target, HasFiniteFirstMoment (g t)) (hf_lag : IsLagrangianVlasovSolutionOn gradW f T_target) (hg_lag : IsLagrangianVlasovSolutionOn gradW g T_target) (t : ) :
t Set.Icc 0 T_targetf t = g t

Uniqueness on the local window.

Two IsLagrangianVlasovSolutionOns with the same initial data agree on [0, T_target].

Proof (closed via Dobrushin uniqueness composition):

  1. Extract IsVlasovSolutionOn from each IsLagrangianVlasovSolutionOn.
  2. Note f 0 = f₀ = g 0 from the init hypotheses.
  3. Apply dobrushin_uniqueness_On (localized Dobrushin uniqueness, the private helper above) to conclude f t = g t.

Universal-in-t bridge to IsLagrangianVlasovSolution #

IsLagrangianVlasovSolutionOn is antitone in the window length: a Lagrangian solution on [0, T] restricts to one on any [0, T'] ⊆ [0, T].

theorem Vlasov.integral_continuousWithinAt_of_flow_rep {d : } (f₀ : MeasureTheory.Measure (PhaseSpace d)) [MeasureTheory.IsProbabilityMeasure f₀] (fcur : MeasureTheory.Measure (PhaseSpace d)) (Φ : PhaseSpace dPhaseSpace d) (g : PhaseSpace d) (hg_cont : Continuous g) (C : ) (hgC : ∀ (z : PhaseSpace d), g z C) (B t₀ : ) (ht₀B : t₀ Set.Icc 0 B) (h_integral_eq : tSet.Icc 0 B, (z : PhaseSpace d), g z fcur t = (z : PhaseSpace d), g (Φ t z) f₀) (h_aesm : tSet.Icc 0 B, MeasureTheory.AEStronglyMeasurable (fun (z : PhaseSpace d) => g (Φ t z)) f₀) (h_ptcont : ∀ (z : PhaseSpace d), ContinuousWithinAt (fun (t : ) => Φ t z) (Set.Icc 0 B) t₀) :
ContinuousWithinAt (fun (t : ) => (z : PhaseSpace d), g z fcur t) (Set.Icc 0 B) t₀

Continuity (within a window, at a point) of t ↦ ∫ g d(fcur t) for a curve represented on the window as a flow pushforward: dominated convergence against the fixed f₀, then transfer along the representation.

theorem Vlasov.vlasovWellPosedness_universal_existence {d : } [NeZero d] (W : PhysSpace d) (gradW : PhysSpace dPhysSpace d) (hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL : LipschitzWith L gradW) (hL_pos : 0 < L) (f₀ : MeasureTheory.Measure (PhaseSpace d)) (hf₀ : HasFiniteFirstMoment f₀) :
∃ (f : MeasureTheory.Measure (PhaseSpace d)), f 0 = f₀ (∀ tSet.Ici 0, HasFiniteFirstMoment (f t)) (∀ (T_target : ), 0 < T_targetIsLagrangianVlasovSolutionOn gradW f T_target) ∀ (g : PhaseSpace d), Continuous gBornology.IsBounded (Set.range g)ContinuousOn (fun (t : ) => (z : PhaseSpace d), g z f t) (Set.Ici 0)

Universal-in-t (forward) existence — bridge to the marquee form.

For any Lipschitz constant L > 0, produces a single f : ℝ → Measure (PhaseSpace d) satisfying IsLagrangianVlasovSolutionOn for every T_target > 0, with finite first moment and narrow continuity on Ici 0. Composes vlasovWellPosedness_forward (forward iteration) + vlasovWellPosedness_uniqueness (agreement on overlaps).

Proof strategy:

  1. Apply vlasovWellPosedness_forward with T_target := n for each n : ℕ, getting per-n solutions f_n : ℝ → Measure (PhaseSpace d).

  2. By vlasovWellPosedness_uniqueness, f_n and f_m agree on Icc 0 (min n m).

  3. Define f t := f_{⌈t⌉ + 1} t for t ≥ 0. By step 2, this is well-defined on t ≥ 0.

  4. IsLagrangianVlasovSolutionOn gradW f T_target for each T_target: composes from the per-window solutions.

  5. Narrow continuity on Ici 0: standard DCT using moment bound + flow growth.

The problem is a forward Cauchy problem; backward time is not on the critical path.

§10 Marquee theorem (tex: thm:vlasov-wp) #

theorem Vlasov.vlasovWellPosedness {d : } [NeZero d] (W : PhysSpace d) [AssW W] (gradW : PhysSpace dPhysSpace d) (hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL_gradW : LipschitzWith L gradW) (f₀ : MeasureTheory.Measure (PhaseSpace d)) (hf₀ : HasFiniteFirstMoment f₀) :
∃ (f : MeasureTheory.Measure (PhaseSpace d)), f 0 = f₀ (∀ tSet.Ici 0, HasFiniteFirstMoment (f t)) (∀ (T_target : ), 0 < T_targetIsLagrangianVlasovSolutionOn gradW f T_target) ∀ (g : PhaseSpace d), Continuous gBornology.IsBounded (Set.range g)ContinuousOn (fun (t : ) => (z : PhaseSpace d), g z f t) (Set.Ici 0)

(tex: thm:vlasov-wp) Forward-in-time existence for the Vlasov equation.

Let f_0 ∈ 𝒫_1(ℝ^d × ℝ^d) be a probability measure with finite first moment. Under Assumption ass:W, for an arbitrary Lipschitz constant of gradW, there exists a narrowly continuous curve t ↦ f_t ∈ 𝒫_1(ℝ^d × ℝ^d) on [0, ∞), with f_{t=0} = f_0, solving eq:vlasov in the Lagrangian sense on every forward window [0, T_target].

Per-window uniqueness over the Lagrangian class is provided separately by vlasovWellPosedness_uniqueness. The proof case-splits on L = 0 (constant force, explicit solution) vs 0 < L (the substantive forward-iteration path), and holds for every L (no smallness restriction).

§10 Dobrushin stability chain #

theorem Vlasov.dobrushin_package_exists {d : } (W : PhysSpace d) [_hW : AssW W] (gradW : PhysSpace dPhysSpace d) (_hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL : LipschitzWith L gradW) (f g : MeasureTheory.Measure (PhaseSpace d)) (hf : IsLagrangianVlasovSolution gradW f) (hg : IsLagrangianVlasovSolution gradW g) (hf_prob : ∀ (t : ), HasFiniteFirstMoment (f t)) (hg_prob : ∀ (t : ), HasFiniteFirstMoment (g t)) :
∃ (C : ), 0 < C ∀ (t : ), 0 twasserstein1 (f t) (g t) ENNReal.ofReal (Real.exp (C * t)) * wasserstein1Coupling (f 0) (g 0)

Package the bound and positivity of C into the existential conclusion of dobrushin: ∃ C > 0, ∀ t ≥ 0, W₁(f_t, g_t) ≤ exp(C·t) · W₁(f_0, g_0). Depends on dobrushin_C_choice (in Basic.lean) and dobrushin_ennreal_bound.

theorem Vlasov.dobrushin {d : } (W : PhysSpace d) [hW : AssW W] (gradW : PhysSpace dPhysSpace d) (hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL : LipschitzWith L gradW) (f g : MeasureTheory.Measure (PhaseSpace d)) (hf : IsLagrangianVlasovSolution gradW f) (hg : IsLagrangianVlasovSolution gradW g) (hf_prob : ∀ (t : ), HasFiniteFirstMoment (f t)) (hg_prob : ∀ (t : ), HasFiniteFirstMoment (g t)) :
∃ (C : ), 0 < C ∀ (t : ), 0 twasserstein1 (f t) (g t) ENNReal.ofReal (Real.exp (C * t)) * wasserstein1 (f 0) (g 0)

(tex: thm:dobrushin) Dobrushin's stability theorem (1979).

Under Assumption ass:W, there exists a constant C = C(L) > 0 such that for any two measure-valued solutions f_t, g_t ∈ 𝒫_1(ℝ^d × ℝ^d) of the Vlasov equation eq:vlasov,

W_1(f_t, g_t) ≤ e^{C·t} · W_1(f_0, g_0), for all t ≥ 0,

where W_1 is the Wasserstein-1 distance. The proof uses a coupling via the characteristic flows eq:char and a Gronwall inequality; the key estimate is |∇W * ρ − ∇W * σ|_∞ ≤ L · W_1(ρ, σ).

The [AssW W] instance and hgradW record the standing setup ass:W (∇W the gradient of an even C^{1,1} potential); the inequality itself consumes only the Lipschitz bound hL — see dobrushin_on below for the minimal-hypothesis window form with the explicit constant C = 2 · max 1 L.

theorem Vlasov.dobrushin_on {d : } (gradW : PhysSpace dPhysSpace d) (L : NNReal) (hL : LipschitzWith L gradW) (f g : MeasureTheory.Measure (PhaseSpace d)) (T : ) (hT : 0 < T) (hf : IsLagrangianVlasovSolutionOn gradW f T) (hg : IsLagrangianVlasovSolutionOn gradW g T) (hf_mom : tSet.Icc 0 T, HasFiniteFirstMoment (f t)) (hg_mom : tSet.Icc 0 T, HasFiniteFirstMoment (g t)) (t : ) :
t Set.Icc 0 Twasserstein1 (f t) (g t) ENNReal.ofReal (Real.exp (2 * (max 1 L) * t)) * wasserstein1 (f 0) (g 0)

Dobrushin stability on the window [0, T] — the public form of the uniform-constant estimate, with the dual W₁ metric on both sides.

Unlike the marquee dobrushin (global two-sided solutions, existential constant), this form (i) consumes exactly what vlasovWellPosedness emits — per-window IsLagrangianVlasovSolutionOn plus window moments — and (ii) exposes the explicit constant C = 2 · max 1 L, which depends only on the force's Lipschitz bound, not on the solution pair. That uniformity is what a mean-field argument quantifying over a family of solutions (e.g. empirical curves, once their flow witnesses are formalized) needs.

theorem Vlasov.dobrushin_forward {d : } (gradW : PhysSpace dPhysSpace d) (L : NNReal) (hL : LipschitzWith L gradW) (f g : MeasureTheory.Measure (PhaseSpace d)) (hf : ∀ (T : ), 0 < TIsLagrangianVlasovSolutionOn gradW f T) (hg : ∀ (T : ), 0 < TIsLagrangianVlasovSolutionOn gradW g T) (hf_mom : tSet.Ici 0, HasFiniteFirstMoment (f t)) (hg_mom : tSet.Ici 0, HasFiniteFirstMoment (g t)) (t : ) :
0 twasserstein1 (f t) (g t) ENNReal.ofReal (Real.exp (2 * (max 1 L) * t)) * wasserstein1 (f 0) (g 0)

Forward-global Dobrushin stability with the explicit uniform constant.

Stability for the solution class vlasovWellPosedness constructs: the hypotheses are verbatim the existence theorem's conclusion clauses (the per-window IsLagrangianVlasovSolutionOn family on every horizon, moments on Set.Ici 0), and the estimate holds for all t ≥ 0 with the pair-independent constant C = 2 · max 1 L. This is the arrow that lets the existence output feed a Dobrushin-type stability input; see vlasovWellPosedness_stability for the packaged composition.

theorem Vlasov.vlasovWellPosedness_stability {d : } [NeZero d] (W : PhysSpace d) [AssW W] (gradW : PhysSpace dPhysSpace d) (hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (hL : LipschitzWith L gradW) (f₀ g₀ : MeasureTheory.Measure (PhaseSpace d)) (hf₀ : HasFiniteFirstMoment f₀) (hg₀ : HasFiniteFirstMoment g₀) :
∃ (f : MeasureTheory.Measure (PhaseSpace d)) (g : MeasureTheory.Measure (PhaseSpace d)), f 0 = f₀ g 0 = g₀ (∀ (T : ), 0 < TIsLagrangianVlasovSolutionOn gradW f T) (∀ (T : ), 0 < TIsLagrangianVlasovSolutionOn gradW g T) ∀ (t : ), 0 twasserstein1 (f t) (g t) ENNReal.ofReal (Real.exp (2 * (max 1 L) * t)) * wasserstein1 f₀ g₀

Well-posedness package: existence + stability, chained.

For any two initial data f₀, g₀ ∈ 𝒫₁, the curves produced by vlasovWellPosedness satisfy the Dobrushin estimate with the explicit constant C = 2 · max 1 L at every t ≥ 0 — the composition of the two headline theorems, recorded so that the existence output demonstrably feeds the stability input (dobrushin_forward).

Coupling-metric Dobrushin stability estimate — the wasserstein1Coupling (primal) analogue of DobrushinStabilityEstimate (Basic). LHS is the genuine dual W₁ metric; the RHS base is the primal coupling-inf metric wasserstein1Coupling. This is the form the B-free core (dobrushin_package_exists) produces.

Equations
Instances For
    theorem Vlasov.meanFieldLimit_coupling {d : } (W : PhysSpace d) (gradW : PhysSpace dPhysSpace d) (_hgradW : ∀ (x : PhysSpace d), gradW x = gradient W x) (L : NNReal) (_hL : LipschitzWith L gradW) (f₀ : MeasureTheory.Measure (PhaseSpace d)) (_hf₀ : HasFiniteFirstMoment f₀) (f : MeasureTheory.Measure (PhaseSpace d)) (_hf_sol : IsLagrangianVlasovSolution gradW f) (hf_init : f 0 = f₀) (X V : (N : ) → Fin NPhysSpace d) (_hSol : ∀ (N : ), IsNewtonSolution N gradW (X N) (V N)) (hInit : Filter.Tendsto (fun (N : ) => wasserstein1Coupling (empiricalMeasure N (X N 0) (V N 0)) f₀) Filter.atTop (nhds 0)) (C : ) (hC : 0 < C) (hDobrushin : ∀ (N : ), DobrushinStabilityEstimateCoupling (empiricalMeasureCurve N (X N) (V N)) f C) (T : ) (_hT : 0 < T) :
    Filter.Tendsto (fun (N : ) => tSet.Icc 0 T, wasserstein1 (empiricalMeasureCurve N (X N) (V N) t) (f t)) Filter.atTop (nhds 0)

    Mean-field limit — B-free coupling form.

    The meanFieldLimit (Basic) analogue that consumes the coupling-metric stability estimate (DobrushinStabilityEstimateCoupling, produced B-free by dobrushin_package_exists) and coupling-metric initial convergence (wasserstein1Coupling (μ_0^N) f₀ → 0). The conclusion is unchanged: convergence of the empirical curves to the Vlasov solution in the genuine dual W₁ metric. Axiom-clean (#print axioms): B-free.

    Why coupling-hInit — the initial-convergence type the B-free limit requires. The B-free estimate puts wasserstein1Coupling on the RHS base, so the squeeze needs wasserstein1Coupling (μ_0^N) f₀ → 0. Standard dual-W₁ initial convergence does NOT supply this B-free: wasserstein1 ≤ wasserstein1Coupling (wasserstein1_le_wasserstein1Coupling), so dual-small does not bound the coupling — the easy direction runs the wrong way for a hypothesis; converting dual→coupling is the hard direction (= Foundation B, wasserstein1_eq_coupling). The two are mathematically equal (KR duality) and coupling-convergence is the natural form for empirical measures (one exhibits couplings to bound the cost from above), so this is a nominal — not a real — strengthening. The all-dual meanFieldLimit (Basic) remains the standard-hypothesis form, routing through the all-dual dobrushin (the single Foundation-B bridge).