A locally unique active-wall event with the actual flow differential
ProvedBianchiIX.exists_projectiveWall_eventFor 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.
Define the core radius, angle, and clock factor by
For , write , , and . All quotients use the total convention .
The core state space is with coordinates . Define
For fixed put , , , and define
For real , put and define
Write , , and let be the maximal solution of with initial value at and domain . Put
Write , , and . Define
The entrance parametrization and radial exit factor are
For projective initial data , put
Coordinates of three-vectors are indexed by ; projective coordinates are indexed by .
For normalized initial data , let and . Define the event differential by
Its expression in projective initial and final coordinates is
For a time function , write . Suppose , , , and . There is a time function , at , with . For near ,
For near , one has and
The map is at and .
import Definitions.Def_BianchiIX_Dynamics_ProjectiveFlowVariation import Definitions.Def_BianchiIX_Dynamics_CoreExitEvents import Mathlib.Analysis.Calculus.FDeriv.Symmetric import Mathlib.Analysis.Calculus.Deriv.Mul import Mathlib.Tactic.NormNum import Mathlib.Analysis.Calculus.Deriv.Prod import Mathlib.Tactic.Module import Mathlib.Analysis.Calculus.Deriv.Pow import Mathlib.Analysis.Calculus.Deriv.Add import Mathlib.Analysis.Real.Sqrt import Mathlib.Tactic.Linarith import Mathlib.Tactic.Ring import Mathlib.Analysis.SpecialFunctions.Arsinh import Mathlib.Analysis.SpecialFunctions.Sqrt import Mathlib.Tactic.FieldSimp import Mathlib.Analysis.Calculus.ContDiff.Operations import Mathlib.Analysis.Calculus.MeanValue import Mathlib.Data.Fin.VecNotation import Mathlib.Tactic.FinCases import Mathlib.Tactic.FunProp import Mathlib.Analysis.Calculus.Deriv.Inv import Mathlib.Tactic.LinearCombination 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.Pow.Deriv import Mathlib.Analysis.SpecialFunctions.Integrals.Basic import Mathlib.Analysis.ODE.ExistUnique import Mathlib.Data.Matrix.Mul import Mathlib.Algebra.BigOperators.Fin import Mathlib.Analysis.Calculus.FDeriv.Partial import Mathlib.Analysis.Calculus.ImplicitContDiff import Mathlib.Data.Real.Basic import Mathlib.Analysis.ODE.Gronwall import Mathlib.Analysis.SpecialFunctions.Trigonometric.ArctanDeriv import Mathlib.Analysis.SpecialFunctions.Trigonometric.DerivHyp import Mathlib.Analysis.SpecialFunctions.Log.Basic import Mathlib.Topology.Instances.Real.Lemmas 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 noncomputable section open BianchiIX open Set Filter open scoped Topology
theorem BianchiIX.exists_projectiveWall_event {y : ProjectiveState} {t₀ t : ℝ}
(hD : 0 < projectiveStateDenom y) (ht : t ∈ normalizedMaxDomain (fromProjectiveState y) t₀)
(hA : 0 < 1 + normalizedMaxCurve (fromProjectiveState y) t₀ t 0)
(hv : projectiveField (projectiveOriginalFlow y t₀ t) 2 ≠ 0) :
∃ τ : ProjectiveState → ℝ, τ y = t ∧ ContDiffAt ℝ 1 τ y ∧
(∀ᶠ z in 𝓝 y, τ z ∈ normalizedMaxDomain (fromProjectiveState z) t₀ ∧
0 < 1 + normalizedMaxCurve (fromProjectiveState z) t₀ (τ z) 0 ∧
projectiveOriginalFlow z t₀ (τ z) 2 = projectiveOriginalFlow y t₀ t 2) ∧
(∀ᶠ z : ProjectiveState × ℝ in 𝓝 (y, t),
z.2 ∈ normalizedMaxDomain (fromProjectiveState z.1) t₀ ∧
(projectiveOriginalFlow z.1 t₀ z.2 2 = projectiveOriginalFlow y t₀ t 2 ↔ τ z.1 = z.2)) ∧
ContDiffAt ℝ 1 (fun z => projectiveOriginalFlow z t₀ (τ z)) y ∧
HasFDerivAt (fun z => projectiveOriginalFlow z t₀ (τ z))
(projectiveWallArrivalDifferential y t₀ t) y := by sorry