Imports
/-
Copyright (c) 2025 Joseph Tooby-Smith. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Tooby-Smith
-/
module
public import Physlib.SpaceAndTime.SpaceTime.Derivatives
public import Physlib.SpaceAndTime.TimeAndSpace.BasicTime slice
Time slicing functions on spacetime, turning them into a function
Time → Space d → M.
This is useful when going from relativistic physics (defined using SpaceTime)
to non-relativistic physics (defined using Space and Time).
@[expose] public section
The timeslice of a function SpaceTime d → M forming a function
Time → Space d → M.
def timeSlice {d : ℕ} {M : Type} (c : SpeedOfLight := 1) :
(SpaceTime d → M) ≃ (Time → Space d → M) where
toFun f := Function.curry (f ∘ (toTimeAndSpace c).symm)
invFun f := Function.uncurry f ∘ toTimeAndSpace c
left_inv f := d:ℕM:Typec:SpeedOfLightf:SpaceTime d → M⊢ (fun f => Function.uncurry f ∘ ⇑(toTimeAndSpace c)) ((fun f => Function.curry (f ∘ ⇑(toTimeAndSpace c).symm)) f) = f
d:ℕM:Typec:SpeedOfLightf:SpaceTime d → Mx:SpaceTime d⊢ (fun f => Function.uncurry f ∘ ⇑(toTimeAndSpace c)) ((fun f => Function.curry (f ∘ ⇑(toTimeAndSpace c).symm)) f) x = f x
All goals completed! 🐙
right_inv f := d:ℕM:Typec:SpeedOfLightf:Time → Space d → M⊢ (fun f => Function.curry (f ∘ ⇑(toTimeAndSpace c).symm)) ((fun f => Function.uncurry f ∘ ⇑(toTimeAndSpace c)) f) = f
d:ℕM:Typec:SpeedOfLightf:Time → Space d → Mx:Timet:Space d⊢ (fun f => Function.curry (f ∘ ⇑(toTimeAndSpace c).symm)) ((fun f => Function.uncurry f ∘ ⇑(toTimeAndSpace c)) f) x t =
f x t
All goals completed! 🐙@[fun_prop]
lemma timeSlice_contDiff {d : ℕ} {M : Type} [NormedAddCommGroup M]
[NormedSpace ℝ M]
{n} (c : SpeedOfLight) (f : SpaceTime d → M) (h : ContDiff ℝ n f) :
ContDiff ℝ n ↿(timeSlice c f) := d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:SpaceTime d → Mh:ContDiff ℝ n f⊢ ContDiff ℝ n ↿((timeSlice c) f)
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:SpaceTime d → Mh:ContDiff ℝ n f⊢ ContDiff ℝ n (f ∘ ⇑(toTimeAndSpace c).symm)
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:SpaceTime d → Mh:ContDiff ℝ n f⊢ ContDiff ℝ n fd:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:SpaceTime d → Mh:ContDiff ℝ n f⊢ ContDiff ℝ n ⇑(toTimeAndSpace c).symm
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:SpaceTime d → Mh:ContDiff ℝ n f⊢ ContDiff ℝ n f All goals completed! 🐙
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:SpaceTime d → Mh:ContDiff ℝ n f⊢ ContDiff ℝ n ⇑(toTimeAndSpace c).symm All goals completed! 🐙@[fun_prop]
lemma timeSlice_differentiable {d : ℕ} {M : Type} [NormedAddCommGroup M]
[NormedSpace ℝ M] (c : SpeedOfLight)
(f : SpaceTime d → M) (h : Differentiable ℝ f) :
Differentiable ℝ ↿(timeSlice c f) := d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:SpaceTime d → Mh:Differentiable ℝ f⊢ Differentiable ℝ ↿((timeSlice c) f)
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:SpaceTime d → Mh:Differentiable ℝ f⊢ Differentiable ℝ (f ∘ ⇑(toTimeAndSpace c).symm)
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:SpaceTime d → Mh:Differentiable ℝ f⊢ Differentiable ℝ fd:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:SpaceTime d → Mh:Differentiable ℝ f⊢ Differentiable ℝ ⇑(toTimeAndSpace c).symm
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:SpaceTime d → Mh:Differentiable ℝ f⊢ Differentiable ℝ f All goals completed! 🐙
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:SpaceTime d → Mh:Differentiable ℝ f⊢ Differentiable ℝ ⇑(toTimeAndSpace c).symm All goals completed! 🐙@[fun_prop]
lemma timeSlice_symm_contDiff {d : ℕ} {M : Type} [NormedAddCommGroup M] [NormedSpace ℝ M]
{n} (c : SpeedOfLight) (f : Time → Space d → M) (h : ContDiff ℝ n ↿f) :
ContDiff ℝ n ((timeSlice c).symm f) := d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:Time → Space d → Mh:ContDiff ℝ n ↿f⊢ ContDiff ℝ n ((timeSlice c).symm f)
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:Time → Space d → Mh:ContDiff ℝ n ↿f⊢ ContDiff ℝ n (Function.uncurry f ∘ ⇑(toTimeAndSpace c))
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:Time → Space d → Mh:ContDiff ℝ n ↿f⊢ ContDiff ℝ n (Function.uncurry f)d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:Time → Space d → Mh:ContDiff ℝ n ↿f⊢ ContDiff ℝ n ⇑(toTimeAndSpace c)
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:Time → Space d → Mh:ContDiff ℝ n ↿f⊢ ContDiff ℝ n (Function.uncurry f) All goals completed! 🐙
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mn:WithTop ℕ∞c:SpeedOfLightf:Time → Space d → Mh:ContDiff ℝ n ↿f⊢ ContDiff ℝ n ⇑(toTimeAndSpace c) All goals completed! 🐙@[fun_prop]
lemma timeSlice_symm_differentiable {d : ℕ} {M : Type} [NormedAddCommGroup M] [NormedSpace ℝ M]
(c : SpeedOfLight)
(f : Time → Space d → M) (h : Differentiable ℝ ↿f) :
Differentiable ℝ ↿((timeSlice c).symm f) := d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:Time → Space d → Mh:Differentiable ℝ ↿f⊢ Differentiable ℝ ↿((timeSlice c).symm f)
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:Time → Space d → Mh:Differentiable ℝ ↿f⊢ Differentiable ℝ (Function.uncurry f ∘ ⇑(toTimeAndSpace c))
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:Time → Space d → Mh:Differentiable ℝ ↿f⊢ Differentiable ℝ (Function.uncurry f)d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:Time → Space d → Mh:Differentiable ℝ ↿f⊢ Differentiable ℝ ⇑(toTimeAndSpace c)
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:Time → Space d → Mh:Differentiable ℝ ↿f⊢ Differentiable ℝ (Function.uncurry f) All goals completed! 🐙
d:ℕM:Typeinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:Time → Space d → Mh:Differentiable ℝ ↿f⊢ Differentiable ℝ ⇑(toTimeAndSpace c) All goals completed! 🐙
The timeslice of a function SpaceTime d → M forming a function
Time → Space d → M, as a linear equivalence.
def timeSliceLinearEquiv {d : ℕ} {M : Type} [AddCommGroup M] [Module ℝ M]
(c : SpeedOfLight := 1) :
(SpaceTime d → M) ≃ₗ[ℝ] (Time → Space d → M) where
toFun := timeSlice c
invFun := (timeSlice c).symm
map_add' f g := d:ℕM:Typeinst✝¹:AddCommGroup Minst✝:Module ℝ Mc:SpeedOfLightf:SpaceTime d → Mg:SpaceTime d → M⊢ (timeSlice c) (f + g) = (timeSlice c) f + (timeSlice c) g
d:ℕM:Typeinst✝¹:AddCommGroup Minst✝:Module ℝ Mc:SpeedOfLightf:SpaceTime d → Mg:SpaceTime d → Mt:Timex:Space d⊢ (timeSlice c) (f + g) t x = ((timeSlice c) f + (timeSlice c) g) t x
All goals completed! 🐙
map_smul' := d:ℕM:Typeinst✝¹:AddCommGroup Minst✝:Module ℝ Mc:SpeedOfLight⊢ ∀ (m : ℝ) (x : SpaceTime d → M), (timeSlice c) (m • x) = (RingHom.id ℝ) m • (timeSlice c) x
d:ℕM:Typeinst✝¹:AddCommGroup Minst✝:Module ℝ Mc✝:SpeedOfLightc:ℝf:SpaceTime d → M⊢ (timeSlice c✝) (c • f) = (RingHom.id ℝ) c • (timeSlice c✝) f
d:ℕM:Typeinst✝¹:AddCommGroup Minst✝:Module ℝ Mc✝:SpeedOfLightc:ℝf:SpaceTime d → Mt:Timex:Space d⊢ (timeSlice c✝) (c • f) t x = ((RingHom.id ℝ) c • (timeSlice c✝) f) t x
All goals completed! 🐙
left_inv f := d:ℕM:Typeinst✝¹:AddCommGroup Minst✝:Module ℝ Mc:SpeedOfLightf:SpaceTime d → M⊢ (timeSlice c).symm ((timeSlice c) f) = f All goals completed! 🐙
right_inv f := d:ℕM:Typeinst✝¹:AddCommGroup Minst✝:Module ℝ Mc:SpeedOfLightf:Time → Space d → M⊢ (timeSlice c) ((timeSlice c).symm f) = f All goals completed! 🐙lemma timeSliceLinearEquiv_apply {d : ℕ} {M : Type} [AddCommGroup M] [Module ℝ M]
(c : SpeedOfLight) (f : SpaceTime d → M) : timeSliceLinearEquiv c f = timeSlice c f := d:ℕM:Typeinst✝¹:AddCommGroup Minst✝:Module ℝ Mc:SpeedOfLightf:SpaceTime d → M⊢ (timeSliceLinearEquiv c) f = (timeSlice c) f
All goals completed! 🐙lemma timeSliceLinearEquiv_symm_apply {d : ℕ} {M : Type} [AddCommGroup M] [Module ℝ M]
(c : SpeedOfLight) (f : Time → Space d → M) :
(timeSliceLinearEquiv c).symm f = (timeSlice c).symm f := d:ℕM:Typeinst✝¹:AddCommGroup Minst✝:Module ℝ Mc:SpeedOfLightf:Time → Space d → M⊢ (timeSliceLinearEquiv c).symm f = (timeSlice c).symm f
All goals completed! 🐙B. Time slices of distributions
lemma distTimeSlice_apply {M d} [NormedAddCommGroup M] [NormedSpace ℝ M]
(c : SpeedOfLight) (f : (SpaceTime d) →d[ℝ] M)
(κ : 𝓢(Time × Space d, ℝ)) : distTimeSlice c f κ =
f (compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c) κ) := M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ ((distTimeSlice c) f) κ = f ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ) All goals completed! 🐙lemma distTimeSlice_symm_apply {M d} [NormedAddCommGroup M] [NormedSpace ℝ M]
(c : SpeedOfLight) (f : (Time × (Space d)) →d[ℝ] M)
(κ : 𝓢(SpaceTime d, ℝ)) : (distTimeSlice c).symm f κ =
f (compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c).symm κ) := M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(Time × Space d)→d[ℝ] Mκ:𝓢(SpaceTime d, ℝ)⊢ ((distTimeSlice c).symm f) κ = f ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c).symm) κ) All goals completed! 🐙B.1. Time slices and derivatives
e_6 M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ (1 / c.val) • (fderiv ℝ (⇑κ) ((toTimeAndSpace c) x)) (1, 0) = c.val⁻¹ * (fderiv ℝ (⇑κ) ((toTimeAndSpace c) x)) (1, 0)e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑κ) ((toTimeAndSpace c) x)e_6.hf M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑(toTimeAndSpace c)) x
simp only [one_div, smul_eq_mul] e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑κ) ((toTimeAndSpace c) x)e_6.hf M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑(toTimeAndSpace c)) x
· e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑κ) ((toTimeAndSpace c) x) apply Differentiable.differentiableAt e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ Differentiable ℝ ⇑κ
exact SchwartzMap.differentiable κ All goals completed! 🐙
· e_6.hf M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑(toTimeAndSpace c)) x fun_prop All goals completed! 🐙
lemma distDeriv_inl_distTimeSlice_symm {M d} [NormedAddCommGroup M] [NormedSpace ℝ M]
{c : SpeedOfLight}
(f : (Time × Space d) →d[ℝ] M) :
distDeriv (Sum.inl 0) ((distTimeSlice c).symm f) =
(1/c.val) • (distTimeSlice c).symm (Space.distTimeDeriv f) := by M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(Time × Space d)→d[ℝ] M⊢ (distDeriv (Sum.inl 0)) ((distTimeSlice c).symm f) = (1 / c.val) • (distTimeSlice c).symm (distTimeDeriv f)
obtain ⟨f, rfl⟩ := (distTimeSlice c).surjective f M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] M⊢ (distDeriv (Sum.inl 0)) ((distTimeSlice c).symm ((distTimeSlice c) f)) =
(1 / c.val) • (distTimeSlice c).symm (distTimeDeriv ((distTimeSlice c) f))
simp only [ContinuousLinearEquiv.symm_apply_apply] M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] M⊢ (distDeriv (Sum.inl 0)) f = (1 / c.val) • (distTimeSlice c).symm (distTimeDeriv ((distTimeSlice c) f))
apply (distTimeSlice c).injective M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] M⊢ (distTimeSlice c) ((distDeriv (Sum.inl 0)) f) =
(distTimeSlice c) ((1 / c.val) • (distTimeSlice c).symm (distTimeDeriv ((distTimeSlice c) f)))
simp only [Fin.isValue, one_div, map_smul, ContinuousLinearEquiv.apply_symm_apply] M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] M⊢ (distTimeSlice c) ((distDeriv (Sum.inl 0)) f) = c.val⁻¹ • distTimeDeriv ((distTimeSlice c) f)
rw [distTimeSlice_distDeriv_inl M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] M⊢ (1 / c.val) • distTimeDeriv ((distTimeSlice c) f) = c.val⁻¹ • distTimeDeriv ((distTimeSlice c) f) M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] M⊢ (1 / c.val) • distTimeDeriv ((distTimeSlice c) f) = c.val⁻¹ • distTimeDeriv ((distTimeSlice c) f)] M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(SpaceTime d)→d[ℝ] M⊢ (1 / c.val) • distTimeDeriv ((distTimeSlice c) f) = c.val⁻¹ • distTimeDeriv ((distTimeSlice c) f)
simp All goals completed! 🐙
lemma distTimeSlice_symm_distTimeDeriv_eq {M d} [NormedAddCommGroup M] [NormedSpace ℝ M]
{c : SpeedOfLight}
(f : (Time × Space d) →d[ℝ] M) :
(distTimeSlice c).symm (Space.distTimeDeriv f) =
c.val • distDeriv (Sum.inl 0) ((distTimeSlice c).symm f) := by M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(Time × Space d)→d[ℝ] M⊢ (distTimeSlice c).symm (distTimeDeriv f) = c.val • (distDeriv (Sum.inl 0)) ((distTimeSlice c).symm f)
rw [distDeriv_inl_distTimeSlice_symm M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(Time × Space d)→d[ℝ] M⊢ (distTimeSlice c).symm (distTimeDeriv f) = c.val • (1 / c.val) • (distTimeSlice c).symm (distTimeDeriv f) M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(Time × Space d)→d[ℝ] M⊢ (distTimeSlice c).symm (distTimeDeriv f) = c.val • (1 / c.val) • (distTimeSlice c).symm (distTimeDeriv f)] M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLightf:(Time × Space d)→d[ℝ] M⊢ (distTimeSlice c).symm (distTimeDeriv f) = c.val • (1 / c.val) • (distTimeSlice c).symm (distTimeDeriv f)
simp All goals completed! 🐙
lemma distTimeSlice_distDeriv_inr {M d} [NormedAddCommGroup M] [NormedSpace ℝ M]
{c : SpeedOfLight}
(i : Fin d) (f : (SpaceTime d) →d[ℝ] M) :
distTimeSlice c (distDeriv (Sum.inr i) f) =
Space.distSpaceDeriv i (distTimeSlice c f) := by M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] M⊢ (distTimeSlice c) ((distDeriv (Sum.inr i)) f) = (distSpaceDeriv i) ((distTimeSlice c) f)
ext κ M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ ((distTimeSlice c) ((distDeriv (Sum.inr i)) f)) κ = ((distSpaceDeriv i) ((distTimeSlice c) f)) κ
rw [distTimeSlice_apply, M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ ((distDeriv (Sum.inr i)) f) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ) =
((distSpaceDeriv i) ((distTimeSlice c) f)) κ M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
((distSpaceDeriv i) ((distTimeSlice c) f)) κ distDeriv_apply, M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ (((fderivD ℝ) f) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ)) (Lorentz.Vector.basis (Sum.inr i)) =
((distSpaceDeriv i) ((distTimeSlice c) f)) κ M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
((distSpaceDeriv i) ((distTimeSlice c) f)) κ fderivD_apply M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
((distSpaceDeriv i) ((distTimeSlice c) f)) κ M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
((distSpaceDeriv i) ((distTimeSlice c) f)) κ] M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
((distSpaceDeriv i) ((distTimeSlice c) f)) κ
rw [distSpaceDeriv_apply, M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
(((fderivD ℝ) ((distTimeSlice c) f)) κ) (0, Space.basis i) M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
-f
((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c))
((SchwartzMap.evalCLM ℝ (Time × Space d) ℝ (0, Space.basis i)) ((fderivCLM ℝ (Time × Space d) ℝ) κ))) fderivD_apply, M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
-((distTimeSlice c) f)
((SchwartzMap.evalCLM ℝ (Time × Space d) ℝ (0, Space.basis i)) ((fderivCLM ℝ (Time × Space d) ℝ) κ)) M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
-f
((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c))
((SchwartzMap.evalCLM ℝ (Time × Space d) ℝ (0, Space.basis i)) ((fderivCLM ℝ (Time × Space d) ℝ) κ))) distTimeSlice_apply M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
-f
((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c))
((SchwartzMap.evalCLM ℝ (Time × Space d) ℝ (0, Space.basis i)) ((fderivCLM ℝ (Time × Space d) ℝ) κ))) M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
-f
((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c))
((SchwartzMap.evalCLM ℝ (Time × Space d) ℝ (0, Space.basis i)) ((fderivCLM ℝ (Time × Space d) ℝ) κ)))] M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ -f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
-f
((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c))
((SchwartzMap.evalCLM ℝ (Time × Space d) ℝ (0, Space.basis i)) ((fderivCLM ℝ (Time × Space d) ℝ) κ)))
simp only [neg_inj] M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ f
((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ))) =
f
((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c))
((SchwartzMap.evalCLM ℝ (Time × Space d) ℝ (0, Space.basis i)) ((fderivCLM ℝ (Time × Space d) ℝ) κ)))
congr 1 e_6 M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)⊢ (SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ)) =
(compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c))
((SchwartzMap.evalCLM ℝ (Time × Space d) ℝ (0, Space.basis i)) ((fderivCLM ℝ (Time × Space d) ℝ) κ))
ext x e_6 M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ ((SchwartzMap.evalCLM ℝ (SpaceTime d) ℝ (Lorentz.Vector.basis (Sum.inr i)))
((fderivCLM ℝ (SpaceTime d) ℝ) ((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c)) κ)))
x =
((compCLMOfContinuousLinearEquiv ℝ (toTimeAndSpace c))
((SchwartzMap.evalCLM ℝ (Time × Space d) ℝ (0, Space.basis i)) ((fderivCLM ℝ (Time × Space d) ℝ) κ)))
x
change fderiv ℝ (κ ∘ toTimeAndSpace c) x (Lorentz.Vector.basis (Sum.inr i)) =
fderiv ℝ κ (toTimeAndSpace c x) (0, Space.basis i) e_6 M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ (fderiv ℝ (⇑κ ∘ ⇑(toTimeAndSpace c)) x) (Lorentz.Vector.basis (Sum.inr i)) =
(fderiv ℝ (⇑κ) ((toTimeAndSpace c) x)) (0, Space.basis i)
rw [fderiv_comp e_6 M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ (fderiv ℝ (⇑κ) ((toTimeAndSpace c) x) ∘SL fderiv ℝ (⇑(toTimeAndSpace c)) x) (Lorentz.Vector.basis (Sum.inr i)) =
(fderiv ℝ (⇑κ) ((toTimeAndSpace c) x)) (0, Space.basis i)e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑κ) ((toTimeAndSpace c) x)e_6.hf M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑(toTimeAndSpace c)) x e_6 M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ (fderiv ℝ (⇑κ) ((toTimeAndSpace c) x) ∘SL fderiv ℝ (⇑(toTimeAndSpace c)) x) (Lorentz.Vector.basis (Sum.inr i)) =
(fderiv ℝ (⇑κ) ((toTimeAndSpace c) x)) (0, Space.basis i)e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑κ) ((toTimeAndSpace c) x)e_6.hf M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑(toTimeAndSpace c)) x]e_6 M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ (fderiv ℝ (⇑κ) ((toTimeAndSpace c) x) ∘SL fderiv ℝ (⇑(toTimeAndSpace c)) x) (Lorentz.Vector.basis (Sum.inr i)) =
(fderiv ℝ (⇑κ) ((toTimeAndSpace c) x)) (0, Space.basis i)e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑κ) ((toTimeAndSpace c) x)e_6.hf M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑(toTimeAndSpace c)) x
simp only [toTimeAndSpace_fderiv, ContinuousLinearMap.coe_comp, ContinuousLinearEquiv.coe_coe,
Function.comp_apply] e_6 M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ (fderiv ℝ (⇑κ) ((toTimeAndSpace c) x)) ((toTimeAndSpace c) (Lorentz.Vector.basis (Sum.inr i))) =
(fderiv ℝ (⇑κ) ((toTimeAndSpace c) x)) (0, Space.basis i)e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑κ) ((toTimeAndSpace c) x)e_6.hf M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑(toTimeAndSpace c)) x
rw [toTimeAndSpace_basis_inr e_6 M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ (fderiv ℝ (⇑κ) ((toTimeAndSpace c) x)) (0, Space.basis i) = (fderiv ℝ (⇑κ) ((toTimeAndSpace c) x)) (0, Space.basis i)e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑κ) ((toTimeAndSpace c) x)e_6.hf M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑(toTimeAndSpace c)) x e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑κ) ((toTimeAndSpace c) x)e_6.hf M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑(toTimeAndSpace c)) x]e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑κ) ((toTimeAndSpace c) x)e_6.hf M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑(toTimeAndSpace c)) x
· e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑κ) ((toTimeAndSpace c) x) apply Differentiable.differentiableAt e_6.hg M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ Differentiable ℝ ⇑κ
exact SchwartzMap.differentiable κ All goals completed! 🐙
· e_6.hf M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] Mκ:𝓢(Time × Space d, ℝ)x:SpaceTime d⊢ DifferentiableAt ℝ (⇑(toTimeAndSpace c)) x fun_prop All goals completed! 🐙
lemma distDeriv_inr_distTimeSlice_symm {M d} [NormedAddCommGroup M] [NormedSpace ℝ M]
{c : SpeedOfLight}
(i : Fin d) (f : (Time × Space d) →d[ℝ] M) :
distDeriv (Sum.inr i) ((distTimeSlice c).symm f) =
(distTimeSlice c).symm (Space.distSpaceDeriv i f) := by M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(Time × Space d)→d[ℝ] M⊢ (distDeriv (Sum.inr i)) ((distTimeSlice c).symm f) = (distTimeSlice c).symm ((distSpaceDeriv i) f)
obtain ⟨f, rfl⟩ := (distTimeSlice c).surjective f M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] M⊢ (distDeriv (Sum.inr i)) ((distTimeSlice c).symm ((distTimeSlice c) f)) =
(distTimeSlice c).symm ((distSpaceDeriv i) ((distTimeSlice c) f))
simp only [ContinuousLinearEquiv.symm_apply_apply] M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] M⊢ (distDeriv (Sum.inr i)) f = (distTimeSlice c).symm ((distSpaceDeriv i) ((distTimeSlice c) f))
apply (distTimeSlice c).injective M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] M⊢ (distTimeSlice c) ((distDeriv (Sum.inr i)) f) =
(distTimeSlice c) ((distTimeSlice c).symm ((distSpaceDeriv i) ((distTimeSlice c) f)))
simp only [ContinuousLinearEquiv.apply_symm_apply] M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] M⊢ (distTimeSlice c) ((distDeriv (Sum.inr i)) f) = (distSpaceDeriv i) ((distTimeSlice c) f)
rw [distTimeSlice_distDeriv_inr M:Typed:ℕinst✝¹:NormedAddCommGroup Minst✝:NormedSpace ℝ Mc:SpeedOfLighti:Fin df:(SpaceTime d)→d[ℝ] M⊢ (distSpaceDeriv i) ((distTimeSlice c) f) = (distSpaceDeriv i) ((distTimeSlice c) f) All goals completed! 🐙] All goals completed! 🐙