Documentation

LeanPool.NavierStokesAndEuler.Euler.SmoothBanachFlow

Smooth dependence of the constructed flow on its initial position #

The actual Picard flow is a continuous family of paths. Its integral equation is inverted locally on the path Banach space: the derivative is the genuine Volterra operator, whose two-sided inverse was constructed from the linear ODE. This proves smooth label dependence at every order.

Construction of the flow and its continuous inverse from a genuine bounded continuous velocity on the prescribed finite time interval. Endpoint extension only defines the auxiliary velocity outside that interval; all stated ODE identities use the original velocity.

noncomputable def EulerBoundedLipschitzFlow.ofTimeInterval {E : Type u_1} [NormedAddCommGroup E] (T : ) (hT : 0 T) (u : C((Set.Icc 0 T), BoundedContinuousFunction E E)) (K : NNReal) (hLip : ∀ (t : (Set.Icc 0 T)), LipschitzWith K (u t)) :

Of time interval, bundling velocity, continuous, lipschitzConstant, lipschitz and the required compatibility proofs.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem EulerBoundedLipschitzFlow.ofTimeInterval_velocity {E : Type u_1} [NormedAddCommGroup E] (T : ) (hT : 0 T) (u : C((Set.Icc 0 T), BoundedContinuousFunction E E)) (K : NNReal) (hLip : ∀ (t : (Set.Icc 0 T)), LipschitzWith K (u t)) (t : (Set.Icc 0 T)) (x : E) :
    (ofTimeInterval T hT u K hLip).velocity (↑t) x = (u t) x
    theorem EulerBoundedLipschitzFlow.exists_flow_and_inverse {E : Type u_1} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (u : C((Set.Icc 0 T), BoundedContinuousFunction E E)) (K : NNReal) (hLip : ∀ (t : (Set.Icc 0 T)), LipschitzWith K (u t)) :
    ∃ (X : EE) (Y : EE), (∀ (x : E), X 0 x = x) (∀ (x : E), Y 0 x = x) Continuous (Function.uncurry X) Continuous (Function.uncurry Y) (∀ (t : ) (x : E), Y t (X t x) = x) (∀ (t : ) (x : E), X t (Y t x) = x) (∀ (t : (Set.Icc 0 T)) (x : E), HasDerivAt (fun (s : ) => X s x) ((u t) (X (↑t) x)) t) ∀ (t : (Set.Icc 0 T)) (x : E), dist (X (↑t) x) x u * |t|

    The actual finite-time flow has an actual two-sided continuous inverse. No flow map, inverse map or ODE solution is assumed.

    Flow data, given by ofTimeInterval T hT A.field ‖A.derivative.field‖₊ (velocity_lipschitz T A).

    Equations
    Instances For
      noncomputable def EulerSmoothBanachFlow.pathFamily {E : Type} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (A : SmoothTimeField (↑(Set.Icc 0 T)) E E) :
      C(E, C((Set.Icc 0 T), E))

      Path family as an element of C(E, C(Icc (0 : ℝ) T, E)).

      Equations
      Instances For
        @[simp]
        theorem EulerSmoothBanachFlow.pathFamily_apply {E : Type} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (A : SmoothTimeField (↑(Set.Icc 0 T)) E E) (x : E) (t : (Set.Icc 0 T)) :
        ((pathFamily T hT A) x) t = (flowData T hT A).forward (↑t) x
        noncomputable def EulerSmoothBanachFlow.pathOperator {E : Type} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (A : SmoothTimeField (↑(Set.Icc 0 T)) E E) (u : C((Set.Icc 0 T), E)) :
        C((Set.Icc 0 T), E)

        Path operator, given by u - EulerContinuousTimeIntegral.integral T hT (A.superposition u).

        Equations
        Instances For
          theorem EulerSmoothBanachFlow.pathFamily_hasDerivWithinAt {E : Type} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (A : SmoothTimeField (↑(Set.Icc 0 T)) E E) (x : E) (t : (Set.Icc 0 T)) :
          HasDerivWithinAt (fun (s : ) => (flowData T hT A).forward s x) ((A.superposition ((pathFamily T hT A) x)) t) (Set.Icc 0 T) t

          The actual nonlinear flow has smooth dependence on its initial point, in the uniform path norm on the whole prescribed time interval.

          theorem EulerSmoothBanachFlow.forward_contDiff {E : Type} [NormedAddCommGroup E] [NormedSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (A : SmoothTimeField (↑(Set.Icc 0 T)) E E) (t : (Set.Icc 0 T)) :
          ContDiff fun (x : E) => (flowData T hT A).forward (↑t) x