The canonical connection first return and validity predicate
DefinitionBianchiIX_Dynamics_ConnectionReturnFor 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
Put , , , , and .
Define
For a normalized trajectory write
For , set , , and
Let mean that this infimum is a least element, the full interval lies in the maximal domain with positive , the growing wall is below one before the endpoint, and its normalized-time derivative is strictly positive at the endpoint. The infimum has its total real-order meaning.
import Definitions.Def_BianchiIX_Dynamics_Normalized
import Definitions.Def_BianchiIX_Dynamics_ProjectiveState
import Definitions.Def_BianchiIX_Dynamics_MaximalFlow
import Definitions.Def_BianchiIX_Dynamics_Events
import Definitions.Def_BianchiIX_Dynamics_ConnectionExistence
import Definitions.Def_BianchiIX_Dynamics_ConnectionEvents
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.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.Pow.Deriv
import Mathlib.Tactic.FieldSimp
import Mathlib.Analysis.SpecialFunctions.Integrals.Basic
import Mathlib.Analysis.ODE.ExistUnique
import Mathlib.Analysis.Calculus.FDeriv.Partial
import Mathlib.Analysis.Calculus.ImplicitContDiff
import Mathlib.Analysis.Calculus.Deriv.Inv
import Mathlib.Tactic.LinearCombination
import Mathlib.Topology.Instances.Real.Lemmas
import Mathlib.Analysis.SpecialFunctions.Arsinh
import Mathlib.Analysis.SpecialFunctions.Sqrt
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.MeasureTheory.Integral.IntervalIntegral.DistLEIntegral
import Mathlib.Tactic.GCongr
import Mathlib.Analysis.Calculus.Deriv.Slope
import Mathlib.Topology.Order.OrderClosed
import Mathlib.Topology.Order.IntermediateValue
import Mathlib.Topology.Order.Compact
import Mathlib.Tactic.NormNum
noncomputable section
namespace BianchiIX
open Set Filter
open scoped Topology
abbrev ConnectionParameters := Fin 3 → ℝ
def connectionInitialState (p : ConnectionParameters) : NormalizedState :=
fromProjectiveState (connectionEntry (p 0) (p 1) (p 2))
def connectionReturnTime (p : ConnectionParameters) : ℝ :=
sInf {t : ℝ | 0 < t ∧ t ∈ normalizedMaxDomain (connectionInitialState p) 0 ∧
projectiveGrowingWall (normalizedMaxCurve (connectionInitialState p) 0 t) = 1}
def connectionReturnState (p : ConnectionParameters) : ProjectiveState :=
toProjectiveState (normalizedMaxCurve (connectionInitialState p) 0 (connectionReturnTime p))
def connectionReturnValid (p : ConnectionParameters) : Prop :=
let x := connectionInitialState p
let T := connectionReturnTime p
IsLeast {t | 0 < t ∧ t ∈ normalizedMaxDomain x 0 ∧ projectiveGrowingWall (normalizedMaxCurve x 0 t) = 1} T ∧
(∀ t ∈ Icc 0 T, t ∈ normalizedMaxDomain x 0 ∧ 0 < 1 + normalizedMaxCurve x 0 t 0) ∧
(∀ t ∈ Ico 0 T, projectiveGrowingWall (normalizedMaxCurve x 0 t) < 1) ∧
0 < normalizedEventRate projectiveGrowingWall x 0 T
end BianchiIX