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.Relativity.LorentzGroup.Boosts.Basic public import Physlib.SpaceAndTime.SpaceTime.Basic

Boosts of space time

i. Overview

In this module we consider boosts acting on points in space time,and recover simple formulae for such applications.

Note that the material here currently assumes that the speed of light c = 1.

ii. Key results

    boost_x_smul : The action of a boost in the x-direction on a point in space time.

iii. Table of contents

    A. The action of a boost in the x-direction

iv. References

See e.g.

    https://en.wikipedia.org/wiki/Lorentz_transformation

@[expose] public section

A. The action of a boost in the x-direction

We show that boosting in the x-direction takes (t, x, y, z) to (γ (t - β x), γ (x - β t), y, z).

lemma boost_x_smul (β : ) ( : |β| < 1) (x : SpaceTime) : LorentzGroup.boost (d := 3) 0 β x = fun | Sum.inl 0 => γ β * (x (Sum.inl 0) - β * x (Sum.inr 0)) | Sum.inr 0 => γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) | Sum.inr 1=> x (Sum.inr 1) | Sum.inr 2=> x (Sum.inr 2) := β::|β| < 1x:SpaceTimeboost 0 β x = fun x_1 => match x_1 with | Sum.inl 0 => γ β * (x (Sum.inl 0) - β * x (Sum.inr 0)) | Sum.inr 0 => γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) | Sum.inr 1 => x (Sum.inr 1) | Sum.inr 2 => x (Sum.inr 2) β::|β| < 1x:SpaceTimei:Fin 1 Fin 3(boost 0 β x) i = match i with | Sum.inl 0 => γ β * (x (Sum.inl 0) - β * x (Sum.inr 0)) | Sum.inr 0 => γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) | Sum.inr 1 => x (Sum.inr 1) | Sum.inr 2 => x (Sum.inr 2) β::|β| < 1x:SpaceTime(boost 0 β x) (Sum.inl ((fun i => i) 0, )) = match Sum.inl ((fun i => i) 0, ) with | Sum.inl 0 => γ β * (x (Sum.inl 0) - β * x (Sum.inr 0)) | Sum.inr 0 => γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) | Sum.inr 1 => x (Sum.inr 1) | Sum.inr 2 => x (Sum.inr 2)β::|β| < 1x:SpaceTime(boost 0 β x) (Sum.inr ((fun i => i) 0, )) = match Sum.inr ((fun i => i) 0, ) with | Sum.inl 0 => γ β * (x (Sum.inl 0) - β * x (Sum.inr 0)) | Sum.inr 0 => γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) | Sum.inr 1 => x (Sum.inr 1) | Sum.inr 2 => x (Sum.inr 2)β::|β| < 1x:SpaceTime(boost 0 β x) (Sum.inr ((fun i => i) 1, )) = match Sum.inr ((fun i => i) 1, ) with | Sum.inl 0 => γ β * (x (Sum.inl 0) - β * x (Sum.inr 0)) | Sum.inr 0 => γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) | Sum.inr 1 => x (Sum.inr 1) | Sum.inr 2 => x (Sum.inr 2)β::|β| < 1x:SpaceTime(boost 0 β x) (Sum.inr ((fun i => i) 2, )) = match Sum.inr ((fun i => i) 2, ) with | Sum.inl 0 => γ β * (x (Sum.inl 0) - β * x (Sum.inr 0)) | Sum.inr 0 => γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) | Sum.inr 1 => x (Sum.inr 1) | Sum.inr 2 => x (Sum.inr 2) β::|β| < 1x:SpaceTime(boost 0 β x) (Sum.inl ((fun i => i) 0, )) = match Sum.inl ((fun i => i) 0, ) with | Sum.inl 0 => γ β * (x (Sum.inl 0) - β * x (Sum.inr 0)) | Sum.inr 0 => γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) | Sum.inr 1 => x (Sum.inr 1) | Sum.inr 2 => x (Sum.inr 2)β::|β| < 1x:SpaceTime(boost 0 β x) (Sum.inr ((fun i => i) 0, )) = match Sum.inr ((fun i => i) 0, ) with | Sum.inl 0 => γ β * (x (Sum.inl 0) - β * x (Sum.inr 0)) | Sum.inr 0 => γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) | Sum.inr 1 => x (Sum.inr 1) | Sum.inr 2 => x (Sum.inr 2)β::|β| < 1x:SpaceTime(boost 0 β x) (Sum.inr ((fun i => i) 1, )) = match Sum.inr ((fun i => i) 1, ) with | Sum.inl 0 => γ β * (x (Sum.inl 0) - β * x (Sum.inr 0)) | Sum.inr 0 => γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) | Sum.inr 1 => x (Sum.inr 1) | Sum.inr 2 => x (Sum.inr 2)β::|β| < 1x:SpaceTime(boost 0 β x) (Sum.inr ((fun i => i) 2, )) = match Sum.inr ((fun i => i) 2, ) with | Sum.inl 0 => γ β * (x (Sum.inl 0) - β * x (Sum.inr 0)) | Sum.inr 0 => γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) | Sum.inr 1 => x (Sum.inr 1) | Sum.inr 2 => x (Sum.inr 2) All goals completed! 🐙 β::|β| < 1x:SpaceTimeγ β * x (Sum.inl 0) + -(γ β * β * x (Sum.inr 0)) = γ β * (x (Sum.inl 0) - β * x (Sum.inr 0))β::|β| < 1x:SpaceTime-(γ β * β * x (Sum.inl 0)) + γ β * x (Sum.inr 0) = γ β * (x (Sum.inr 0) - β * x (Sum.inl 0)) All goals completed! 🐙d:β::|β| < 1c:SpeedOfLightt:Timex:Space d.succμ:Fin 1 Fin d.succn:h:n.succ < d.succ(boost 0 (-β) ) (Sum.inr n + 1, h) (Sum.inr n, .succ) * x.val n, .succ = x.val n + 1, hd:β::|β| < 1c:SpeedOfLightt:Timex:Space d.succμ:Fin 1 Fin d.succn:h:n.succ < d.succ b Finset.univ, b n, (boost 0 (-β) ) (Sum.inr n + 1, h) (Sum.inr b.succ) * x.val b.succ = 0d:β::|β| < 1c:SpeedOfLightt:Timex:Space d.succμ:Fin 1 Fin d.succn:h:n.succ < d.succn, Finset.univ (boost 0 (-β) ) (Sum.inr n + 1, h) (Sum.inr n, .succ) * x.val n, .succ = 0 d:β::|β| < 1c:SpeedOfLightt:Timex:Space d.succμ:Fin 1 Fin d.succn:h:n.succ < d.succ(boost 0 (-β) ) (Sum.inr n + 1, h) (Sum.inr n, .succ) * x.val n, .succ = x.val n + 1, hd:β::|β| < 1c:SpeedOfLightt:Timex:Space d.succμ:Fin 1 Fin d.succn:h:n.succ < d.succ b Finset.univ, b n, (boost 0 (-β) ) (Sum.inr n + 1, h) (Sum.inr b.succ) * x.val b.succ = 0d:β::|β| < 1c:SpeedOfLightt:Timex:Space d.succμ:Fin 1 Fin d.succn:h:n.succ < d.succn, Finset.univ (boost 0 (-β) ) (Sum.inr n + 1, h) (Sum.inr n, .succ) * x.val n, .succ = 0 All goals completed! 🐙