Documentation

LeanPool.NavierStokesAndEuler.Euler.PacketSourceGeometryAssembly

The actual source ray and selected primary satisfy every analytic field of PhysicalGeometryData. Neighbor errors follow from the source coefficient derivatives and the genuine stationary-history estimate.

The actual source normal and the same selected terminal coordinate give the scaled neighboring-label initial errors. Their constants only involve coefficient norms, the terminal size, and the stated scaling.

The actual fixed-terminal history estimate controls the scaled neighbor initial velocity. The loss ε⁻¹ comes from the specified coordinate rescaling and is independent of the oscillation frequency.

theorem EulerPacketMovingFrame.frame_pair_difference_le {p q x y : EulerSmoothLimit.Space} {ε D : ℝ} (hp : ‖p‖ = 1) (hq : ‖q‖ = 1) (hε : 0 < ε) (hε1 : ε ≤ 1) (hxy : ‖x - y‖ ≤ D) :
|inner ℝ p x / ε - inner ℝ p y / ε| + |inner ℝ q x - inner ℝ q y| ≤ 2 * D / ε
theorem EulerPacketMovingFrame.scaledVelocity_initial_difference_le {m v x y : ℝ → EulerSmoothLimit.Space} {t₀ a ε D : ℝ} (hm0 : m t₀ ≠ 0) (hv0 : v t₀ ≠ 0) (hε : 0 < ε) (hε1 : ε ≤ 1) (hxy : ‖x t₀ - y t₀‖ ≤ D) :
|scaledVelocity m v x t₀ a ε 0 0 - scaledVelocity m v y t₀ a ε 0 0| + |scaledVelocity m v x t₀ a ε 0 1 - scaledVelocity m v y t₀ a ε 0 1| ≤ 2 * D / ε
theorem EulerPacketMovingFrame.scaled_inner_difference_le {p x y : EulerSmoothLimit.Space} {b D : ℝ} (hp : ‖p‖ = 1) (hb : 0 < b) (hxy : ‖x - y‖ ≤ D) :
|inner ℝ p x / b - inner ℝ p y / b| ≤ D / b
theorem EulerPacketMovingFrame.scaledRay_initial_difference_le {m v x y : ℝ → EulerSmoothLimit.Space} {s₀ t₀ a ε D : ℝ} (hs₀ : 0 < s₀) (hm0 : m t₀ ≠ 0) (hv0 : v t₀ ≠ 0) (hmv : inner ℝ (m t₀) (v t₀) = 0) (hε : 0 < ε) (hε1 : ε ≤ 1) (hxy : ‖x t₀ - y t₀‖ ≤ D) :
EulerPacketRay.norm3 (scaledRay m v x s₀ t₀ a ε 0 0 - scaledRay m v y s₀ t₀ a ε 0 0) (scaledRay m v x s₀ t₀ a ε 0 1 - scaledRay m v y s₀ t₀ a ε 0 1) (scaledRay m v x s₀ t₀ a ε 0 2 - scaledRay m v y s₀ t₀ a ε 0 2) ≤ 3 * D / (s₀ * ε)
theorem EulerPacketMovingFrame.scaledRay_initial_error {m v r : ℝ → EulerSmoothLimit.Space} {s₀ t₀ a ε D : ℝ} (hs₀ : 0 < s₀) (hm0 : m t₀ ≠ 0) (hv0 : v t₀ ≠ 0) (hmv : inner ℝ (m t₀) (v t₀) = 0) (hε : 0 < ε) (hε1 : ε ≤ 1) (hr : ‖r t₀ - s₀ • EulerPacketCrossProduct.cross (EulerPacketNormalizedPrimary.unit (m t₀)) (EulerPacketNormalizedPrimary.unit (v t₀))‖ ≤ D) :
EulerPacketRay.norm3 (scaledRay m v r s₀ t₀ a ε 0 0) (scaledRay m v r s₀ t₀ a ε 0 1) (scaledRay m v r s₀ t₀ a ε 0 2 - 1) ≤ 3 * D / (s₀ * ε)

A physical initial-ray error around the chosen normal becomes the source's scaled ray error with the fixed factor (s₀ ε)⁻¹.

