Documentation

LeanPool.NavierStokesAndEuler.Euler.PacketStageGuards

Literal forward and joined source guards for the next packet of an actual finite stage. The radius is one, the spike and target shear are the prescribed source scales, and the physical target is nextTime.

The actual next packet geometry is constructed from the current finite stage. Source normals, history bounds and the neighboring-label guards are derived from its state and the one fixed scale choice.

The source direction at a stage is constructed from the actual parent deformation and older frame. Both branch-specific normal-choice identities are conclusions, and the reference plane is literal.

Changing the source normal and reference plane leaves the older physical frame and its scalar parameters unchanged. The source strain and time interval are the actual fields of the same parent.

Reframe, bundling B, B₁, m, v and the required compatibility proofs.

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

    Activation normal, given by activationDirection ((A.transverseData m hm R S hS).deformationEquiv ⟨τ,hτ.le,hτT.le⟩ 0) P.crossDirection.

    Equations
    Instances For

      Activation frame, constructed using P.reframe.

      Equations
      Instances For

        The new covector really transports to the old frame's cross direction, with the same strictly positive ray scale used by Guards.

        Activation history, constructed using A.historyOn.

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

          Change activation, given by h ▸ P.

          Equations
          Instances For

            Joined normal, given by P.restrictedFrame.activationNormal (P.time_pos hn) P.time_lt_nextHorizon.

            Equations
            Instances For

              Joined data, given by P.restrictedFrame.activationData (P.time_pos hn) P.time_lt_nextHorizon.

              Equations
              Instances For

                Joined frame, given by P.restrictedFrame.activationFrame (P.time_pos hn) P.time_lt_nextHorizon.

                Equations
                Instances For

                  Joined history, given by P.restrictedFrame.activationHistory (P.time_pos hn) P.time_lt_nextHorizon P.restrictedLow.

                  Equations
                  Instances For
                    @[simp]
                    theorem EulerPacketInduction.Stage.joinedFrame_a {c B : } {S : EulerPacketInductionScales.Scales c B} {n : } (P : Stage S n) (hn : n 0) :
                    (P.joinedFrame hn).a = P.frame.a
                    @[simp]
                    theorem EulerPacketInduction.Stage.joinedFrame_G {c B : } {S : EulerPacketInductionScales.Scales c B} {n : } (P : Stage S n) (hn : n 0) :
                    (P.joinedFrame hn).G = P.frame.G

                    Zero frame, given by P.restrictedFrame.changeActivation (P.time_zero rfl).

                    Equations
                    Instances For

                      Forward normal, given by P.zeroFrame.crossDirection.

                      Equations
                      Instances For

                        Forward frame, given by P.zeroFrame.forwardFrame.

                        Equations
                        Instances For

                          Reciprocal history times fit the literal previous-frequency budget. Only the first geometric step needs coupling and tilt bounds. All later step lengths are nonnegative independently of any future frame invariant.

                          theorem EulerParentHistoryFrequency.initial_frequency_le_first (J D : ) (hJ : 3 J) (X : ) (hX : 0 X) (hbase : X ^ D Real.exp (X / ↑(J - 1) ^ 4)) :
                          theorem EulerParentHistoryFrequency.initial_frequency_le_previous (J D : ) (hJ : 3 J) (X : ) (hX : 0 X) (hbase : X ^ D Real.exp (X / ↑(J - 1) ^ 4)) (n : ) :
                          theorem EulerParentHistoryFrequency.previousFrequency_one_le (J D : ) (hJ : 3 J) (X : ) (hX : 1 X) (hbase : X ^ D Real.exp (X / ↑(J - 1) ^ 4)) (n : ) :
                          theorem EulerParentHistoryFrequency.stepLength_nonneg (J : ) (hJ : 1 J) (X : ) (hX : 0 X) (a β : ) (n : ) :
                          theorem EulerParentHistoryFrequency.activation_lower_of_initial (J : ) (hJ : 1 J) (X : ) (hX : 0 < X) (a β : ) (ha : 1 / 2 a 0) (ha₂ : a 0 2) ( : 1 / 2 β 0 * X ^ 2) (hβ₂ : β 0 * X ^ 2 2) {n : } (hn : 1 n) :
                          theorem EulerParentHistoryFrequency.reciprocal_activation_le_base (J : ) (hJ : 1 J) (X : ) (hX : 0 < X) (a β : ) (ha : 1 / 2 a 0) (ha₂ : a 0 2) ( : 1 / 2 β 0 * X ^ 2) (hβ₂ : β 0 * X ^ 2 2) {n : } (hn : 1 n) :
                          theorem EulerParentHistoryFrequency.actual_reciprocal_activation (J D : ) (hJ : 3 J) (hD : 2000 D) (C c X δ : ) (hX : 2 X) (hb : EulerPacketSourceScaleActual.ActualBounds J D C c X δ) (a β : ) (ha : 1 / 2 a 0) (ha₂ : a 0 2) ( : 1 / 2 β 0 * X ^ 2) (hβ₂ : β 0 * X ^ 2 2) {n : } (hn : 1 n) :

                          The literal numerical scale guards also initialize the zero-history amplification stage. Its new ray and velocity start exactly in the old frame, so only the actual strain's spatial variation enters the error.

                          noncomputable def EulerParentPacketFrames.LabelData.forwardGeometryGuardsOfStage {A : Parent} (L : LabelData A) {U : Type} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (R : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (support : Set EulerSmoothLimit.Space) (hSupport : IsCompact support) (P : EulerPacketSourceGeometry.ParentFrame (A.transverseData m hm R support hSupport) 0) (J D : ) (C c X : ) (a β : ) (n : ) (CF : ) (hCF : 1 CF) (stage : EulerPacketSourceScaleGuards.StageGuards J D C c X (EulerPacketMovingFrame.neighborStabilityConstant * CF ^ 2) a β n) (ha : 1 / 2 a n) (ha_match : P.a = a n) (hshear : P.shear = EulerPacketSourceScaleSequence.previousShear J X n) (hsigma : P.sigma = (β n)) (htime : P.horizon = EulerPacketSourceScaleGuards.horizon J X (a n) (β n) n) (hG : P.G CF * (1 + EulerPacketSourceScaleSequence.olderShear J X n)) (herr : P.error EulerPacketSourceScaleActual.priorError J D X n) (ρ δ hchild : ) ( : 0 ρ) ( : 0 δ) (hhchild : 0 hchild) (hneighbor : L.strainDifferenceCost * A.ell * ρ EulerPacketSourceScaleActual.neighborError J D X c n) (hnormal : m = EulerPacketCrossProduct.cross (EulerPacketNormalizedPrimary.unit (P.m 0)) (EulerPacketNormalizedPrimary.unit (P.v 0))) :

                          Forward geometry guards of stage as an element of ForwardGuards P.

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

                            The computed neighboring-label cost fits the source's monomial majorant under fixed degree and constant guards. Thus the small support scale discharges the literal neighbor comparison in the geometry step.

                            theorem EulerParentNeighborCost.polynomial_le_monomial (A K Ti H k h : ) (n q c : ) (hA : 0 A) (hK : 0 K) (hTi : 0 Ti) (hH : 0 H) (hk : 1 k) (hh : 1 h) (hKk : K k ^ q) (hTik : Ti k ^ q) (hHh : H h) (hcost : A * 4 ^ n k) (hc : q * n + 1 c) (hn : n c) :
                            A * (1 + K + Ti + H) ^ n k ^ c * h ^ c
                            theorem EulerParentPacketFrames.LabelData.neighborScaleCost_monomial {G : Parent} (L : LabelData G) {U : Type} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (R : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (S : Set EulerSmoothLimit.Space) (hS : IsCompact S) (H : LowBounds G) (τ : ) ( : 0 < τ) (hτT : τ < G.T) (P : EulerPacketSourceGeometry.ParentFrame (G.transverseData m hm R S hS) τ) (Ti CM CH : ) (hτ1 : τ 1) (hTi : τ⁻¹ Ti) (hCM : 0 CM) (hCH : 0 CH) (ha : 1 / 2 P.a) (hH : 1 P.shear) (k : ) (q c : ) (hk : 1 k) (hKk : L.K k ^ q) (hTik : Ti k ^ q) (hcost : EulerParentNeighborCost.boundConstant * (2 * (1 + CM + CH)) ^ EulerParentNeighborCost.degree * 4 ^ EulerParentNeighborCost.degree k) (hc : q * EulerParentNeighborCost.degree + 1 c) (hn : EulerParentNeighborCost.degree c) :
                            L.neighborScaleCost m hm R S hS H τ hτT P CM CH k ^ c * P.shear ^ c

                            Fixed coefficient thresholds for the literal neighboring-label guard. The history reciprocal is derived from the initial geometric step, and the only parent size input is the already constructed parent's label bound.

                            Joined threshold, given by (boundConstant*(2*(1+CM+CH))^degree)*4^degree.

                            Equations
                            Instances For

                              Required exponent, given by 80*degree+1.

                              Equations
                              Instances For
                                theorem EulerParentNeighborThreshold.threshold_le_previous (J D : ) (hJ : 3 J) (X : ) (hX : 0 X) (hbase : X ^ D Real.exp (X / ↑(J - 1) ^ 4)) (B : ) (hB : B X ^ D) (n : ) :
                                theorem EulerParentPacketFrames.LabelData.joined_neighbor_error_of_literal_scales {G : Parent} (L : LabelData G) {U : Type} [NormedAddCommGroup U] [InnerProductSpace U] (m : EulerSmoothLimit.Space) (hm : m = 1) (R : U ≃ₗᵢ[] (EulerTransverseFrameCoordinates.referencePlane m)) (S : Set EulerSmoothLimit.Space) (hS : IsCompact S) (H : LowBounds G) (τ : ) ( : 0 < τ) (hτT : τ < G.T) (P : EulerPacketSourceGeometry.ParentFrame (G.transverseData m hm R S hS) τ) (J D : ) (hJ : 3 J) (hD : 2000 D) (X ρ CM CH : ) (hX : 2 X) (hbase : X ^ D Real.exp (X / ↑(J - 1) ^ 4)) (a β : ) (ha₀ : 1 / 2 a 0) (ha₀₂ : a 0 2) (hβ₀ : 1 / 2 β 0 * X ^ 2) (hβ₀₂ : β 0 * X ^ 2 2) (n c : ) (hn : 1 n) (hτliteral : τ = EulerPacketNestedHorizons.activationTime J X a β n) (hτ1 : τ 1) (hCM : 0 CM) (hCH : 0 CH) (ha : 1 / 2 P.a) (hH : 1 P.shear) ( : 0 ρ) (hρ1 : ρ 1) (hshear : P.shear = EulerPacketSourceScaleSequence.previousShear J X n) (hKk : L.K EulerPacketSourceScaleSequence.previousFrequency J D X n ^ 80) (hcost : EulerParentNeighborThreshold.joinedThreshold CM CH EulerPacketSourceScaleSequence.previousFrequency J D X n) (hc : EulerParentNeighborThreshold.requiredExponent c) (hscale : G.ell EulerPacketSourceScaleSequence.supportScale J X n) :
                                L.neighborScaleCost m hm R S hS H τ hτT P CM CH * G.ell * ρ EulerPacketSourceScaleActual.neighborError J D X (↑c) n

                                Joined guards, constructed using P.restrictedState.labels.geometryGuardsOfStage.

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

                                  Joined geometry, given by (P.joinedGuards hn hq hB).lowGeometry (by rw [P.joinedGuards_radius]; norm_num).

                                  Equations
                                  Instances For

                                    Forward guards, constructed using P.restrictedState.labels.forwardGeometryGuardsOfStage.

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