Documentation

LeanPool.Vlasov.ForMathlib.VariationalEquation

Generic analysis for the Vlasov variational equation #

Picard-series solutions and their parameter dependence, a GrΓΆnwall difference-quotient bound, and joint differentiability from continuous partial derivatives. These arguments use only Mathlib, so they can compile independently of the characteristic-flow construction.

noncomputable def Vlasov.picardIter {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (π’œ : ℝ β†’ E β†’L[ℝ] E) (xβ‚€ : E) :
β„• β†’ ℝ β†’ E

Picard iterates for the linear IVP x' = π’œ(t)x, x(0)=xβ‚€ (the V1c engine): Iβ‚€ ≑ xβ‚€, I_{n+1}(t) = βˆ«β‚€α΅— π’œ(s)(Iβ‚™(s)) ds.

Equations
Instances For
    @[simp]
    theorem Vlasov.picardIter_zero {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (π’œ : ℝ β†’ E β†’L[ℝ] E) (xβ‚€ : E) (t : ℝ) :
    picardIter π’œ xβ‚€ 0 t = xβ‚€
    theorem Vlasov.picardIter_succ {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (π’œ : ℝ β†’ E β†’L[ℝ] E) (xβ‚€ : E) (n : β„•) (t : ℝ) :
    picardIter π’œ xβ‚€ (n + 1) t = ∫ (s : ℝ) in 0..t, (π’œ s) (picardIter π’œ xβ‚€ n s)
    theorem Vlasov.picardIter_continuousOn_and_bound {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (π’œ : ℝ β†’ E β†’L[ℝ] E) (xβ‚€ : E) (T : ℝ) (hT : 0 ≀ T) (K : ℝ) (hK : 0 ≀ K) (hcontπ’œ : ContinuousOn π’œ (Set.Icc 0 T)) (hboundπ’œ : βˆ€ t ∈ Set.Icc 0 T, β€–π’œ tβ€– ≀ K) (n : β„•) :
    ContinuousOn (picardIter π’œ xβ‚€ n) (Set.Icc 0 T) ∧ βˆ€ t ∈ Set.Icc 0 T, β€–picardIter π’œ xβ‚€ n tβ€– ≀ (K * t) ^ n / ↑n.factorial * β€–xβ‚€β€–

    C3 V1c-engine β€” the Picard iterates are continuous and satisfy the geometric (Kt)ⁿ/n!-bound on [0,T]. Proved by simultaneous induction (continuity feeds integrability, which feeds the next bound). This Ξ£ (KT)ⁿ/n! = e^{KT}-summable bound is the convergence driver for the V1c fixed point.

    theorem Vlasov.picardSum_continuous_param_joint {Z : Type u_1} {E : Type u_2} [TopologicalSpace Z] [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] (π’œ : Z β†’ ℝ β†’ E β†’L[ℝ] E) (xβ‚€ : E) (T : ℝ) (hT : 0 ≀ T) (K : ℝ) (hK : 0 ≀ K) (hπ’œ_cont : Continuous fun (p : Z Γ— ℝ) => π’œ p.1 p.2) (hπ’œ_bound : βˆ€ (z : Z), βˆ€ s ∈ Set.Icc 0 T, β€–π’œ z sβ€– ≀ K) :
    ContinuousOn (fun (p : Z Γ— ℝ) => βˆ‘' (n : β„•), picardIter (π’œ p.1) xβ‚€ n p.2) (Set.univ Γ—Λ’ Set.Icc 0 T)

    Step 3 (i) β€” joint (z,s) continuity of the Dyson sum (global-hypothesis form). The Picard iterates are jointly continuous, and their common summable majorant gives continuity of the sum on univ Γ—Λ’ Icc 0 T. Fixed-time continuity specializes this result.

    theorem Vlasov.picardSum_continuous_param_Icc_joint {Z : Type u_1} {E : Type u_2} [TopologicalSpace Z] [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] (π’œ : Z β†’ ℝ β†’ E β†’L[ℝ] E) (xβ‚€ : E) (T : ℝ) (hT : 0 ≀ T) (K : ℝ) (hK : 0 ≀ K) (hπ’œ_contOn : ContinuousOn (fun (p : Z Γ— ℝ) => π’œ p.1 p.2) (Set.univ Γ—Λ’ Set.Icc 0 T)) (hπ’œ_bound : βˆ€ (z : Z), βˆ€ s ∈ Set.Icc 0 T, β€–π’œ z sβ€– ≀ K) :
    ContinuousOn (fun (p : Z Γ— ℝ) => βˆ‘' (n : β„•), picardIter (π’œ p.1) xβ‚€ n p.2) (Set.univ Γ—Λ’ Set.Icc 0 T)

    Step 3 (i) β€” joint (z,s) continuity of the Dyson sum on a time window. Clamp time into [0,T] so the global form applies, then transfer back by agreement of the iterates on [0,T]. Fixed-time continuity specializes this result.

    theorem Vlasov.picardSum_continuousOn {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] (π’œ : ℝ β†’ E β†’L[ℝ] E) (xβ‚€ : E) (T : ℝ) (hT : 0 ≀ T) (K : ℝ) (hK : 0 ≀ K) (hcontπ’œ : ContinuousOn π’œ (Set.Icc 0 T)) (hboundπ’œ : βˆ€ t ∈ Set.Icc 0 T, β€–π’œ tβ€– ≀ K) :
    ContinuousOn (fun (t : ℝ) => βˆ‘' (n : β„•), picardIter π’œ xβ‚€ n t) (Set.Icc 0 T)

    C3 V1c-conv β€” the Dyson sum M := βˆ‘β‚™ Iβ‚™ is continuous on [0,T]. Weierstrass M-test: the terms are dominated by the summable majorant (KT)ⁿ/n!Β·β€–xβ‚€β€–, so the series converges uniformly; the uniform limit of the continuous partial sums is continuous. (M is the candidate solution: M = xβ‚€ + βˆ«β‚€α΅— π’œ(s)(M s) ds, proved next.)

    theorem Vlasov.picardSum_continuous_param {Z : Type u_1} {E : Type u_2} [TopologicalSpace Z] [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] (π’œ : Z β†’ ℝ β†’ E β†’L[ℝ] E) (xβ‚€ : E) (T : ℝ) (hT : 0 ≀ T) (K : ℝ) (hK : 0 ≀ K) (hπ’œ_cont : Continuous fun (p : Z Γ— ℝ) => π’œ p.1 p.2) (hπ’œ_bound : βˆ€ (z : Z), βˆ€ s ∈ Set.Icc 0 T, β€–π’œ z sβ€– ≀ K) (t : ℝ) (ht : t ∈ Set.Icc 0 T) :
    Continuous fun (z : Z) => βˆ‘' (n : β„•), picardIter (π’œ z) xβ‚€ n t

    C3 V2-core β€” the Dyson sum is continuous in a parameter. Restrict joint continuity of the Dyson sum to a fixed time in [0,T]. The uniform majorant and convergence argument live in picardSum_continuous_param_joint, shared by both forms.

    theorem Vlasov.picardSum_continuous_param_Icc {Z : Type u_1} {E : Type u_2} [TopologicalSpace Z] [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] (π’œ : Z β†’ ℝ β†’ E β†’L[ℝ] E) (xβ‚€ : E) (T : ℝ) (hT : 0 ≀ T) (K : ℝ) (hK : 0 ≀ K) (hπ’œ_contOn : ContinuousOn (fun (p : Z Γ— ℝ) => π’œ p.1 p.2) (Set.univ Γ—Λ’ Set.Icc 0 T)) (hπ’œ_bound : βˆ€ (z : Z), βˆ€ s ∈ Set.Icc 0 T, β€–π’œ z sβ€– ≀ K) (t : ℝ) (ht : t ∈ Set.Icc 0 T) :
    Continuous fun (z : Z) => βˆ‘' (n : β„•), picardIter (π’œ z) xβ‚€ n t

    Window version of picardSum_continuous_param: restrict the joint window theorem to a fixed time. The clamping and iterate-agreement argument is shared with the joint form.

    theorem Vlasov.picardSum_finset_recurrence {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (π’œ : ℝ β†’ E β†’L[ℝ] E) (xβ‚€ : E) (T : ℝ) (hT : 0 ≀ T) (K : ℝ) (hK : 0 ≀ K) (hcontπ’œ : ContinuousOn π’œ (Set.Icc 0 T)) (hboundπ’œ : βˆ€ t ∈ Set.Icc 0 T, β€–π’œ tβ€– ≀ K) (N : β„•) (t : ℝ) (ht : t ∈ Set.Icc 0 T) :
    βˆ‘ n ∈ Finset.range (N + 1), picardIter π’œ xβ‚€ n t = xβ‚€ + ∫ (s : ℝ) in 0..t, (π’œ s) (βˆ‘ n ∈ Finset.range N, picardIter π’œ xβ‚€ n s)

    C3 V1c-rec β€” finite Picard recurrence. The (N+1)-th partial Dyson sum equals xβ‚€ + βˆ«β‚€α΅— π’œ(s)(Sβ‚™(s)) ds, where Sβ‚™ = βˆ‘_{n<N} Iβ‚™. Only finite-sum swaps (integral_finsetSum, map_sum); no infinite interchange. Passing N β†’ ∞ against the uniform convergence (picardSum_continuousOn's M-test) yields the integral equation for M.

    theorem Vlasov.picardSum_solves_integralEq {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] (π’œ : ℝ β†’ E β†’L[ℝ] E) (xβ‚€ : E) (T : ℝ) (hT : 0 ≀ T) (K : ℝ) (hK : 0 ≀ K) (hcontπ’œ : ContinuousOn π’œ (Set.Icc 0 T)) (hboundπ’œ : βˆ€ t ∈ Set.Icc 0 T, β€–π’œ tβ€– ≀ K) (t : ℝ) (ht : t ∈ Set.Icc 0 T) :
    βˆ‘' (n : β„•), picardIter π’œ xβ‚€ n t = xβ‚€ + ∫ (s : ℝ) in 0..t, (π’œ s) (βˆ‘' (n : β„•), picardIter π’œ xβ‚€ n s)

    C3 V1c-inteq β€” the Dyson sum solves the integral equation. M(t) = xβ‚€ + βˆ«β‚€α΅— π’œ(s)(M s) ds on [0,T], where M = βˆ‘'β‚™ Iβ‚™. Pass N β†’ ∞ in the finite recurrence: LHS β†’ M t (partial sums of the summable series); RHS via DCT (the terms π’œ(s)(S_N s) β†’ π’œ(s)(M s) pointwise, dominated by the constant KΒ·βˆ‘'β‚™ (KT)ⁿ/n!Β·β€–xβ‚€β€–).

    theorem Vlasov.exists_linearODE_solution_Icc {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E] (π’œ : ℝ β†’ E β†’L[ℝ] E) (T : ℝ) (hT : 0 ≀ T) (hπ’œ : ContinuousOn π’œ (Set.Icc 0 T)) (xβ‚€ : E) :
    βˆƒ (M : ℝ β†’ E), M 0 = xβ‚€ ∧ ContinuousOn M (Set.Icc 0 T) ∧ βˆ€ t ∈ Set.Icc 0 T, HasDerivWithinAt M ((π’œ t) (M t)) (Set.Icc 0 T) t

    Existence for a linear ODE with continuous coefficients on a compact interval. The Picard sum gives an explicit solution. Its summable factorial majorant supplies continuity, and its integral equation supplies the derivative through the fundamental theorem of calculus.

    theorem Vlasov.exists_fundamentalMatrix {F : Type u_1} [NormedAddCommGroup F] [NormedSpace ℝ F] [CompleteSpace F] (A : ℝ β†’ F β†’L[ℝ] F) (T : ℝ) (hT : 0 ≀ T) (hA : ContinuousOn A (Set.Icc 0 T)) :
    βˆƒ (M : ℝ β†’ F β†’L[ℝ] F), M 0 = ContinuousLinearMap.id ℝ F ∧ ContinuousOn M (Set.Icc 0 T) ∧ βˆ€ t ∈ Set.Icc 0 T, HasDerivWithinAt M (A t ∘SL M t) (Set.Icc 0 T) t

    C3 V1cβ†’matrix β€” the fundamental matrix of a linear ODE. Specialising exists_linearODE_solution_Icc to the operator space E := F β†’L[ℝ] F with π’œ(s) := A(s) ∘ (Β·) (left composition) and xβ‚€ := id gives the fundamental solution M' = A(t)∘M, M(0) = id. This M(t) is the candidate Dflow t z of the variational equation (#3), once A is the Vlasov field Jacobian A(s) = D_z b(s, Ξ¦_s z) along the flow (F2).

    theorem Vlasov.continuousOn_prod_of_lipschitz_continuousOn {Z : Type u_1} {E : Type u_2} [PseudoMetricSpace Z] [PseudoMetricSpace E] (G : Z β†’ ℝ β†’ E) (T C : ℝ) (hlip : βˆ€ s ∈ Set.Icc 0 T, βˆ€ (z₁ zβ‚‚ : Z), dist (G z₁ s) (G zβ‚‚ s) ≀ C * dist z₁ zβ‚‚) (hcont : βˆ€ (z : Z), ContinuousOn (fun (s : ℝ) => G z s) (Set.Icc 0 T)) :
    ContinuousOn (fun (p : Z Γ— ℝ) => G p.1 p.2) (Set.univ Γ—Λ’ Set.Icc 0 T)

    C3 (shared) β€” Lipschitz-in-parameter + ContinuousOn-in-time β‡’ jointly ContinuousOn. A generic upgrade: if G z Β· is ContinuousOn (Icc 0 T) for each z and z ↦ G z s is C-Lipschitz uniformly over s ∈ [0,T], then (z,s) ↦ G z s is jointly continuous on univ Γ—Λ’ Icc 0 T. Used to derive flow joint continuity (z,s) ↦ Ξ¦_s z from charFlow_lipschitzInZ_via_gronwall_Ioo (Lipschitz-in-z) + per-z continuity in s.

    theorem Vlasov.gronwall_diffQuotient_bound {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (vlin : ℝ β†’ E β†’L[ℝ] E) (K : NNReal) (hvlin_lip : βˆ€ (s : ℝ), LipschitzWith K ⇑(vlin s)) (uh mh Fuh : ℝ β†’ E) (Ξ΅f T t : ℝ) (ht : t ∈ Set.Ioo 0 T) (huh_cont : ContinuousOn uh (Set.Icc 0 T)) (hmh_cont : ContinuousOn mh (Set.Icc 0 T)) (huh_deriv : βˆ€ s ∈ Set.Ioo 0 T, HasDerivAt uh (Fuh s) s) (hmh_deriv : βˆ€ s ∈ Set.Ioo 0 T, HasDerivAt mh ((vlin s) (mh s)) s) (hdefect : βˆ€ s ∈ Set.Ioo 0 T, dist (Fuh s) ((vlin s) (uh s)) ≀ Ξ΅f) (h0 : uh 0 = mh 0) :
    dist (uh t) (mh t) ≀ gronwallBound 0 (↑K) Ξ΅f t

    Generic GrΓΆnwall difference-quotient bound (open-interval ODE + sβ‚€β†’0⁺ limit). Two curves uh, mh that approximately solve the same linear ODE w' = vlinΒ·w on Ioo 0 T from the same datum (uh 0 = mh 0), with mh exact and uh's defect uniformly ≀ Ξ΅f, satisfy dist (uh t) (mh t) ≀ gronwallBound 0 K Ξ΅f t. vlin is abstract (kept opaque to avoid unfolding the heavy vlasovFieldJacobian integral in the GrΓΆnwall application).

    theorem Vlasov.hasFDerivAt_of_continuous_partials {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [CompleteSpace F] {f Ds : ℝ Γ— E β†’ F} {Dzβ‚€ : E β†’L[ℝ] F} (sβ‚€ : ℝ) (zβ‚€ : E) (hDs : βˆ€ (p : ℝ Γ— E), HasDerivAt (fun (s : ℝ) => f (s, p.2)) (Ds p) p.1) (hDs_cont : Continuous Ds) (hDzβ‚€ : HasFDerivAt (fun (z : E) => f (sβ‚€, z)) Dzβ‚€ zβ‚€) :

    Step 3 gating lemma (generic) β€” joint CΒΉ from continuous partial derivatives on a ℝ Γ— E domain (Mathlib-absent). A partial s-derivative Ds p at every point (Ds continuous) plus a partial z-derivative Dzβ‚€ at the base point β‡’ f is FrΓ©chet-differentiable at (sβ‚€,zβ‚€) with total derivative (h,k) ↦ hβ€’Ds(sβ‚€,zβ‚€) + Dzβ‚€ k. Proof: split the increment into an s-part (FTC βˆ«β‚€Κ° Ds(sβ‚€+u,zβ‚€+k)du β‰ˆ hβ€’Dsβ‚€ by continuity of Ds) and a z-part (= Dzβ‚€ k + o(k)). This is the keystone for the joint (s,w) regularity of the two-time flow Ξ¦_{sβ†’t}: the flow's partials are M_s z (jointly continuous, V2) in z and b_s(Ξ¦_s z) in s.

    PR-ABLE (Mathlib upstream candidate). This is a general real-analysis result with no Vlasov content β€” "a function on ℝ Γ— E with a continuous partial derivative in the ℝ factor and a FrΓ©chet partial derivative in the E factor is FrΓ©chet-differentiable" β€” filling a genuine gap in Mathlib/Analysis/Calculus. Generalisation worth doing before a PR: replace the ℝ factor by an arbitrary first factor with an analogous "integrate the partial along segments" hypothesis, and weaken Continuous Ds to ContinuousAt Ds at the base point (the proof only uses a neighbourhood of (sβ‚€,zβ‚€)).

    theorem Vlasov.hasFDerivAt_of_continuous_partials_open {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedSpace ℝ E] [NormedAddCommGroup F] [NormedSpace ℝ F] [CompleteSpace F] {f Ds : ℝ Γ— E β†’ F} {Dzβ‚€ : E β†’L[ℝ] F} {U : Set (ℝ Γ— E)} (hU : IsOpen U) {sβ‚€ : ℝ} {zβ‚€ : E} (hmem : (sβ‚€, zβ‚€) ∈ U) (hDs : βˆ€ p ∈ U, HasDerivAt (fun (s : ℝ) => f (s, p.2)) (Ds p) p.1) (hDs_cont : ContinuousOn Ds U) (hDzβ‚€ : HasFDerivAt (fun (z : E) => f (sβ‚€, z)) Dzβ‚€ zβ‚€) :

    Step 3 gating lemma (LOCAL / open-set form) β€” joint HasFDerivAt from continuous partial derivatives on an open set U βŠ† ℝ Γ— E. The open-set generalisation of hasFDerivAt_of_continuous_partials (which is the U := univ special case) that the PR-note above flagged: the s-partial is required only on U, and Ds only ContinuousOn U. This is the form the Vlasov flow needs β€” its partials exist and are continuous only on the open window Ioo 0 T Γ—Λ’ univ. Proof = the global proof + ball-in-U bookkeeping (B((sβ‚€,zβ‚€),r) βŠ† U; the FTC segment points (u, zβ‚€+p.2), u ∈ uIcc sβ‚€ (sβ‚€+p.1), lie within β€–pβ€– < min Ξ΄ (r/2) of (sβ‚€,zβ‚€), hence in U and within the continuity radius Ξ΄).

    NOTE (consolidation TODO): the global hasFDerivAt_of_continuous_partials above is the univ special case of this; a follow-up cleanup should rewrite it as the one-line corollary hasFDerivAt_of_continuous_partials_open isOpen_univ (Set.mem_univ _) (fun p _ => hDs p) hDs_cont.continuousOn hDzβ‚€ to drop the duplicated proof. PR-ABLE (the more general statement).