Documentation

LeanPool.NavierStokesAndEuler.Euler.TransverseVariationalInverse

The actual zero-endpoint transverse displacement inverse #

We use the derivative of the physical displacement as the Hilbert-space variable. Terminal integration supplies the displacement. Its initial trace and its moving normal component are bounded linear constraints, hence define a closed Hilbert subspace. The kinetic energy is exactly the squared norm on this space; no norm equivalence or pre-existing differential inverse is assumed.

This constructs the weak transverse inverse in source lines 172--184. The coordinate identity η = F R ξ and strong coordinate evolution require the separate frame and regularity arguments; they are not assumed in this file.

Recovering the source's transverse coordinates #

The moving plane with normal (F⁻¹)* m₀ is exactly the image under F of the fixed plane m₀⊥. Orthogonal projection gives a bounded coordinate map, and on the moving plane its reconstruction is the identity. These are coefficient identities, not assumptions about a differential inverse.

@[reducible, inline]

The fixed reference transverse plane.

Equations
Instances For

    The actual pulled-back normal used by the packet construction.

    Equations
    Instances For

      Bounded recovery of fixed-plane coordinates from a physical displacement.

      Equations
      Instances For

        Moving tangency is exactly fixed-plane membership after applying F⁻¹.

        theorem EulerTransverseFrameCoordinates.reconstruct {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (F : E ≃L[] E) (m₀ η : E) ( : inner (movingNormal F m₀) η = 0) :
        F ((coordinates F m₀) η) = η

        Reconstructing a tangent displacement from its recovered coordinates is exact.

        theorem EulerTransverseFrameCoordinates.coordinates_leftInverse {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] (F : E ≃L[] E) (m₀ : E) (ξ : (referencePlane m₀)) :
        (coordinates F m₀) (F ξ) = ξ

        The coordinate map is a left inverse to F restricted to the reference plane.

        The coordinate map has the expected polynomial bound from the inverse frame.

        Any orthonormal identification with the fixed plane gives the source's R⊥ coordinates.

        Equations
        Instances For
          theorem EulerTransverseFrameCoordinates.frame_reconstruct {E : Type u_1} {U : Type u_2} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] [NormedAddCommGroup U] [InnerProductSpace U] (F : E ≃L[] E) (m₀ η : E) (R : U ≃ₗᵢ[] (referencePlane m₀)) ( : inner (movingNormal F m₀) η = 0) :
          F (R ((frameCoordinates F m₀ R) η)) = η

          The full source reconstruction η = F R⊥ ξ follows from moving tangency.

          Passing to an orthonormal coordinate basis has no extra norm cost.

          noncomputable def EulerTransverseFrameCoordinates.coordinatePath {E : Type u_1} {U : Type u_2} [NormedAddCommGroup E] [InnerProductSpace E] [NormedAddCommGroup U] [InnerProductSpace U] {X : Type u_3} [TopologicalSpace X] (m₀ : E) (R : U ≃ₗᵢ[] (referencePlane m₀)) (A : C(X, E →L[] E)) (η : C(X, E)) :
          C(X, U)

          Applying a continuous inverse-frame path produces actual continuous transverse coordinates, not separate incompatible pointwise choices.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem EulerTransverseFrameCoordinates.coordinatePath_reconstruct {E : Type u_1} {U : Type u_2} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] [NormedAddCommGroup U] [InnerProductSpace U] {X : Type u_3} [TopologicalSpace X] (m₀ : E) (R : U ≃ₗᵢ[] (referencePlane m₀)) (F : XE ≃L[] E) (A : C(X, E →L[] E)) (hA : ∀ (t : X), A t = (F t).symm) (η : C(X, E)) ( : ∀ (t : X), inner (movingNormal (F t) m₀) (η t) = 0) (t : X) :
            (F t) (R ((coordinatePath m₀ R A η) t)) = η t

            The recovered continuous coordinates reconstruct every tangent displacement.

            theorem EulerTransverseFrameCoordinates.coordinatePath_zero_at {E : Type u_1} {U : Type u_2} [NormedAddCommGroup E] [InnerProductSpace E] [NormedAddCommGroup U] [InnerProductSpace U] {X : Type u_3} [TopologicalSpace X] (m₀ : E) (R : U ≃ₗᵢ[] (referencePlane m₀)) (A : C(X, E →L[] E)) (η : C(X, E)) (t : X) ( : η t = 0) :
            (coordinatePath m₀ R A η) t = 0

            Zero endpoint displacements give zero endpoint coordinates.

            theorem EulerTransverseFrameCoordinates.coordinatePath_norm {E : Type u_1} {U : Type u_2} [NormedAddCommGroup E] [InnerProductSpace E] [NormedAddCommGroup U] [InnerProductSpace U] {X : Type u_3} [TopologicalSpace X] (m₀ : E) (R : U ≃ₗᵢ[] (referencePlane m₀)) (A : C(X, E →L[] E)) (η : C(X, E)) (t : X) :
            (coordinatePath m₀ R A η) t A t * η t

            Pointwise coordinate control only pays the actual inverse-frame norm.

            Derivatives of actual zero-endpoint displacements tangent to the moving plane.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              The two endpoint and moving tangency conditions are closed constraints.

              Closedness supplies completeness for the actual displacement-derivative space.

              theorem EulerTransverseVariationalInverse.transverseDerivatives_integral_zero {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (u : (transverseDerivatives T hT m)) :
              (t : ) in 0..T, u t = 0

              The zero initial trace is exactly the zero-mean condition on the time derivative.

              theorem EulerTransverseVariationalInverse.derivative_mem_of_ac {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (u : (EulerTimeLp.TimeLp T E)) (η : E) ( : AbsolutelyContinuousOnInterval η 0 T) (hder : ∀ᵐ (t : ) EulerTimeLp.timeMeasure T, HasDerivAt η (u t) t) (hzero : η 0 = 0) (hterminal : η T = 0) (htangent : ∀ (t : (Set.Icc 0 T)), inner (m t) (η t) = 0) :

              Every genuine absolutely continuous zero-endpoint transverse path with an L² derivative belongs to this Hilbert model. Thus the test space is not an assumed family of already solved displacements.

              noncomputable def EulerTransverseVariationalInverse.transversePrimitive {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) :

              The actual terminal primitive restricted to the transverse derivative space.

              Equations
              Instances For
                theorem EulerTransverseVariationalInverse.transversePrimitive_norm_sq {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (u : (transverseDerivatives T hT m)) :
                (transversePrimitive T hT m) u ^ 2 T ^ 2 / 2 * u ^ 2

                The sharp time Poincaré bound holds on the actual transverse space.

                A convenient polynomial operator bound for the terminal primitive.

                noncomputable def EulerTransverseVariationalInverse.transverseSolver {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) :

                The actual transverse forcing-to-derivative map, constructed from the primitive and the given time-dependent Hessian.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  noncomputable def EulerTransverseVariationalInverse.transverseDisplacement {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) :

                  The continuous displacement is constructed by integrating its solved derivative.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem EulerTransverseVariationalInverse.transverseDisplacement_initial {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) (f : (EulerTimeLp.TimeLp T E)) :
                    ((transverseDisplacement T hT m H K hK hH hsmall) f) 0, = 0

                    The solved displacement vanishes at the initial endpoint.

                    theorem EulerTransverseVariationalInverse.transverseDisplacement_terminal {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) (f : (EulerTimeLp.TimeLp T E)) :
                    ((transverseDisplacement T hT m H K hK hH hsmall) f) T, = 0

                    The solved displacement vanishes at the terminal endpoint.

                    theorem EulerTransverseVariationalInverse.transverseDisplacement_tangent {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) (f : (EulerTimeLp.TimeLp T E)) (t : (Set.Icc 0 T)) :
                    inner (m t) (((transverseDisplacement T hT m H K hK hH hsmall) f) t) = 0

                    The solved displacement belongs to the actual moving transverse plane.

                    theorem EulerTransverseVariationalInverse.transverseDisplacement_hasDerivAt_ae {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) (f : (EulerTimeLp.TimeLp T E)) :
                    ∀ᵐ (t : ) EulerTimeLp.timeMeasure T, HasDerivAt (EulerTerminalTimePrimitive.realPrimitive T ((transverseSolver T hT m H K hK hH hsmall) f)) (((transverseSolver T hT m H K hK hH hsmall) f) t) t

                    The derivative of the constructed displacement is the solved L² field, as an actual almost-everywhere derivative of its continuous real-time representative.

                    theorem EulerTransverseVariationalInverse.transverseSolver_weak {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) (f : (EulerTimeLp.TimeLp T E)) (v : (transverseDerivatives T hT m)) :
                    have u := (transverseSolver T hT m H K hK hH hsmall) f; inner u v - inner ((EulerTimeLp.timeMultiplier T hT H) ((transversePrimitive T hT m) u)) ((transversePrimitive T hT m) v) = -inner f ((transversePrimitive T hT m) v)

                    The actual weak transverse displacement equation, tested against every zero-endpoint displacement in the same moving plane.

                    theorem EulerTransverseVariationalInverse.transverseSolver_unique {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) (f : (EulerTimeLp.TimeLp T E)) (u : (transverseDerivatives T hT m)) (hu : ∀ (v : (transverseDerivatives T hT m)), inner u v - inner ((EulerTimeLp.timeMultiplier T hT H) ((transversePrimitive T hT m) u)) ((transversePrimitive T hT m) v) = -inner f ((transversePrimitive T hT m) v)) :
                    u = (transverseSolver T hT m H K hK hH hsmall) f

                    The constructed weak inverse is unique in the actual transverse displacement space.

                    theorem EulerTransverseVariationalInverse.transverseSolver_norm {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) (f : (EulerTimeLp.TimeLp T E)) :
                    (transverseSolver T hT m H K hK hH hsmall) f 2 * T * f

                    The solved derivative has a polynomial finite-time bound, with no exponential in H.

                    @[simp]
                    theorem EulerTransverseVariationalInverse.transverseDisplacement_zero {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) :
                    (transverseDisplacement T hT m H K hK hH hsmall) 0 = 0

                    Zero forcing has zero displacement, the pointwise-in-label support preservation property.

                    theorem EulerTransverseVariationalInverse.transverseDisplacement_neg {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) (f : (EulerTimeLp.TimeLp T E)) :
                    (transverseDisplacement T hT m H K hK hH hsmall) (-f) = -(transverseDisplacement T hT m H K hK hH hsmall) f

                    The inverse preserves sign, hence oddness in a parameter with unchanged coefficients.

                    theorem EulerTransverseVariationalInverse.transverseDisplacement_integral_zero {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) {α : Type u_2} [MeasurableSpace α] (μ : MeasureTheory.Measure α) (f : α(EulerTimeLp.TimeLp T E)) (hf : MeasureTheory.Integrable f μ) (hmean : (a : α), f a μ = 0) :
                    (a : α), (transverseDisplacement T hT m H K hK hH hsmall) (f a) μ = 0

                    A zero angle mean of the forcing gives a zero angle mean of the displacement. The measure can be the normalized periodic angle measure; coefficients are fixed in this parameter.

                    theorem EulerTransverseVariationalInverse.existsUnique_transverse_weak_solution {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (m : (Set.Icc 0 T)E) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) (f : (EulerTimeLp.TimeLp T E)) :
                    ∃! u : (transverseDerivatives T hT m), ∀ (v : (transverseDerivatives T hT m)), inner u v - inner ((EulerTimeLp.timeMultiplier T hT H) ((transversePrimitive T hT m) u)) ((transversePrimitive T hT m) v) = -inner f ((transversePrimitive T hT m) v)

                    Existence and uniqueness follow from the actual sharp time primitive estimate, the pointwise potential bound, and closed transverse constraints.

                    theorem EulerTransverseVariationalInverse.exists_transverse_frame_displacement {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] (T : ) (hT : 0 T) (H : C((Set.Icc 0 T), E →L[] E)) (K : ) (hK : 0 K) (hH : ∀ (t : (Set.Icc 0 T)) (x : E), inner ((H t) x) x K * x ^ 2) (hsmall : K * (T ^ 2 / 2) 1 / 2) {U : Type u_2} [NormedAddCommGroup U] [InnerProductSpace U] (m₀ : E) (R : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m₀)) (F : (Set.Icc 0 T)E ≃L[] E) (A : C((Set.Icc 0 T), E →L[] E)) (hA : ∀ (t : (Set.Icc 0 T)), A t = (F t).symm) (f : (EulerTimeLp.TimeLp T E)) :
                    have mF := fun (t : (Set.Icc 0 T)) => EulerTransverseFrameCoordinates.movingNormal (F t) m₀; ∃ (u : (transverseDerivatives T hT mF)) (η : C((Set.Icc 0 T), E)) (ξ : C((Set.Icc 0 T), U)), η = (EulerTerminalTimePrimitive.terminalPrimitive T hT) u η 0, = 0 η T, = 0 ξ 0, = 0 ξ T, = 0 (∀ (t : (Set.Icc 0 T)), (F t) (R (ξ t)) = η t) u 2 * T * f ∀ (v : (transverseDerivatives T hT mF)), inner u v - inner ((EulerTimeLp.timeMultiplier T hT H) ((transversePrimitive T hT mF) u)) ((transversePrimitive T hT mF) v) = -inner f ((transversePrimitive T hT mF) v)

                    The actual weak inverse has the source's form η = F R⊥ ξ, with continuous coordinates and both endpoint conditions. The frame is prescribed coefficient data; neither a displacement nor a differential inverse is supplied.