Terminal variations, reciprocal phases and natural cone maps
DefinitionBianchiIX_TerminalConeDataFor 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 ,
Let mean that this infimum is a least element, the full interval lies in the maximal domain with , the active wall is below one before the endpoint, and its normalized-time derivative is strictly positive throughout the interval. The infimum has its total real-order meaning.
For define the cyclic chart by
Its normalized symmetry is
Put and
Write and .
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.
Set , , and . An admissible inverse at is at , maps to , and is a two-sided local inverse of ; its derivative is the inverse of the triangular derivative of . In the following notation put and . Define
For let
Set , , , and . The positive wall multipliers are defined by integrating the two multiplicative wall rates along the exact exit flow, so that and . Write for . For let . All derivatives of maps with subscript hold this height fixed. A cone direction is with , . For , define
and .
Write and define
The exit clock rate is , and its field is . Division and square roots have their total real-valued Lean meanings.
For define , evaluated at . The coordinate maps are and . For a curve set
Let consist of the states satisfying
Put
For 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 ,
Let mean that this infimum is a least element, the full interval lies in the maximal domain with , the active wall is below one before the endpoint, and its normalized-time derivative is strictly positive throughout the interval. The infimum has its total real-order meaning.
For define the cyclic chart by
Its normalized symmetry is
Put and
Write and .
Let and . Call regular when , , the normalized flow exists at with positive chart clock, and , , . For an interval , let be a solution in of , selected by choice, or zero if there is none. Define
Here denotes respectively. Write
The tail box is , , . Write , , for their explicit algebraic gradients there. For 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
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.
Write , , , , and . Put and . For , define
and .
Write and define
The exit clock rate is , and its field is . Division and square roots have their total real-valued Lean meanings.
For define , evaluated at . The coordinate maps are and . For a curve set
Let consist of the states satisfying
Put
Define
Put
The exit linearization is ; its time-dependent second-variation source is obtained by differentiating this expression along the exit clock flow. The physical-time exit clock rate is . For the cyclic map write , so ; its derivative and Hessian are the quotient-rule expressions using , , and . The natural height is . The natural state and phase are and . These definitions also include .
import Mathlib.Analysis.Calculus.ImplicitContDiff
import Mathlib.Tactic.NormNum
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 Mathlib.Analysis.SpecialFunctions.Sqrt
import Mathlib.Analysis.SpecialFunctions.Pow.Deriv
import Definitions.Def_BianchiIX_TerminalConnectionData
import Mathlib.Analysis.SpecialFunctions.Arsinh
import Definitions.Def_BianchiIX_Algebra_Projective
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.SpecialFunctions.Log.Deriv
import Definitions.Def_BianchiIX_Dynamics_ProjectiveState
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.Data.Real.Basic
import Mathlib.Analysis.Calculus.ContDiff.Comp
import Mathlib.Analysis.Calculus.Deriv.Comp
import Mathlib.Analysis.ODE.Gronwall
import Mathlib.Data.Matrix.Mul
import Mathlib.Topology.Order.ProjIcc
import Mathlib.LinearAlgebra.Matrix.ToLin
import Mathlib.Topology.Order.Compact
import Mathlib.MeasureTheory.Integral.IntervalIntegral.DistLEIntegral
import Definitions.Def_BianchiIX_Dynamics_MaximalFlow
import Definitions.Def_BianchiIX_Dynamics_ProjectiveFlowVariation
import Definitions.Def_BianchiIX_Dynamics_CoreTail
import Mathlib.Analysis.Calculus.FDeriv.Symmetric
import Mathlib.Tactic.Module
import Mathlib.Topology.Order.IntermediateValue
import Mathlib.Analysis.SpecialFunctions.Log.Basic
import Mathlib.Tactic.Positivity
import Mathlib.Topology.Instances.Real.Lemmas
import Mathlib.Tactic.GCongr
import Mathlib.Analysis.Calculus.Deriv.Slope
import Mathlib.Topology.Order.OrderClosed
import Mathlib.Algebra.BigOperators.Fin
import Mathlib.Analysis.SpecialFunctions.Trigonometric.ArctanDeriv
import Mathlib.Analysis.SpecialFunctions.Trigonometric.DerivHyp
import Mathlib.Topology.MetricSpace.Thickening
import Mathlib.Analysis.Calculus.ParametricIntervalIntegral
import Mathlib.MeasureTheory.Integral.DominatedConvergence
import Definitions.Def_BianchiIX_EntrancePhaseResponseData
import Mathlib.Topology.MetricSpace.Cauchy
import Mathlib.Analysis.Calculus.UniformLimitsDeriv
import Definitions.Def_BianchiIX_Dynamics_CoreTailMultipliers
import Definitions.Def_BianchiIX_Algebra_CoreAngle
import Mathlib.Analysis.Calculus.InverseFunctionTheorem.ContDiff
import Definitions.Def_BianchiIX_CompactPhaseExpansionData
import Mathlib.Analysis.SpecialFunctions.ImproperIntegrals
import Mathlib.Analysis.Calculus.ParametricIntegral
import Mathlib.MeasureTheory.Integral.Bochner.ContinuousLinearMap
import Mathlib.Analysis.Calculus.FDeriv.Mul
import Mathlib.Analysis.SpecialFunctions.ExpDeriv
import Mathlib.MeasureTheory.Integral.IntervalIntegral.IntegrationByParts
import Mathlib.Analysis.SpecialFunctions.Pow.Real
import Mathlib.Analysis.Normed.Operator.Basic
import Mathlib.LinearAlgebra.Matrix.Notation
import Mathlib.Analysis.Calculus.ContDiff.Deriv
import Mathlib.Analysis.SpecialFunctions.Pow.Continuity
section
noncomputable section
namespace BianchiIX
open Set Filter
open scoped Topology
def intervalScalarInverse {E : Type*} (Q : E × ℝ → ℝ) (I : Set ℝ) (p : E × ℝ) : ℝ := by
classical
exact if h : ∃ t ∈ I, Q (p.1, t) = p.2 then Classical.choose h else 0
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def singleStrongInvariant (m u : ℝ) : ℝ := (1 + m ^ 2 + u ^ 2) / m
def singleStrongUpperRoot (I : ℝ) : ℝ := (I + Real.sqrt (I ^ 2 - 4)) / 2
def singleStrongLowerRoot (I : ℝ) : ℝ := (I - Real.sqrt (I ^ 2 - 4)) / 2
def singleStrongPhase (m u : ℝ) : ℝ := 2 / (singleStrongUpperRoot (singleStrongInvariant m u) - 1)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def exitSingleBase (R v : ℝ) : ℝ := (2 - exitTailGap R v) ^ 2 + v ^ 2
def exitSingleDefect (u v w : ℝ) : ℝ := (u - w) ^ 2 - 2 * v * (u + w)
def exitSingleError (R u v w : ℝ) : ℝ :=
exitSingleDefect u v w * (1 + (R ^ 2 - 4 + exitSingleDefect u v w) / exitSingleBase R v)
def exitSinglePhase (R u v w : ℝ) : ℝ := (Real.sqrt (R ^ 2 + exitSingleError R u v w) - 2) / 2
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def exitTailRadialGradient (R u v w : ℝ) : Fin 3 → ℝ :=
let t := exitTailGap R v
let d := exitTailSpeed R u v w
let g := exitTailRadial R u v w
![(-coupling u v w - (1 / t - t / R ^ 2) * (u - w) ^ 2 - g * R / t) / d,
(-(v + w - 2 * u) * R - 2 * t * (u - w) / R - g * (v + w - 2 * u)) / d,
(-u * R + 2 * t * (u - w) / R - g * u) / d]
def exitTailStrongRateGradient (R u v w : ℝ) : Fin 3 → ℝ :=
let t := exitTailGap R v
let d := exitTailSpeed R u v w
let a := exitTailStrongRate R u v w
![(R / t - R - a * R / t) / d,
(u - a * (v + w - 2 * u)) / d, (v - w - a * u) / d]
def exitTailWeakRateGradient (R u v w : ℝ) : Fin 3 → ℝ :=
let t := exitTailGap R v
let d := exitTailSpeed R u v w
let a := exitTailWeakRate R u v w
![((1 - a) * R / t) / d,
(-(1 + a) * (v + w - 2 * u)) / d, (-(1 + a) * u) / d]
def exitTailLinearization (v : ℝ) (Y ξ : ExitTailState) : ExitTailState :=
![∑ i : Fin 3, exitTailRadialGradient (Y 0) (Y 1) v (Y 2) i * ξ i,
Y 1 * (∑ i : Fin 3, exitTailStrongRateGradient (Y 0) (Y 1) v (Y 2) i * ξ i) +
exitTailStrongRate (Y 0) (Y 1) v (Y 2) * ξ 1,
Y 2 * (∑ i : Fin 3, exitTailWeakRateGradient (Y 0) (Y 1) v (Y 2) i * ξ i) +
exitTailWeakRate (Y 0) (Y 1) v (Y 2) * ξ 2]
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def exitLogClock (y : ProjectiveState) : ℝ := -Real.log (y 2)
def exitOriginalClockRate (y : ProjectiveState) : ℝ :=
(6 / projectiveStateDenom y) * exitClockRate y
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def exitSingleBaseRadial (R v : ℝ) : ℝ := 2 * (exitTailGap R v - 2) * R / exitTailGap R v
def exitSingleErrorRadial (R u v w : ℝ) : ℝ :=
exitSingleDefect u v w * (2 * R / exitSingleBase R v -
(R ^ 2 - 4 + exitSingleDefect u v w) * exitSingleBaseRadial R v / (exitSingleBase R v) ^ 2)
def exitSingleErrorWallFactor (R u v w : ℝ) : ℝ :=
1 + (R ^ 2 - 4 + 2 * exitSingleDefect u v w) / exitSingleBase R v
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open scoped Topology
def cycleNumerator (i : Fin 4) (y : ProjectiveState) : ℝ :=
![-4 * (y 0 + 1), 4 * y 2, 4 * y 3, 4 * y 1] i
def cycleNumeratorSlope (i : Fin 4) (v : ProjectiveState) : ℝ :=
![-4 * v 0, 4 * v 2, 4 * v 3, 4 * v 1] i
def cycleDenomDifferential (y v : ProjectiveState) : ℝ :=
2 * (y 0 + 1) * v 0 + 2 * (y 1 - y 2 - y 3) * v 1 +
2 * (y 2 - y 1 - y 3) * v 2 + 2 * (y 3 - y 1 - y 2) * v 3
def cycleDenomHessian (v w : ProjectiveState) : ℝ :=
2 * (v 0 * w 0 + (v 1 - v 2 - v 3) * w 1 +
(v 2 - v 1 - v 3) * w 2 + (v 3 - v 1 - v 2) * w 3)
def cycleDifferential (i : Fin 4) (y v : ProjectiveState) : ℝ :=
cycleNumeratorSlope i v / projectiveCycleDenom y -
cycleNumerator i y * cycleDenomDifferential y v / projectiveCycleDenom y ^ 2
def cycleHessian (i : Fin 4) (y v w : ProjectiveState) : ℝ :=
-(cycleNumeratorSlope i v * cycleDenomDifferential y w +
cycleNumeratorSlope i w * cycleDenomDifferential y v +
cycleNumerator i y * cycleDenomHessian v w) / projectiveCycleDenom y ^ 2 +
2 * cycleNumerator i y * cycleDenomDifferential y v * cycleDenomDifferential y w /
projectiveCycleDenom y ^ 3
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def exitTailRateGradient (v : ℝ) (Y : ExitTailState) (i : Fin 2) : ExitTailState :=
if i = 0 then exitTailStrongRateGradient (Y 0) (Y 1) v (Y 2)
else exitTailWeakRateGradient (Y 0) (Y 1) v (Y 2)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set MeasureTheory
def exitTailVariationBudget (α b A D T : ℝ) : ℝ :=
2 * exitTailRateBudget α b A D T + 2048 * (1 + A * b * T)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter
open scoped Topology
def exitEntryFlow (p : ExitTailState × ℝ) : ProjectiveState :=
projectiveOriginalFlow (coreTailEntry p.1) 0 p.2
def exitEntryClock (p : ExitTailState × ℝ) : ℝ := exitLogClock (exitEntryFlow p)
def exitEntryRegular (Y : ExitTailState) (t : ℝ) : Prop :=
1 < Y 0 ∧ 0 < projectiveStateDenom (coreTailEntry Y) ∧
t ∈ normalizedMaxDomain (fromProjectiveState (coreTailEntry Y)) 0 ∧
0 < 1 + normalizedMaxCurve (fromProjectiveState (coreTailEntry Y)) 0 t 0 ∧
0 < exitEntryFlow (Y, t) 2 ∧ exitEntryFlow (Y, t) 0 < 1 ∧
0 < exitClockRate (exitEntryFlow (Y, t))
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter
open scoped Topology
def exitClockTime (I : Set ℝ) : ExitTailState × ℝ → ℝ := intervalScalarInverse exitEntryClock I
def exitClockFlow (I : Set ℝ) (p : ExitTailState × ℝ) : ExitTailState :=
toExitTailState (exitEntryFlow (p.1, exitClockTime I p))
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter
open scoped Topology
def exitClockVariationRate (I : Set ℝ) (w : ExitTailState) (p : ExitTailState × ℝ) : ExitTailState :=
fderiv ℝ (exitTailField (Real.exp (-p.2))) (exitClockFlow I p)
(fderiv ℝ (exitClockFlow I) p (w, 0))
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter MeasureTheory
open scoped Topology
def exitClockRateIntegrand (I : Set ℝ) (i : Fin 2) (p : ExitTailState × ℝ) : ℝ :=
exitTailWallRate (Real.exp (-p.2)) (exitClockFlow I p) i
def exitClockLogMultiplier (I : Set ℝ) (i : Fin 2) (Y : ExitTailState) (s : ℝ) : ℝ :=
∫ r in (0 : ℝ)..s, exitClockRateIntegrand I i (Y, r)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def terminalCyclicInput (h : ℝ) (Y : ExitTailState) : ProjectiveState :=
projectiveCycle (coreTailState h Y)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Filter
open scoped Topology
def terminalSinglePhase (h : ℝ) (Y : ExitTailState) : ℝ :=
singleStrongPhase (terminalCyclicInput h Y 0) (terminalCyclicInput h Y 1)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def terminalEntranceInput (h : ℝ) (Y : ExitTailState) : ProjectiveState :=
entranceRadialCoordinates (terminalCyclicInput h Y)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Filter
open scoped Topology
/-- Indices 0 and 1 transport the old U and W walls to the new w and v walls, respectively. -/
def terminalWallFactor (h : ℝ) (Y : ExitTailState) (i : Fin 2) : ℝ :=
4 * coreTailMultiplier h Y i / projectiveCycleDenom (coreTailState h Y)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Filter
open scoped Topology
def terminalConnectionPhase (h : ℝ) (Y : ExitTailState) : ℝ :=
coreRadius (terminalConnectionState h Y 0) (terminalConnectionState h Y 2)
def terminalConnectionError (h : ℝ) (Y : ExitTailState) : ℝ :=
terminalConnectionPhase h Y - terminalEntranceInput h Y 0
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def terminalReciprocalError (h : ℝ) (Y : ExitTailState) : ℝ :=
2 / terminalConnectionPhase h Y - 2 / terminalEntranceInput h Y 0
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Set Filter
open scoped Topology
def stableStrongBase : StableState →L[ℝ] StableState :=
ContinuousLinearMap.pi ![ContinuousLinearMap.proj 0, ContinuousLinearMap.proj 1, 0]
def stableStrongProjectionError (y : StableState) : ℝ :=
stableBoundaryProjection (y 0) (y 1) (y 2) - stableBoundaryProjection (y 0) (y 1) 0
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def entranceSinglePhaseError (y : ProjectiveState) : ℝ :=
entranceStableRadius y - (stableBoundaryProjection (y 0) (y 1) 0 - 1)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Filter
open scoped Topology
def entranceSingleRadius (y : ProjectiveState) : ℝ := stableBoundaryProjection (y 0) (y 1) 0 - 1
def entranceSingleReciprocalError (y : ProjectiveState) : ℝ :=
2 / entranceStableRadius y - 2 / entranceSingleRadius y
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Filter
open scoped Topology
def terminalSingleReciprocalError (h : ℝ) (Y : ExitTailState) : ℝ :=
2 / terminalEntranceInput h Y 0 -
singleStrongPhase (terminalCyclicInput h Y 0) (terminalCyclicInput h Y 1)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Filter Set
open scoped Topology
def terminalConnectionLogWalls (h : ℝ) (Y : ExitTailState) : Fin 2 → ℝ :=
entranceLogWalls 1 (terminalConnectionState h Y)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def terminalBoundedPhaseError (h : ℝ) (Y : ExitTailState) : ℝ :=
2 / terminalConnectionPhase h Y -
singleStrongPhase (terminalCyclicInput h Y 0) (terminalCyclicInput h Y 1)
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
def terminalBoundedPhase (h : ℝ) (Y : ExitTailState) : ℝ := 2 / terminalConnectionPhase h Y
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Filter
open scoped Topology
def terminalNaturalPhase (η : ℝ) (J : ℕ) (Y : ExitTailState) : ℝ :=
terminalConnectionPhase (η * ((Y 0 - 2) / 2) ^ J) Y
end BianchiIX
end
end
section
noncomputable section
namespace BianchiIX
open Filter
open scoped Topology
def terminalNaturalState (η : ℝ) (J : ℕ) (Y : ExitTailState) : ProjectiveState :=
terminalConnectionState (η * ((Y 0 - 2) / 2) ^ J) Y
end BianchiIX
end
end