Stable boundary projection and finite connection phase
DefinitionBianchiIX_CompactPhaseExpansionDataFor real variables , set
The shear components and wall rates are
These functions define the normalized vacuum Bianchi IX vector field . For , define
and .
For , put
For , set and
Write for the normalized vector field and for its constraint.
The normalized and projective state spaces are and with their finite-product norms. The maps act on these state spaces.
The projective vector field in normalized time is
Write , , and let be the maximal solution of with initial value at and domain . Put
For , define
For any real height , put
The infimum uses the total real-order convention. Let mean that is the least element of , and, writing , that
All vector and operator norms use the finite-product supremum norms.
For put , , and define
Let .
On the invariant plane with zero active wall, use , the inclusion and the restriction . Define
Write , , , for their explicit Jacobian and Hessian expressions. The denominator derivatives are and . The exact original-time boundary flow and its projected variation are
For a fixed scale , set , and . For directions , define
All vector norms are sup norms, and operator norms are induced by them. Write , , , and
The closed boundary region is . The boundary projection is the limit of as , using the total limit convention of the formal definitions.
For , put
The reflected finite-tail entry is , and its finite matching phase is . For , define the weak-wall multiplier
where is the third normalized wall rate. Set
Set and
Its explicit gradient is used together with the residual , where
The two scalar wall rates are and . The stable linear block is the last two rows and columns of ; its center column is . The first and second center variations are the zeroth components of and ; their limiting operators use the same total limit convention. The open parameter neighborhood is , . The center approximation is and the corrected approximation is . The derivative of with respect to , integrated from zero to , defines the second-variation integral. The center budgets are
For a normalized boundary orbit, its stable clock is . For the orbit from , the corrected residual integral is
The entrance partials are the four ordinary components of . Writing , the weak finite-phase coefficient is
Finally, for the reference pulse , the shifted original-time clock is , and the shifted variation is .
import Mathlib.Analysis.Calculus.Deriv.Pow
import Mathlib.Analysis.Calculus.Deriv.Mul
import Mathlib.Analysis.Calculus.Deriv.Add
import Mathlib.Analysis.Real.Sqrt
import Mathlib.Tactic.Linarith
import Mathlib.Tactic.Ring
import Mathlib.Analysis.Calculus.Deriv.Inv
import Mathlib.Tactic.FieldSimp
import Mathlib.Tactic.LinearCombination
import Definitions.Def_BianchiIX_Algebra_MatchingPhase
import Mathlib.Analysis.SpecialFunctions.Sqrt
import Mathlib.Analysis.SpecialFunctions.Pow.Deriv
import Definitions.Def_BianchiIX_Dynamics_ProjectiveState
import Definitions.Def_BianchiIX_Dynamics_ReferencePulse
import Definitions.Def_BianchiIX_Dynamics_ReferenceReturn
import Definitions.Def_BianchiIX_Dynamics_ProjectiveFlowVariation
import Mathlib.Analysis.Calculus.FDeriv.Symmetric
import Mathlib.Tactic.NormNum
import Mathlib.Analysis.Calculus.ContDiff.Operations
import Mathlib.Analysis.Calculus.Deriv.Prod
import Mathlib.Analysis.Calculus.MeanValue
import Mathlib.Data.Fin.VecNotation
import Mathlib.Tactic.FinCases
import Mathlib.Tactic.FunProp
import Mathlib.Analysis.SpecialFunctions.Arcosh
import Mathlib.MeasureTheory.Integral.IntervalIntegral.FundThmCalculus
import Mathlib.Analysis.Calculus.InverseFunctionTheorem.Deriv
import Mathlib.Analysis.Calculus.Deriv.MeanValue
import Mathlib.Analysis.SpecialFunctions.Integrals.Basic
import Mathlib.Analysis.ODE.ExistUnique
import Mathlib.Analysis.Calculus.FDeriv.Partial
import Mathlib.Analysis.Calculus.ImplicitContDiff
import Definitions.Def_BianchiIX_Dynamics_IntegralClock
import Definitions.Def_BianchiIX_Dynamics_Normalized
import Definitions.Def_BianchiIX_Dynamics_ProjectiveClock
import Mathlib.Analysis.SpecialFunctions.Arsinh
import Mathlib.MeasureTheory.Integral.IntervalIntegral.DistLEIntegral
import Mathlib.Analysis.ODE.Gronwall
import Mathlib.Data.Matrix.Mul
import Definitions.Def_BianchiIX_Dynamics_MaximalFlow
import Mathlib.Topology.Instances.Real.Lemmas
import Mathlib.Tactic.GCongr
import Mathlib.Analysis.Calculus.Deriv.Slope
import Mathlib.Topology.Order.OrderClosed
import Mathlib.Topology.Order.IntermediateValue
import Mathlib.Topology.MetricSpace.Cauchy
import Mathlib.Analysis.Calculus.ContDiff.Comp
import Mathlib.Analysis.Calculus.Deriv.Comp
import Definitions.Def_BianchiIX_Dynamics_CoreAngle
import Definitions.Def_BianchiIX_Dynamics_ProjectiveWallMultipliers
import Definitions.Def_BianchiIX_Dynamics_CoreTail
import Mathlib.Topology.Order.Compact
import Mathlib.Tactic.Module
import Mathlib.Algebra.BigOperators.Fin
import Mathlib.Data.Real.Basic
import Mathlib.Analysis.SpecialFunctions.Trigonometric.ArctanDeriv
import Mathlib.Analysis.SpecialFunctions.Trigonometric.DerivHyp
import Mathlib.Analysis.SpecialFunctions.Log.Basic
import Mathlib.Topology.MetricSpace.Thickening
import Mathlib.Analysis.Normed.Module.FiniteDimension
import Mathlib.LinearAlgebra.Determinant
import Mathlib.Topology.Instances.Matrix
import Mathlib.LinearAlgebra.Matrix.Trace
import Mathlib.Analysis.Calculus.FDeriv.Analytic
import Mathlib.Topology.Algebra.Module.Determinant
import Mathlib.Analysis.Calculus.Deriv.Pi
import Mathlib.Analysis.Calculus.ParametricIntervalIntegral
import Mathlib.MeasureTheory.Integral.DominatedConvergence
import Mathlib.Analysis.Calculus.UniformLimitsDeriv
import Mathlib.Topology.Order.ProjIcc
import Definitions.Def_BianchiIX_Algebra_CoreAngle
import Definitions.Def_BianchiIX_Dynamics_CompactConnectionReturn
import Mathlib.Analysis.SpecialFunctions.Log.Deriv
import Definitions.Def_BianchiIX_Dynamics_CoreTailMultipliers
section
noncomputable section
namespace BianchiIX
def stableStrongRate (m u w : ℝ) : ℝ := (1 - m ^ 2 - w ^ 2 + u ^ 2) / 2
def stableWeakRate (m u w : ℝ) : ℝ := -(m + 1 + u * w - u ^ 2)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def stableWeakRadius (m w : ℝ) : ℝ := phaseNorm (m + 1) w
def stableCorrectionA (m : ℝ) : ℝ := m / (m ^ 2 - 1)
def stableCorrectionC (m : ℝ) : ℝ := -2 / (m + 1)
def stableCorrectedPhase (m u w : ℝ) : ℝ :=
stableWeakRadius m w - 1 + stableCorrectionA m * u ^ 2 + stableCorrectionC m * u * w
def stableCorrectedGradient (m u w : ℝ) : Fin 3 → ℝ :=
![(m + 1) / stableWeakRadius m w - (m ^ 2 + 1) / (m ^ 2 - 1) ^ 2 * u ^ 2 +
2 / (m + 1) ^ 2 * u * w,
2 * stableCorrectionA m * u + stableCorrectionC m * w,
w / stableWeakRadius m w + stableCorrectionC m * u]
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def stableResidual4 (m : ℝ) : ℝ := -2 * m / (m ^ 2 - 1) ^ 2
def stableResidual3 (m : ℝ) : ℝ := 2 * (3 * m - 1) / (m ^ 2 - 1) ^ 2
def stableResidual2 (m w : ℝ) : ℝ :=
-(m ^ 2 + 1) / (m ^ 2 - 1) ^ 2 - m / (m ^ 2 - 1) +
(stableWeakRadius m w + 1) / (stableWeakRadius m w * (stableWeakRadius m w + (m + 1)))
def stableResidual1 (m w : ℝ) : ℝ :=
2 / (m + 1) ^ 2 + 1 / (m + 1) - 1 / (stableWeakRadius m w + (m + 1))
def stableCorrectedResidual (m u w : ℝ) : ℝ :=
stableResidual4 m * u ^ 4 + stableResidual3 m * u ^ 3 * w +
stableResidual2 m w * u ^ 2 * w ^ 2 + stableResidual1 m w * u * w ^ 3
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set
def referenceShiftClock (k s t : ℝ) : ℝ :=
referenceClockPrimitive k t - referenceClockPrimitive k s
def referenceShiftedVariation (k s : ℝ) (w : ProjectiveState) (t : ℝ) : ProjectiveState :=
projectiveFlowDifferential (referencePulse k s) 0 (referenceShiftClock k s t) w
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter MeasureTheory
open scoped Topology
def stableBoundaryRegion (c : ℝ) (y : ProjectiveState) : Prop :=
|y 0 - c| ≤ 1 / 10 ∧ |y 1| ≤ 1 / 100 ∧ y 2 = 0 ∧ |y 3| ≤ 1 / 100
def normalizedStableClock (x : NormalizedState) (t₀ s c t : ℝ) : ℝ :=
(c + 1) * integralClock (normalizedProjectiveRate x t₀) s t
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter MeasureTheory
open scoped Topology
def stableBoundaryEntry (m u w : ℝ) : ProjectiveState := ![m, u, 0, w]
def stableBoundaryOrbit (m u w t : ℝ) : ProjectiveState :=
toProjectiveState (normalizedMaxCurve (fromProjectiveState (stableBoundaryEntry m u w)) 0 t)
/-- The projection is defined from the exact Einstein orbit in original time. -/
def stableBoundaryProjection (m u w : ℝ) : ℝ :=
limUnder atTop (fun t => stableBoundaryOrbit m u w t 0)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
abbrev StableState := Fin 3 → ℝ
def stableInclusion : StableState →L[ℝ] ProjectiveState :=
ContinuousLinearMap.pi ![ContinuousLinearMap.proj 0, ContinuousLinearMap.proj 1,
0, ContinuousLinearMap.proj 2]
def stableRestriction : ProjectiveState →L[ℝ] StableState :=
ContinuousLinearMap.pi ![ContinuousLinearMap.proj 0, ContinuousLinearMap.proj 1,
ContinuousLinearMap.proj 3]
def stableBoundaryField (y : StableState) : StableState :=
![y 0 * y 1 ^ 2 - (y 0 + 1) * y 1 * y 2 + y 2 ^ 2,
stableStrongRate (y 0) (y 1) (y 2) * y 1,
stableWeakRate (y 0) (y 1) (y 2) * y 2]
def stableBoundaryDenom (y : StableState) : ℝ := 3 + y 0 ^ 2 + (y 1 - y 2) ^ 2
def stableOriginalField (y : StableState) : StableState :=
(6 / stableBoundaryDenom y) • stableBoundaryField y
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter MeasureTheory
open scoped Topology
def stableCorrectedApproximation (y : Fin 3 → ℝ) (t : ℝ) : ℝ :=
let Y := stableBoundaryOrbit (y 0) (y 1) (y 2) t
stableCorrectedPhase (Y 0) (Y 1) (Y 3)
def stableResidualIntegral (m u w T : ℝ) : ℝ :=
∫ t in 0..T, normalizedProjectiveRate (fromProjectiveState (stableBoundaryEntry m u w)) 0 t *
stableCorrectedResidual (stableBoundaryOrbit m u w t 0)
(stableBoundaryOrbit m u w t 1) (stableBoundaryOrbit m u w t 3)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter
open scoped Topology
def stableOriginalFlow (y : StableState) (t : ℝ) : StableState :=
stableRestriction (projectiveOriginalFlow (stableInclusion y) 0 t)
def stableFlowDifferential (y : StableState) (t : ℝ) : StableState →L[ℝ] StableState :=
stableRestriction.comp ((projectiveFlowDifferential (stableInclusion y) 0 t).comp stableInclusion)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def stableBoundaryJacobian (y : StableState) : Matrix (Fin 3) (Fin 3) ℝ :=
let m := y 0
let u := y 1
let w := y 2
![![u ^ 2 - u * w, 2 * m * u - (m + 1) * w, -(m + 1) * u + 2 * w],
![-m * u, (1 - m ^ 2 - w ^ 2 + 3 * u ^ 2) / 2, -u * w],
![-w, (2 * u - w) * w, -(m + 1 + 2 * u * w - u ^ 2)]]
def stableDenomGradient (y : StableState) : StableState :=
![2 * y 0, 2 * (y 1 - y 2), 2 * (y 2 - y 1)]
def stableOriginalJacobian (y : StableState) : Matrix (Fin 3) (Fin 3) ℝ :=
fun i j => 6 / stableBoundaryDenom y * stableBoundaryJacobian y i j -
6 / stableBoundaryDenom y ^ 2 * stableBoundaryField y i * stableDenomGradient y j
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def stableBoundaryHessian (y v w : StableState) : StableState :=
![(2 * y 1 - y 2) * (v 0 * w 1 + v 1 * w 0) -
y 1 * (v 0 * w 2 + v 2 * w 0) + 2 * y 0 * v 1 * w 1 -
(y 0 + 1) * (v 1 * w 2 + v 2 * w 1) + 2 * v 2 * w 2,
-y 1 * v 0 * w 0 - y 0 * (v 0 * w 1 + v 1 * w 0) +
3 * y 1 * v 1 * w 1 - y 2 * (v 1 * w 2 + v 2 * w 1) -
y 1 * v 2 * w 2,
-(v 0 * w 2 + v 2 * w 0) + 2 * y 2 * v 1 * w 1 +
2 * (y 1 - y 2) * (v 1 * w 2 + v 2 * w 1) - 2 * y 1 * v 2 * w 2]
def stableDenomHessian (v w : StableState) : ℝ :=
2 * v 0 * w 0 + 2 * (v 1 - v 2) * (w 1 - w 2)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Filter
open scoped Topology
/-- The scale is held fixed when differentiating the initial state. -/
def stableRescaledFlow (K : ℝ) (y : StableState) (s : ℝ) : StableState :=
stableOriginalFlow y (K * s)
def stableRescaledDifferential (K : ℝ) (y : StableState) (s : ℝ) : StableState →L[ℝ] StableState :=
stableFlowDifferential y (K * s)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def stableOriginalHessian (y v w : StableState) : StableState :=
(6 / stableBoundaryDenom y) • stableBoundaryHessian y v w -
(6 / stableBoundaryDenom y ^ 2) •
(dotProduct (stableDenomGradient y) v • (stableBoundaryJacobian y).mulVec w +
dotProduct (stableDenomGradient y) w • (stableBoundaryJacobian y).mulVec v +
stableDenomHessian v w • stableBoundaryField y) +
(12 * dotProduct (stableDenomGradient y) v * dotProduct (stableDenomGradient y) w /
stableBoundaryDenom y ^ 3) • stableBoundaryField y
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter
open scoped Topology
def stableRescaledSecondDifferential (K : ℝ) (y : StableState) (s : ℝ) :
StableState →L[ℝ] (StableState →L[ℝ] StableState) :=
(fderiv ℝ (fun z : StableState × ℝ => stableRescaledDifferential K z.1 z.2) (y, s)).comp
(ContinuousLinearMap.inl ℝ StableState ℝ)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set
def stableLinearBlock (K : ℝ) (y : StableState) : Matrix (Fin 2) (Fin 2) ℝ :=
![![K * stableOriginalJacobian y 1 1, K * stableOriginalJacobian y 1 2],
![K * stableOriginalJacobian y 2 1, K * stableOriginalJacobian y 2 2]]
def stableCenterColumn (K : ℝ) (y : StableState) : Fin 2 → ℝ :=
![K * stableOriginalJacobian y 1 0, K * stableOriginalJacobian y 2 0]
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def stableRescaledVariationRate (K : ℝ) (w : StableState) (p : StableState × ℝ) : StableState :=
K • fderiv ℝ stableOriginalField (stableRescaledFlow K p.1 p.2)
(stableRescaledDifferential K p.1 p.2 w)
def stableRescaledSecondSource (K : ℝ) (v w : StableState) (p : StableState × ℝ) : StableState :=
K • (stableOriginalHessian (stableRescaledFlow K p.1 p.2)
(stableRescaledDifferential K p.1 p.2 v) (stableRescaledDifferential K p.1 p.2 w) +
(stableOriginalJacobian (stableRescaledFlow K p.1 p.2)).mulVec
(stableRescaledSecondDifferential K p.1 p.2 v w))
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set MeasureTheory
def coreTailWeakEnergyIntegrand (p : CoreAngleState × ℝ) : ℝ :=
2 * normalizedProjectiveRate (fromProjectiveState (coreTailEntry p.1)) 0 p.2 *
(projectiveOriginalFlow (coreTailEntry p.1) 0 p.2 0 - 1) *
(normalizedProjectiveWallMultiplier (fromProjectiveState (coreTailEntry p.1)) p.2 2) ^ 2
def coreTailWeakEnergyCoefficient (η : ℝ) (Y : CoreAngleState) : ℝ :=
∫ t in 0..coreTailTime η Y, coreTailWeakEnergyIntegrand (Y, t)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def stableHessianBudget (y v w : StableState) : ℝ :=
(|y 1| + |y 2|) * ‖v‖ * ‖w‖ + ‖![v 1, v 2]‖ * ‖w‖ + ‖v‖ * ‖![w 1, w 2]‖
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set MeasureTheory
def stableVariationCenterBudget (y v : StableState) : ℝ :=
128 * (|y 1| + |y 2|) * ‖![v 1, v 2]‖ +
33000 * (|y 1| + |y 2|) ^ 2 * Real.exp (512 * (|y 1| + |y 2|)) * ‖v‖
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Filter
open scoped Topology
def stableCenterDifferential (c : ℝ) (y : StableState) (s : ℝ) : StableState →L[ℝ] ℝ :=
(ContinuousLinearMap.proj 0).comp (stableRescaledDifferential (c + 1) y s)
def stableCenterDifferentialLimit (c : ℝ) (y : StableState) : StableState →L[ℝ] ℝ :=
limUnder atTop (stableCenterDifferential c y)
def stableCenterTailCoefficient (y : StableState) : ℝ :=
128 * (|y 1| + |y 2|) + 33000 * (|y 1| + |y 2|) ^ 2 * Real.exp (512 * (|y 1| + |y 2|))
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter
open scoped Topology
def stableParameterDomain (c : ℝ) : Set StableState :=
{y | |y 0 - c| < 1 / 40 ∧ |y 1| < 1 / 200 ∧ |y 2| < 1 / 200}
def stableCenterApproximation (c s : ℝ) (y : StableState) : ℝ := stableRescaledFlow (c + 1) y s 0
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter MeasureTheory
open scoped Topology
def stableSecondIntegral (K : ℝ) (y w : StableState) (s : ℝ) : StableState →L[ℝ] StableState :=
∫ r in 0..s, (fderiv ℝ (stableRescaledVariationRate K w) (y, r)).comp
(ContinuousLinearMap.inl ℝ StableState ℝ)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set
def stableSecondCenterBudget (y : StableState) : ℝ :=
192 * (|y 1| + |y 2|) * (40000 * Real.exp (512 * (|y 1| + |y 2|)) ^ 3) +
10000 * Real.exp (512 * (|y 1| + |y 2|)) ^ 2
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter
open scoped Topology
def stableCenterSecondDifferential (c : ℝ) (y : StableState) (s : ℝ) :
StableState →L[ℝ] (StableState →L[ℝ] ℝ) :=
(ContinuousLinearMap.compL ℝ StableState StableState ℝ (ContinuousLinearMap.proj 0)).comp
(stableRescaledSecondDifferential (c + 1) y s)
def stableCenterSecondDifferentialLimit (c : ℝ) (y : StableState) :
StableState →L[ℝ] (StableState →L[ℝ] ℝ) :=
limUnder atTop (stableCenterSecondDifferential c y)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def entranceStablePhase (y : ProjectiveState) : ℝ :=
stableBoundaryProjection (y 0) (y 1) (y 3)
def entranceStablePartial (y : ProjectiveState) (i : Fin 4) : ℝ :=
fderiv ℝ entranceStablePhase y (Pi.single i 1)
def entranceStableRadius (y : ProjectiveState) : ℝ := coreRadius (entranceStablePhase y) (y 2)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter Metric
open scoped Topology
/-- The finite phase in (B.47), before the long entrance. -/
def compactConnectionFinitePhase (η : ℝ) (Y : CoreAngleState) : ℝ :=
entranceStableRadius (compactConnectionEntry η Y)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter
open scoped Topology
def compactConnectionWeakCoefficient (η : ℝ) (Y : CoreAngleState) : ℝ :=
(coreTailWeakEnergyCoefficient η Y * (1 - 4 / (coreRadius (coreTailState η Y 0) η + Y 0)) +
coreTailMultiplier η Y 1 ^ 2) / (compactConnectionFinitePhase η Y + Y 0 - 2)
end BianchiIX
end
end