Statistical core futures and transport of restart witnesses
DefinitionBianchiIX_PhysicalFutureDatabianchi-ix-era-statisticsdynamical-systems
A point has a statistical core future if, at some positive time of its exact normalized orbit, one of the six axis frames places it at the entrance of a surviving core with the Gauss era statistics. A restart record consists of its frame, time, budget and core. Transport through a frame composes its frame index; transport through a time delay adds the delay to its clock.
Definition code
import Definitions.Def_BianchiIX_Dynamics_Normalized
import Definitions.Def_BianchiIX_Dynamics_ProjectiveState
import Definitions.Def_BianchiIX_Dynamics_MaximalFlow
import Definitions.Def_BianchiIX_Dynamics_CoreAngle
import Definitions.Def_BianchiIX_Statistics_EraStatistics
import Definitions.Def_BianchiIX_Dynamics_AxisSymmetry
import Definitions.Def_BianchiIX_AxisAndOrbitData
import Definitions.Def_BianchiIX_Dynamics_CoreEntryDifferential
import Definitions.Def_BianchiIX_EraCodingData
import Mathlib.Analysis.Calculus.ParametricIntervalIntegral
import Mathlib.Analysis.Calculus.ContDiff.Operations
import Mathlib.Topology.Order.Compact
import Mathlib.MeasureTheory.Integral.DominatedConvergence
import Mathlib.Data.Fin.VecNotation
import Mathlib.Analysis.Calculus.Deriv.Pi
import Mathlib.MeasureTheory.Integral.IntervalIntegral.FundThmCalculus
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.Prod
import Mathlib.Analysis.Calculus.MeanValue
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.Topology.Order.IntermediateValue
import Mathlib.Topology.Instances.Real.Lemmas
import Mathlib.Analysis.Calculus.FDeriv.Symmetric
import Mathlib.Analysis.Calculus.Deriv.Inv
import Mathlib.Tactic.LinearCombination
import Mathlib.Analysis.SpecialFunctions.Arcosh
import Mathlib.Analysis.Calculus.InverseFunctionTheorem.Deriv
import Mathlib.Analysis.Calculus.Deriv.MeanValue
import Mathlib.Tactic.Module
import Mathlib.Analysis.SpecialFunctions.Arsinh
import Mathlib.Analysis.SpecialFunctions.Sqrt
import Mathlib.Data.Matrix.Mul
import Mathlib.Algebra.BigOperators.Fin
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.MeasureTheory.Integral.IntervalIntegral.DistLEIntegral
import Mathlib.Tactic.GCongr
import Mathlib.Analysis.Calculus.Deriv.Slope
import Mathlib.Topology.Order.OrderClosed
import Mathlib.Tactic.Positivity
import Mathlib.MeasureTheory.Integral.IntervalIntegral.IntegrationByParts
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.SpecialFunctions.Log.Deriv
import Mathlib.Analysis.SpecialFunctions.ExpDeriv
import Mathlib.Topology.Order.ProjIcc
import Mathlib.Analysis.SpecificLimits.Basic
import Mathlib.Analysis.Normed.Operator.Basic
import Mathlib.LinearAlgebra.Matrix.Notation
import Mathlib.Analysis.Calculus.ContDiff.Deriv
import Mathlib.Analysis.SpecialFunctions.Pow.Continuity
import Mathlib.Topology.MetricSpace.Cauchy
import Mathlib.Analysis.Calculus.ContDiff.Comp
import Mathlib.Analysis.Calculus.Deriv.Comp
import Mathlib.Analysis.Calculus.UniformLimitsDeriv
import Mathlib.Analysis.Calculus.InverseFunctionTheorem.ContDiff
import Mathlib.Analysis.SpecialFunctions.ImproperIntegrals
import Mathlib.Analysis.Calculus.ParametricIntegral
import Mathlib.MeasureTheory.Integral.Bochner.ContinuousLinearMap
import Mathlib.Analysis.SpecialFunctions.Pow.Real
import Mathlib.Analysis.Calculus.FDeriv.Comp
import Mathlib.Algebra.Order.Floor.Ring
import Mathlib.Analysis.Calculus.FDeriv.Mul
import Mathlib.LinearAlgebra.Matrix.ToLin
import Mathlib.Data.List.Induction
import Mathlib.Algebra.BigOperators.Ring.Finset
import Mathlib.MeasureTheory.Measure.Lebesgue.Basic
import Mathlib.Algebra.Order.Floor.Semiring
import Mathlib.MeasureTheory.Constructions.BorelSpace.Metrizable
import Mathlib.Topology.Algebra.InfiniteSum.Order
import Mathlib.Data.PNat.Basic
import Mathlib.Data.Rat.Floor
import Mathlib.NumberTheory.Real.Irrational
import Mathlib.Order.OrderIsoNat
import Mathlib.MeasureTheory.Group.MeasurableEquiv
import Mathlib.MeasureTheory.Measure.Regular
import Mathlib.MeasureTheory.Function.JacobianOneDim
import Mathlib.MeasureTheory.Constructions.BorelSpace.Basic
import Mathlib.MeasureTheory.Function.Floor
import Mathlib.Dynamics.Ergodic.Ergodic
import Mathlib.Dynamics.BirkhoffSum.Average
import Mathlib.MeasureTheory.Integral.Bochner.Basic
import Mathlib.MeasureTheory.Measure.WithDensity
import Mathlib.Dynamics.Ergodic.MeasurePreserving
import Mathlib.Analysis.Asymptotics.SpecificAsymptotics
import Mathlib.Topology.UniformSpace.HeineCantor
import Mathlib.Dynamics.BirkhoffSum.NormedSpace
import Mathlib.MeasureTheory.Integral.Bochner.Set
import Mathlib.Analysis.Normed.Group.Tannery
import Mathlib.MeasureTheory.Function.LocallyIntegrable
import Definitions.Def_BianchiIX_Dynamics_AxisMaps
import Definitions.Def_BianchiIX_PhysicalEraData
import Mathlib.LinearAlgebra.Alternating.Curry
section
noncomputable section
namespace BianchiIX
/-- A positive-time point of the exact orbit is a statistical core after a physical axis permutation. -/
def StatisticalCoreFuture (η : ℝ) (J : ℕ) (σ Bcap : ℝ) (x : NormalizedState) : Prop :=
∃ T > (0 : ℝ), T ∈ normalizedMaxDomain x 0 ∧
∃ i : Fin 6, ∃ p : eraSurvivorDomain η J σ Bcap,
EraStatistics (EraSurvivor.digits p) (EraSurvivor.phase p) ∧
coreRadiusEntry p.val.2 = toProjectiveState ((axisFrame i).map (normalizedMaxCurve x 0 T))
end BianchiIX
end
end
section
section
noncomputable section
open BianchiIX
private theorem BianchiIX.axisCycle_shears (x : NormalizedState) :
normalizedShears (axisCycle x) = ![normalizedShears x 1, normalizedShears x 2, normalizedShears x 0] := by
have hs : (Real.sqrt 3) ^ 2 = 3 := Real.sq_sqrt (by norm_num)
ext i
fin_cases i <;> dsimp [normalizedShears, axisCycle] <;> ring_nf <;> norm_num [hs] <;> ring
end
end
section
noncomputable section
open BianchiIX
private theorem BianchiIX.axisSwap_shears (x : NormalizedState) :
normalizedShears (axisSwap x) = ![normalizedShears x 0, normalizedShears x 2, normalizedShears x 1] := by
ext i
fin_cases i <;> dsimp [normalizedShears, axisSwap] <;> ring
end
end
section
noncomputable section
open BianchiIX
private theorem BianchiIX.axisOrder_bijective : ∀ i, Function.Bijective (axisOrder i) := by decide
end
end
section
noncomputable section
open BianchiIX
private theorem BianchiIX.axisFrame_apply (i : Fin 6) (x : NormalizedState) :
(axisFrame i).map x =
![x, axisCycle x, axisCycle (axisCycle x), axisSwap x,
axisSwap (axisCycle x), axisSwap (axisCycle (axisCycle x))] i := by
fin_cases i <;> rfl
end
end
section
noncomputable section
open BianchiIX
private theorem BianchiIX.axisFrame_walls (i : Fin 6) (x : NormalizedState) :
normalizedWalls ((axisFrame i).map x) = fun j => normalizedWalls x (axisOrder i j) := by
rw [axisFrame_apply]
fin_cases i <;> ext j <;> fin_cases j <;> rfl
end
end
section
noncomputable section
open BianchiIX
private theorem BianchiIX.axisFrame_shears (i : Fin 6) (x : NormalizedState) :
normalizedShears ((axisFrame i).map x) = fun j => normalizedShears x (axisOrder i j) := by
rw [axisFrame_apply]
fin_cases i
· ext j
fin_cases j <;> rfl
· change normalizedShears (axisCycle x) = _
rw [axisCycle_shears]
ext j
fin_cases j <;> rfl
· change normalizedShears (axisCycle (axisCycle x)) = _
simp only [axisCycle_shears]
ext j
fin_cases j <;> rfl
· change normalizedShears (axisSwap x) = _
rw [axisSwap_shears]
ext j
fin_cases j <;> rfl
· change normalizedShears (axisSwap (axisCycle x)) = _
simp only [axisSwap_shears, axisCycle_shears]
ext j
fin_cases j <;> rfl
· change normalizedShears (axisSwap (axisCycle (axisCycle x))) = _
simp only [axisSwap_shears, axisCycle_shears]
ext j
fin_cases j <;> rfl
end
end
section
noncomputable section
open BianchiIX
private theorem BianchiIX.normalizedState_ext_shears_walls {x y : NormalizedState}
(hs : normalizedShears x = normalizedShears y) (hw : normalizedWalls x = normalizedWalls y) : x = y := by
have h₀ := congrFun hs 0
have h₁ := congrFun hs 1
change -2 * x 0 = -2 * y 0 at h₀
change x 0 - Real.sqrt 3 * x 1 = y 0 - Real.sqrt 3 * y 1 at h₁
have hx₀ : x 0 = y 0 := by linarith
have hx₁ : x 1 = y 1 := mul_left_cancel₀ (Real.sqrt_ne_zero'.mpr (by norm_num : (0 : ℝ) < 3))
(by linarith : Real.sqrt 3 * x 1 = Real.sqrt 3 * y 1)
ext i
fin_cases i
· exact hx₀
· exact hx₁
· exact congrFun hw 0
· exact congrFun hw 1
· exact congrFun hw 2
end
end
section
noncomputable section
open BianchiIX
private theorem BianchiIX.axisFrame_comp (i j : Fin 6) :
∃ k : Fin 6, ∀ x : NormalizedState,
(axisFrame i).map ((axisFrame j).map x) = (axisFrame k).map x := by
let σ : Equiv.Perm (Fin 3) := Equiv.ofBijective (axisOrder i) (axisOrder_bijective i)
let τ : Equiv.Perm (Fin 3) := Equiv.ofBijective (axisOrder j) (axisOrder_bijective j)
obtain ⟨k, hk⟩ := axisOrder_covers (σ.trans τ)
refine ⟨k, fun x => normalizedState_ext_shears_walls ?_ ?_⟩
· ext l
simp only [axisFrame_shears, hk]
rfl
· ext l
simp only [axisFrame_walls, hk]
rfl
end
end
noncomputable section
namespace BianchiIX
def coreRestartFrame (i : Fin 6) (w : CoreRestartData) : CoreRestartData :=
(((axisFrame_comp w.1.1 i).choose, w.1.2), w.2)
def coreRestartDelay (s : ℝ) (w : CoreRestartData) : CoreRestartData :=
((w.1.1, w.1.2 + s), w.2)
end BianchiIX
end
end
Source