theorem EulerPacketMovingFrame.frame_pair_operator_difference_le {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace ℝ U] {T ε D : ℝ} (A B : U →L[ℝ] C(↑(Set.Icc 0 T), EulerSmoothLimit.Space)) (ξ : U) (t : ↑(Set.Icc 0 T)) {p q : EulerSmoothLimit.Space} (hp : ‖p‖ = 1) (hq : ‖q‖ = 1) (hε : 0 < ε) (hε1 : ε ≤ 1) (hAB : ‖A - B‖ ≤ D) :
|inner ℝ p ((A ξ) t) / ε - inner ℝ p ((B ξ) t) / ε| + |inner ℝ q ((A ξ) t) - inner ℝ q ((B ξ) t)| ≤ 2 * D * ‖ξ‖ / ε
theorem EulerPacketMovingFrame.history_scaled_pair_difference_le {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace ℝ U] [CompleteSpace U] (T : ℝ) (hT : 0 ≤ T) (Q Q₁ : C(↑(Set.Icc 0 T), U →L[ℝ] EulerSmoothLimit.Space)) (H : C(↑(Set.Icc 0 T), EulerSmoothLimit.Space →L[ℝ] EulerSmoothLimit.Space)) (c : ℝ) (hc : 0 < c) (hQ : ∀ (t : ↑(Set.Icc 0 T)) (ξ : U), c * ‖ξ‖ ^ 2 ≤ ‖(Q t) ξ‖ ^ 2) (hd : ∀ (t : ↑(Set.Icc 0 T)), HasDerivWithinAt (EulerVolterraConvolution.extendPath T hT Q) (Q₁ t) (Set.Icc 0 T) ↑t) (K : ℝ) (hK : 0 ≤ K) (hH : ∀ (t : ↑(Set.Icc 0 T)) (z : EulerSmoothLimit.Space), inner ℝ ((H t) z) z ≤ K * ‖z‖ ^ 2) (hsmall : K * (T ^ 2 / 2) ≤ 1 / 2) (P P₁ : C(↑(Set.Icc 0 T), U →L[ℝ] EulerSmoothLimit.Space)) (G : C(↑(Set.Icc 0 T), EulerSmoothLimit.Space →L[ℝ] EulerSmoothLimit.Space)) (hP : ∀ (t : ↑(Set.Icc 0 T)) (ξ : U), c * ‖ξ‖ ^ 2 ≤ ‖(P t) ξ‖ ^ 2) (hp : ∀ (t : ↑(Set.Icc 0 T)), HasDerivWithinAt (EulerVolterraConvolution.extendPath T hT P) (P₁ t) (Set.Icc 0 T) ↑t) (hG : ∀ (t : ↑(Set.Icc 0 T)) (z : EulerSmoothLimit.Space), inner ℝ ((G t) z) z ≤ K * ‖z‖ ^ 2) (hTpos : 0 < T) (q q₁ d a r : ℝ) (hQn : ‖Q‖ ≤ q) (hPn : ‖P‖ ≤ q) (hQ₁n : ‖Q₁‖ ≤ q₁) (hP₁n : ‖P₁‖ ≤ q₁) (hD : T * ‖Q₁‖ + ‖Q‖ ≤ d) (hD' : T * ‖P₁‖ + ‖P‖ ≤ d) (hA : 1 + T ^ 2 * ‖H‖ ≤ a) (hA' : 1 + T ^ 2 * ‖G‖ ≤ a) (hr : EulerTimeH1FrameTransport.transportCost T Q Q₁ c ≤ r) (hr' : EulerTimeH1FrameTransport.transportCost T P P₁ c ≤ r) (L₀ L₁ LH s : ℝ) (h₀ : ‖Q - P‖ ≤ L₀ * s) (h₁ : ‖Q₁ - P₁‖ ≤ L₁ * s) (hHdiff : ‖H - G‖ ≤ LH * s) (ξ : U) (t : ↑(Set.Icc 0 T)) {p₀ q₀ : EulerSmoothLimit.Space} (hp₀ : ‖p₀‖ = 1) (hq₀ : ‖q₀‖ = 1) {ε : ℝ} (hε : 0 < ε) (hε1 : ε ≤ 1) :
have u := ((EulerTransverseEndpointCoordinates.historyVelocity T hT Q Q₁ H c hc hQ hd K hK hH hsmall) ξ) t; have v := ((EulerTransverseEndpointCoordinates.historyVelocity T hT P P₁ G c hc hP hp K hK hG hsmall) ξ) t; |inner ℝ p₀ u / ε - inner ℝ p₀ v / ε| + |inner ℝ q₀ u - inner ℝ q₀ v| ≤ 2 * EulerTransverseHistoryBounds.historyDifferenceCost T c q q₁ d a r L₀ L₁ LH * s * ‖ξ‖ / ε

The two actual stationary histories use the same terminal coordinate ξ; physical coefficient differences give the scaled initial error.

theorem EulerPacketActivationHistory.actual_scaled_velocity_initial_error {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace ℝ U] [CompleteSpace U] {D : EulerTransversePacketProvider.Data U} (τ : ℝ) (hτ : 0 < τ) (hτT : τ < D.T) (B : EulerTransversePacketProvider.HistoryData (D.initial τ hτ ⋯)) (m v : ℝ → EulerSmoothLimit.Space) (hm : m τ ≠ 0) (hv : v τ ≠ 0) (ξ : U) (a ε lam : ℝ) (hε : 0 < ε) (hε1 : ε ≤ 1) (hu : EulerPacketMovingFrame.scaledVelocity m v (fun (s : ℝ) => EulerPacketPrimaryFactorization.uncutVelocity τ hτ hτT B ξ s 0) τ a ε 0 0 = -lam) (hw : EulerPacketMovingFrame.scaledVelocity m v (fun (s : ℝ) => EulerPacketPrimaryFactorization.uncutVelocity τ hτ hτT B ξ s 0) τ a ε 0 1 = 1) (x : EulerSmoothLimit.Space) :

Exact scale normalization from the actual parent frame and shear. The physical interval ends at the chosen scaled horizon; no extension beyond the source time interval is required.

theorem EulerPacketMovingFrame.activation_coupling_match (B : ℝ → EulerSmoothLimit.Space →L[ℝ] EulerSmoothLimit.Space) (m v : ℝ → EulerSmoothLimit.Space) (t₀ ε : ℝ) :
have a := normalizedCoupling (B t₀) (m t₀) (v t₀); rescaledFrame B m v t₀ a ε 0 0 1 = a
theorem EulerPacketMovingFrame.activation_tilt_match (B : ℝ → EulerSmoothLimit.Space →L[ℝ] EulerSmoothLimit.Space) (m v : ℝ → EulerSmoothLimit.Space) (t₀ ε : ℝ) (ha : normalizedCoupling (B t₀) (m t₀) (v t₀) ≠ 0) (hβ : 0 ≤ normalizedTilt (B t₀) (m t₀) (v t₀)) :
have a := normalizedCoupling (B t₀) (m t₀) (v t₀); have σ := √(normalizedTilt (B t₀) (m t₀) (v t₀)); rescaledFrame B m v t₀ a ε 0 2 1 = a * σ ^ 2
theorem EulerPacketMovingFrame.activation_shear_match (c : ℝ) (m v : ℝ → EulerSmoothLimit.Space) (t₀ a : ℝ) (ha : 0 < a) (hh : 0 < primaryShear c m v t₀) :
have ε := √(a / primaryShear c m v t₀); 0 < ε ∧ rescaledShear c m v t₀ a ε 0 = a / ε ^ 2
theorem EulerPacketMovingFrame.activation_horizon_exact (t₀ T a ε : ℝ) (ha : a ≠ 0) (hε : ε ≠ 0) :
physicalTime t₀ a ε (a * (T - t₀) / ε) = T
theorem EulerPacketMovingFrame.activation_horizon_maps (t₀ T a ε : ℝ) (ha : 0 < a) (hε : 0 < ε) :
Set.MapsTo (physicalTime t₀ a ε) (Set.Icc 0 (a * (T - t₀) / ε)) (Set.Icc t₀ T)

Source ray, given by D.normal.field (D.clamp t) x.

Equations
Instances For

    Source error, given by sourceMatrix D x t-P.B t-primaryShear P.c P.m P.v t • rankOne ℝ (unit (P.v t)) (unit (P.m t)).

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

      Source velocity, given by uncutVelocity τ hτ hτT H A.terminal t x.

      Equations
      Instances For
        theorem EulerPacketSourceGeometry.Guards.radius_cost_le_error {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace ℝ U] {D : EulerTransversePacketProvider.Data U} {τ : ℝ} {hτ : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ hτ ⋯)} (A : Guards hτ hτT P H) :
        P.neighborCost hτ hτT H A.CM A.CH * A.radius ≤ P.totalError hτ hτT H A.CM A.CH A.radius
        theorem EulerPacketSourceGeometry.Guards.sourceError_bound {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace ℝ U] {D : EulerTransversePacketProvider.Data U} {τ : ℝ} {hτ : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ hτ ⋯)} (A : Guards hτ hτT P H) (x : EulerSmoothLimit.Space) (hx : ‖x‖ ≤ A.radius) (t : ℝ) (ht : t ∈ Set.Icc τ D.T) :
        theorem EulerPacketSourceGeometry.Guards.error_le_scaled_error {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace ℝ U] {D : EulerTransversePacketProvider.Data U} {τ : ℝ} {hτ : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ hτ ⋯)} (A : Guards hτ hτT P H) :
        P.totalError hτ hτT H A.CM A.CH A.radius ≤ 16 * (P.epsilon * P.horizon * (4 * P.G) ^ 2 + P.totalError hτ hτT H A.CM A.CH A.radius)

        Every new analytic component is the actual source field or the selected stationary/forward primary. The parent input and scalar guard record contain none of this record's new-field conclusions.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem EulerPacketSourceGeometry.Guards.geometryData_matrix {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace ℝ U] [CompleteSpace U] {D : EulerTransversePacketProvider.Data U} {τ : ℝ} {hτ : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ hτ ⋯)} (A : Guards hτ hτT P H) (Ω : Set EulerSmoothLimit.Space) (h0 : 0 ∈ Ω) (hΩ : ∀ x ∈ Ω, ‖x‖ ≤ A.radius) (x : { x : EulerSmoothLimit.Space // x ∈ Ω }) (t : ℝ) :
          (A.geometryData Ω h0 hΩ).M x t = (D.M.field (D.clamp t)) ↑x
          theorem EulerPacketSourceGeometry.Guards.geometryData_ray {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace ℝ U] [CompleteSpace U] {D : EulerTransversePacketProvider.Data U} {τ : ℝ} {hτ : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ hτ ⋯)} (A : Guards hτ hτT P H) (Ω : Set EulerSmoothLimit.Space) (h0 : 0 ∈ Ω) (hΩ : ∀ x ∈ Ω, ‖x‖ ≤ A.radius) (x : { x : EulerSmoothLimit.Space // x ∈ Ω }) (t : ℝ) :
          (A.geometryData Ω h0 hΩ).r x t = (D.normal.field (D.clamp t)) ↑x
          theorem EulerPacketSourceGeometry.Guards.geometryData_velocity {U : Type u_1} [NormedAddCommGroup U] [InnerProductSpace ℝ U] [CompleteSpace U] {D : EulerTransversePacketProvider.Data U} {τ : ℝ} {hτ : 0 < τ} {hτT : τ < D.T} {P : ParentFrame D τ} {H : EulerTransversePacketProvider.HistoryData (D.initial τ hτ ⋯)} (A : Guards hτ hτT P H) (Ω : Set EulerSmoothLimit.Space) (h0 : 0 ∈ Ω) (hΩ : ∀ x ∈ Ω, ‖x‖ ≤ A.radius) (x : { x : EulerSmoothLimit.Space // x ∈ Ω }) (t : ℝ) :
          (A.geometryData Ω h0 hΩ).w x t = EulerPacketPrimaryFactorization.uncutVelocity τ hτ hτT H (terminal hτ hτT P H A) t ↑x