Retiming and rebasing a normalized solution
DefinitionBianchiIX_Dynamics_FlowCompositionbianchi-ix-era-statisticsdynamical-systems
For real variables , set
The shear components and wall rates are
These functions define the normalized vacuum Bianchi IX vector field .
Let with coordinates and the sup norm. Write
and let .
Write , , and . For initial data , let be the union of all open convex domains of solutions with these initial data, and let be their compatible curve. A solution has such a domain , a curve , and .
Retiming a solution from to gives the curve on , with the same initial state. For , rebasing at retains its curve and domain and uses the initial data .
Definition code
import Definitions.Def_BianchiIX_Dynamics_Normalized
import Definitions.Def_BianchiIX_Dynamics_MaximalFlow
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
noncomputable section
namespace BianchiIX
open Set Filter Metric
open scoped Topology
/-- Translate the initial time of a solution of the autonomous equation. -/
def NormalizedSolution.retime {x : NormalizedState} {t₀ : ℝ}
(S : NormalizedSolution x t₀) (t₁ : ℝ) : NormalizedSolution x t₁ where
domain := (fun t => t + t₀ - t₁) ⁻¹' S.domain
isOpen_domain := S.isOpen_domain.preimage (by fun_prop)
convex_domain := convex_iff_ordConnected.mpr
(S.convex_domain.ordConnected.preimage_mono (fun a b hab => by linarith))
initial_mem := by simpa using S.initial_mem
curve := fun t => S.curve (t + t₀ - t₁)
initial_eq := by simpa using S.initial_eq
hasDerivAt := by
intro t ht
convert! (S.hasDerivAt (t + t₀ - t₁) ht).scomp t
(((hasDerivAt_id t).add_const t₀).sub_const t₁) using 1
simp
def NormalizedSolution.rebase {x : NormalizedState} {t₀ s : ℝ}
(S : NormalizedSolution x t₀) (hs : s ∈ S.domain) : NormalizedSolution (S.curve s) s :=
⟨S.domain, S.isOpen_domain, S.convex_domain, hs, S.curve, rfl, S.hasDerivAt⟩
end BianchiIX
Source