Documentation

LeanForControl.ODEs.ODE_properties

ODEs.ODE_properties #

Core ODE definitions and continuous-dependence theorems used throughout the stability track.

Main declarations #

def IsIntegralSolution {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] (t₀ t₁ : ) (x : E) (x₀ : E) (F : EE) :

An integral solution of ẋ = F(t, x) on [t₀, t₁] with initial value x₀: for every t ∈ [t₀, t₁], x(t) = x₀ + ∫_{t₀}^{t} F(s, x(s)) ds.

Equations
Instances For
    theorem IntervalIntegrable_of_lipschitz {E : Type u_1} [NormedAddCommGroup E] {t₀ t₁ : } (hle : t₀ t₁) {f : EE} {z : E} (hf_cont : Continuous fun (p : × E) => f p.1 p.2) (hz : ContinuousOn z (Set.Icc t₀ t₁)) :
    IntervalIntegrable (fun (s : ) => f s (z s)) MeasureTheory.volume t₀ t₁

    s ↦ f(s, z(s)) is interval-integrable on [t₀, t₁] when f is jointly continuous and z is continuous on [t₀, t₁].

    theorem continuous_dependence_ODE {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {t₀ t₁ : } {f g : EE} {y z : E} {y₀ z₀ : E} {L μ : } (ht : t₀ t₁) (hL : 0 < L) (hy : IsIntegralSolution t₀ t₁ y y₀ f) (hz : IsIntegralSolution t₀ t₁ z z₀ fun (s : ) (x : E) => f s x + g s x) (hy_cont : ContinuousOn y (Set.Icc t₀ t₁)) (hz_cont : ContinuousOn z (Set.Icc t₀ t₁)) (hf_cont : Continuous fun (p : × E) => f p.1 p.2) (hgz : IntervalIntegrable (fun (s : ) => g s (z s)) MeasureTheory.volume t₀ t₁) (hLip : tSet.Icc t₀ t₁, LipschitzWith L, (f t)) (hg : tSet.Icc t₀ t₁, ∀ (x : E), g t x μ) (t : ) :
    t Set.Icc t₀ t₁y t - z t y₀ - z₀ * Real.exp (L * (t - t₀)) + μ / L * (Real.exp (L * (t - t₀)) - 1)

    Theorem 3.4 (Continuous dependence on initial states and parameters).

    If y is an integral solution of ẏ = f(t, y) and z is an integral solution of ż = f(t, z) + g(t, z), with f Lipschitz in the state with constant L and g uniformly bounded by μ, then for all t ∈ [t₀, t₁]:

    ‖y(t) − z(t)‖ ≤ ‖y₀ − z₀‖ · exp(L(t−t₀)) + (μ/L) · (exp(L(t−t₀)) − 1).

    We work globally on [t₀, t₁] (rather than on a local domain W ⊂ ℝⁿ) to avoid local-extension boilerplate.

    theorem continuous_dependence_parameters {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] {t₀ t₁ : } {f g : EE} {y z : E} {y₀ z₀ : E} {L α ε : } (ht : t₀ t₁) (hL : 0 < L) ( : 0 < α) (hαε : α * (1 + 1 / L) * Real.exp (L * (t₁ - t₀)) ε) (hy : IsIntegralSolution t₀ t₁ y y₀ f) (hz : IsIntegralSolution t₀ t₁ z z₀ fun (s : ) (x : E) => f s x + g s x) (hy_cont : ContinuousOn y (Set.Icc t₀ t₁)) (hz_cont : ContinuousOn z (Set.Icc t₀ t₁)) (hf_cont : Continuous fun (p : × E) => f p.1 p.2) (hg_cont : Continuous fun (p : × E) => g p.1 p.2) (hLip : tSet.Icc t₀ t₁, LipschitzWith L, (f t)) (hg : tSet.Icc t₀ t₁, ∀ (x : E), g t x α) (hz₀ : z₀ - y₀ α) (t : ) :
    t Set.Icc t₀ t₁y t - z t ε

    Theorem 3.5 (Continuous dependence on parameters).

    A uniform ε-bound: if ‖z₀ − y₀‖ ≤ α and ‖g(t, x)‖ ≤ α for all t, x, and α · (1 + 1/L) · exp(L(t₁−t₀)) ≤ ε, then ‖y(t) − z(t)‖ ≤ ε for all t ∈ [t₀, t₁].

    λ-dependence is modeled via the perturbation term g (i.e., g t x = f_λ t x − f t x). The α-condition plays the role of δ from the classical statement.

    axiom scalar_ode_exists_interval (g : ) (L : ) (hL : 0 < L) (hg_cont : Continuous (Function.uncurry g)) (hg_lip : ∀ (t : ), LipschitzWith L, (g t)) {t₀ t₁ x₀ : } (ht : t₀ t₁) :
    ∃ (z : ), IsIntegralSolution t₀ t₁ z x₀ g ContinuousOn z (Set.Icc t₀ t₁) sSet.Ico t₀ t₁, HasDerivWithinAt z (g s (z s)) (Set.Ici s) s

    Picard-Lindelöf for scalar ODEs on compact intervals.

    For a jointly continuous right-hand side g : ℝ → ℝ → ℝ that is globally Lipschitz in the state variable (uniformly in time), for any compact interval [t₀, t₁] and initial value x₀ : ℝ, there exists an integral solution z that is continuous and has right derivatives matching g on [t₀, t₁).

    This is the scalar, compact-interval instance of the Picard-Lindelöf theorem, which holds because globally Lipschitz continuity prevents finite-time blowup.