Imports
/- Copyright (c) 2024 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.Restricted.Basic

Generalized Boosts

This module defines a generalization of the traditional boosts. They are define given two velocities u and v, as an input an take the velocity u to the velocity v.

We show that these generalised boosts are Lorentz transformations, and furthermore sit in the restricted Lorentz group.

A boost is the special case of a generalised boost when u = basis 0.

References

    The main argument follows: Guillem Cobos, The Lorentz Group, 2015: https://diposit.ub.edu/dspace/bitstream/2445/68763/2/memoria.pdf

@[expose] public section

Auxiliary Linear Maps

An auxiliary linear map used in the definition of a generalised boost.

def genBoostAux₁ (u v : Velocity d) : Vector d →ₗ[] Vector d where toFun x := (2 * x, u⟫ₘ) v map_add' x y := d:u:(Velocity d)v:(Velocity d)x:Lorentz.Vector dy:Lorentz.Vector d(2 * (minkowskiProduct (x + y)) u) v = (2 * (minkowskiProduct x) u) v + (2 * (minkowskiProduct y) u) v All goals completed! 🐙 map_smul' c x := d:u:(Velocity d)v:(Velocity d)c:x:Lorentz.Vector d(2 * (minkowskiProduct (c x)) u) v = (RingHom.id ) c (2 * (minkowskiProduct x) u) v d:u:(Velocity d)v:(Velocity d)c:x:Lorentz.Vector d(2 * (c minkowskiProduct x) u) v = (c * (2 * (minkowskiProduct x) u)) v d:u:(Velocity d)v:(Velocity d)c:x:Lorentz.Vector d(2 * (c * (minkowskiProduct x) u)) v = (c * (2 * (minkowskiProduct x) u)) v d:u:(Velocity d)v:(Velocity d)c:x:Lorentz.Vector d2 * (c * (minkowskiProduct x) u) = c * (2 * (minkowskiProduct x) u) All goals completed! 🐙

An auxiliary linear map used in the definition of a generalised boost.

All goals completed! 🐙
lemma genBoostAux₂_self (u : Velocity d) : genBoostAux₂ u u = - genBoostAux₁ u u := d:u:(Velocity d)genBoostAux₂ u u = -genBoostAux₁ u u d:u:(Velocity d)x:Lorentz.Vector d(genBoostAux₂ u u) x = (-genBoostAux₁ u u) x d:u:(Velocity d)x:Lorentz.Vector d-(((minkowskiProduct x) u + (minkowskiProduct x) u) / (1 + 1)) (u + u) = -((2 * (minkowskiProduct x) u) u) d:u:(Velocity d)x:Lorentz.Vector d-(((minkowskiProduct x) u + (minkowskiProduct x) u) / (1 + 1)) * (1 + 1) = -(2 * (minkowskiProduct x) u * 1) All goals completed! 🐙lemma genBoostAux₁_apply_basis (u v : Velocity d) (μ : Fin 1 Fin d) : (genBoostAux₁ u v) (Vector.basis μ) = (2 * η μ μ * u.1 μ) v := d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin d(genBoostAux₁ u v) (basis μ) = (2 * η μ μ * u μ) v d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin d(2 * (η μ μ * u μ)) v = (2 * η μ μ * u μ) v All goals completed! 🐙lemma genBoostAux₂_apply_basis (u v : Velocity d) (μ : Fin 1 Fin d) : (genBoostAux₂ u v) (Vector.basis μ) = - (η μ μ * (u.1 μ + v.1 μ) / (1 + u.1, v.1⟫ₘ)) (u.1 + v.1) := d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin d(genBoostAux₂ u v) (basis μ) = -(η μ μ * (u μ + v μ) / (1 + (minkowskiProduct u) v)) (u + v) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin d-(((η μ μ * u μ + η μ μ * v μ) / (1 + (minkowskiProduct u) v)) u) + -(((η μ μ * u μ + η μ μ * v μ) / (1 + (minkowskiProduct u) v)) v) = -((η μ μ * (u μ + v μ) / (1 + (minkowskiProduct u) v)) u) + -((η μ μ * (u μ + v μ) / (1 + (minkowskiProduct u) v)) v) All goals completed! 🐙lemma genBoostAux₁_basis_minkowskiProduct (u v : Velocity d) (μ ν : Fin 1 Fin d) : genBoostAux₁ u v (Vector.basis μ), genBoostAux₁ u v (Vector.basis ν)⟫ₘ = 4 * η μ μ * η ν ν * u.1 μ * u.1 ν := d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d(minkowskiProduct ((genBoostAux₁ u v) (basis μ))) ((genBoostAux₁ u v) (basis ν)) = 4 * η μ μ * η ν ν * u μ * u ν d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d2 * (η ν ν * u ν) * (2 * (η μ μ * u μ)) = 4 * η μ μ * η ν ν * u μ * u ν All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d(genBoostAux₁ u v) (basis ν) μ = η ν ν * (2 * u ν * v μ) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d2 * (η ν ν * u ν) * v μ = η ν ν * (2 * u ν * v μ) All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dh1:(minkowskiProduct (u + v)) (u + v) = 2 * (1 + (minkowskiProduct u) v)h2✝:1 + (minkowskiProduct u) v 0h2:(minkowskiProduct v) u = (minkowskiProduct u) v-(η ν ν * (u ν + v ν) * (-(η μ μ * (u μ + v μ) / (1 + (minkowskiProduct u) v)) minkowskiProduct (u + v)) (u + v)) = η ν ν * (u ν + v ν) * η μ μ * (u μ + v μ) * 2 d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dh1:(minkowskiProduct (u + v)) (u + v) = 2 * (1 + (minkowskiProduct u) v)h2✝:1 + (minkowskiProduct u) v 0h2:(minkowskiProduct v) u = (minkowskiProduct u) v-(η ν ν * (u ν + v ν) * (-(η μ μ * (u μ + v μ) / (1 + (minkowskiProduct u) v) * 1) + -(η μ μ * (u μ + v μ) / (1 + (minkowskiProduct u) v) * (minkowskiProduct u) v) + (-(η μ μ * (u μ + v μ) / (1 + (minkowskiProduct u) v) * (minkowskiProduct u) v) + -(η μ μ * (u μ + v μ) / (1 + (minkowskiProduct u) v) * 1)))) = η ν ν * (u ν + v ν) * η μ μ * (u μ + v μ) * 2 d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dh1:(minkowskiProduct (u + v)) (u + v) = 2 * (1 + (minkowskiProduct u) v)h2✝:1 + (minkowskiProduct u) v 0h2:(minkowskiProduct v) u = (minkowskiProduct u) v-(η ν ν * (u ν + v ν) * η μ μ * (u μ + v μ) * (-1 + -(minkowskiProduct u) v + (-(minkowskiProduct u) v + -1))) = η ν ν * (u ν + v ν) * η μ μ * (u μ + v μ) * (1 + (minkowskiProduct u) v) * 2 All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dh1:(minkowskiProduct v) (u + v) = 1 + (minkowskiProduct u) vh2:1 + (minkowskiProduct u) v 0η ν ν * (u ν + v ν) * η μ μ * u μ * ((minkowskiProduct u) v + 1) = η ν ν * (u ν + v ν) * (1 + (minkowskiProduct u) v) * η μ μ * u μ All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d(genBoostAux₂ u v) (basis ν) μ = η ν ν * (-(u μ + v μ) * (u ν + v ν) / (1 + (minkowskiProduct u) v)) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d(-(η ν ν * (u + v) ν / (1 + (minkowskiProduct u) v)) (u + v)) μ = η ν ν * (-(u μ + v μ) * (u ν + v ν) / (1 + (minkowskiProduct u) v)) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dh1:1 + (minkowskiProduct u) v 0(-(η ν ν * (u + v) ν / (1 + (minkowskiProduct u) v)) (u + v)) μ = η ν ν * (-(u μ + v μ) * (u ν + v ν) / (1 + (minkowskiProduct u) v)) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dh1:1 + (minkowskiProduct u) v 0-(η ν ν * (u ν + v ν) / (1 + (minkowskiProduct u) v) * (u μ + v μ)) = η ν ν * ((-v μ + -u μ) * (u ν + v ν) / (1 + (minkowskiProduct u) v)) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dh1:1 + (minkowskiProduct u) v 0-(η ν ν * (u ν + v ν) * (u μ + v μ)) = η ν ν * (u ν + v ν) * (-v μ + -u μ) All goals completed! 🐙lemma genBoostAux₁_add_genBoostAux₂_minkowskiProduct (u v : Velocity d) (μ ν : Fin 1 Fin d) : genBoostAux₁ u v (Vector.basis μ) + genBoostAux₂ u v (Vector.basis μ), genBoostAux₁ u v (Vector.basis ν) + genBoostAux₂ u v (Vector.basis ν)⟫ₘ = 2 * η μ μ * η ν ν * (- u.1 μ * (u.1 ν + v.1 ν) - u.1 ν * (u.1 μ + v.1 μ) + (u.1 μ + v.1 μ) * (u.1 ν + v.1 ν) * (1 + u, v.1⟫ₘ)⁻¹ + 2 * u.1 μ * u.1 ν) := d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d(minkowskiProduct ((genBoostAux₁ u v) (basis μ) + (genBoostAux₂ u v) (basis μ))) ((genBoostAux₁ u v) (basis ν) + (genBoostAux₂ u v) (basis ν)) = 2 * η μ μ * η ν ν * (-u μ * (u ν + v ν) - u ν * (u μ + v μ) + (u μ + v μ) * (u ν + v ν) * (1 + (minkowskiProduct u) v)⁻¹ + 2 * u μ * u ν) conv_lhs => d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| (minkowskiProduct ((genBoostAux₁ u v) (basis μ))) ((genBoostAux₁ u v) (basis ν)) + (minkowskiProduct ((genBoostAux₂ u v) (basis μ))) ((genBoostAux₁ u v) (basis ν)) + ((minkowskiProduct ((genBoostAux₁ u v) (basis μ))) ((genBoostAux₂ u v) (basis ν)) + (minkowskiProduct ((genBoostAux₂ u v) (basis μ))) ((genBoostAux₂ u v) (basis ν))) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| 4 * η μ μ * η ν ν * u μ * u ν + -2 * η ν ν * η μ μ * u ν * (u μ + v μ) + (-2 * η μ μ * η ν ν * u μ * (u ν + v ν) + 2 * η μ μ * η ν ν * (u μ + v μ) * (u ν + v ν) * (1 + (minkowskiProduct u) v)⁻¹) All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dh2:1 + (minkowskiProduct u) v 02 * η ν ν * u ν * (η μ μ * v μ) + -(η ν ν * (u ν + v ν) / (1 + (minkowskiProduct u) v) * (η μ μ * (u μ + v μ))) = η μ μ * η ν ν * (2 * u ν * v μ - (u μ + v μ) * (u ν + v ν) * (1 + (minkowskiProduct u) v)⁻¹) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dh2:1 + (minkowskiProduct u) v 0η ν ν * η μ μ * (2 * u ν * v μ * (1 + (minkowskiProduct u) v) + -((u ν + v ν) * (u μ + v μ))) = η ν ν * η μ μ * (2 * u ν * v μ * (1 + (minkowskiProduct u) v) - (u ν + v ν) * (u μ + v μ)) All goals completed! 🐙

Generalized Boosts

An generalised boost. This is a Lorentz transformation which takes the Lorentz velocity u to v.

d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d(minkowskiProduct (basis μ + ((genBoostAux₁ u v) (basis μ) + (genBoostAux₂ u v) (basis μ)))) (basis ν) + (minkowskiProduct (basis μ + ((genBoostAux₁ u v) (basis μ) + (genBoostAux₂ u v) (basis μ)))) ((genBoostAux₁ u v) (basis ν) + (genBoostAux₂ u v) (basis ν)) = (minkowskiProduct (basis μ)) (basis ν) conv_lhs => d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| (minkowskiProduct (basis μ + ((genBoostAux₁ u v) (basis μ) + (genBoostAux₂ u v) (basis μ)))) (basis ν) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| (minkowskiProduct (basis μ) + minkowskiProduct ((genBoostAux₁ u v) (basis μ) + (genBoostAux₂ u v) (basis μ))) (basis ν) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| (minkowskiProduct (basis μ)) (basis ν) + (minkowskiProduct ((genBoostAux₁ u v) (basis μ) + (genBoostAux₂ u v) (basis μ))) (basis ν) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| (minkowskiProduct ((genBoostAux₁ u v) (basis μ) + (genBoostAux₂ u v) (basis μ))) (basis ν) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| η ν ν * η μ μ * (2 * u μ * v ν - (u ν + v ν) * (u μ + v μ) * (1 + (minkowskiProduct u) v)⁻¹) conv_lhs => d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| minkowskiProduct (basis μ + ((genBoostAux₁ u v) (basis μ) + (genBoostAux₂ u v) (basis μ))) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| minkowskiProduct (basis μ) + minkowskiProduct ((genBoostAux₁ u v) (basis μ) + (genBoostAux₂ u v) (basis μ)) conv_lhs => d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| (minkowskiProduct (basis μ) + minkowskiProduct ((genBoostAux₁ u v) (basis μ) + (genBoostAux₂ u v) (basis μ))) ((genBoostAux₁ u v) (basis ν) + (genBoostAux₂ u v) (basis ν)) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| (minkowskiProduct (basis μ)) ((genBoostAux₁ u v) (basis ν) + (genBoostAux₂ u v) (basis ν)) + (minkowskiProduct ((genBoostAux₁ u v) (basis μ) + (genBoostAux₂ u v) (basis μ))) ((genBoostAux₁ u v) (basis ν) + (genBoostAux₂ u v) (basis ν)) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d| η μ μ * η ν ν * (2 * u ν * v μ - (u μ + v μ) * (u ν + v ν) * (1 + (minkowskiProduct u) v)⁻¹) + 2 * η μ μ * η ν ν * (-u μ * (u ν + v ν) - u ν * (u μ + v μ) + (u μ + v μ) * (u ν + v ν) * (1 + (minkowskiProduct u) v)⁻¹ + 2 * u μ * u ν) All goals completed! 🐙
All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)x:Lorentz.Vector d(1 + (minkowskiProduct u) v) x + (2 * (minkowskiProduct x) u * (1 + (minkowskiProduct u) v)) v + -((minkowskiProduct x) (u + v) (u + v)) = (1 + (minkowskiProduct u) v) x + (2 * (minkowskiProduct x) u * (1 + (minkowskiProduct u) v)) v - (minkowskiProduct x) (u + v) (u + v) All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)x:Lorentz.Vector dh:1 + (minkowskiProduct u) v 0(1 + (minkowskiProduct u) v) x + (2 * (minkowskiProduct x) u * (1 + (minkowskiProduct u) v)) v - (minkowskiProduct x) (u + v) (u + v) = (1 + (minkowskiProduct u) v) (x + (2 * (minkowskiProduct x) u) v - ((minkowskiProduct x) (u + v) / (1 + (minkowskiProduct u) v)) (u + v)) d:u:(Velocity d)v:(Velocity d)x:Lorentz.Vector dh:1 + (minkowskiProduct u) v 0(1 + (minkowskiProduct u) v) * 1 = (1 + (minkowskiProduct u) v) * 1d:u:(Velocity d)v:(Velocity d)x:Lorentz.Vector dh:1 + (minkowskiProduct u) v 02 * (minkowskiProduct x) u * (1 + (minkowskiProduct u) v) * 1 - (minkowskiProduct x) (u + v) * 1 = (1 + (minkowskiProduct u) v) * (2 * (minkowskiProduct x) u * 1 - (minkowskiProduct x) (u + v) / (1 + (minkowskiProduct u) v) * 1)d:u:(Velocity d)v:(Velocity d)x:Lorentz.Vector dh:1 + (minkowskiProduct u) v 0-((minkowskiProduct x) (u + v) * 1) = (1 + (minkowskiProduct u) v) * -((minkowskiProduct x) (u + v) / (1 + (minkowskiProduct u) v) * 1) d:u:(Velocity d)v:(Velocity d)x:Lorentz.Vector dh:1 + (minkowskiProduct u) v 0(1 + (minkowskiProduct u) v) * 1 = (1 + (minkowskiProduct u) v) * 1d:u:(Velocity d)v:(Velocity d)x:Lorentz.Vector dh:1 + (minkowskiProduct u) v 02 * (minkowskiProduct x) u * (1 + (minkowskiProduct u) v) * 1 - (minkowskiProduct x) (u + v) * 1 = (1 + (minkowskiProduct u) v) * (2 * (minkowskiProduct x) u * 1 - (minkowskiProduct x) (u + v) / (1 + (minkowskiProduct u) v) * 1)d:u:(Velocity d)v:(Velocity d)x:Lorentz.Vector dh:1 + (minkowskiProduct u) v 0-((minkowskiProduct x) (u + v) * 1) = (1 + (minkowskiProduct u) v) * -((minkowskiProduct x) (u + v) / (1 + (minkowskiProduct u) v) * 1) All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)(1 + (minkowskiProduct u) v) u + (2 * (minkowskiProduct u) u * (1 + (minkowskiProduct u) v)) v - (minkowskiProduct u) (u + v) (u + v) = (1 + (minkowskiProduct u) v) v d:u:(Velocity d)v:(Velocity d)(1 + (minkowskiProduct u) v) u + (2 * 1 * (1 + (minkowskiProduct u) v)) v - (1 + (minkowskiProduct u) v) (u + v) = (1 + (minkowskiProduct u) v) v d:u:(Velocity d)v:(Velocity d)(1 + (minkowskiProduct u) v) * 1 - (1 + (minkowskiProduct u) v) * 1 = 0d:u:(Velocity d)v:(Velocity d)2 * 1 * (1 + (minkowskiProduct u) v) * 1 - (1 + (minkowskiProduct u) v) * 1 = (1 + (minkowskiProduct u) v) * 1 d:u:(Velocity d)v:(Velocity d)(1 + (minkowskiProduct u) v) * 1 - (1 + (minkowskiProduct u) v) * 1 = 0d:u:(Velocity d)v:(Velocity d)2 * 1 * (1 + (minkowskiProduct u) v) * 1 - (1 + (minkowskiProduct u) v) * 1 = (1 + (minkowskiProduct u) v) * 1 All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)(1 + (minkowskiProduct u) v) v + (2 * (minkowskiProduct v) u * (1 + (minkowskiProduct u) v)) v - (minkowskiProduct v) (u + v) (u + v) = (1 + (minkowskiProduct u) v) ((2 * (minkowskiProduct u) v) v - u) d:u:(Velocity d)v:(Velocity d)(1 + (minkowskiProduct u) v) v + (2 * (minkowskiProduct u) v * (1 + (minkowskiProduct u) v)) v - ((minkowskiProduct u) v + 1) (u + v) = (1 + (minkowskiProduct u) v) ((2 * (minkowskiProduct u) v) v - u) d:u:(Velocity d)v:(Velocity d)(1 + (minkowskiProduct u) v) * 1 + 2 * (minkowskiProduct u) v * (1 + (minkowskiProduct u) v) * 1 - ((minkowskiProduct u) v + 1) * 1 = (1 + (minkowskiProduct u) v) * (2 * (minkowskiProduct u) v * 1)d:u:(Velocity d)v:(Velocity d)-(((minkowskiProduct u) v + 1) * 1) = (1 + (minkowskiProduct u) v) * -1 d:u:(Velocity d)v:(Velocity d)(1 + (minkowskiProduct u) v) * 1 + 2 * (minkowskiProduct u) v * (1 + (minkowskiProduct u) v) * 1 - ((minkowskiProduct u) v + 1) * 1 = (1 + (minkowskiProduct u) v) * (2 * (minkowskiProduct u) v * 1)d:u:(Velocity d)v:(Velocity d)-(((minkowskiProduct u) v + 1) * 1) = (1 + (minkowskiProduct u) v) * -1 All goals completed! 🐙

This lemma states that for a given four-velocity u, the general boost transformation genBoost u u is equal to the identity linear map LinearMap.id.

@[simp] lemma generalizedBoost_self (u : Velocity d) : generalizedBoost u u = 1 := d:u:(Velocity d)generalizedBoost u u = 1 d:u:(Velocity d)(generalizedBoost u u) = 1 All goals completed! 🐙
d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dbasis μ + (2 * η μ μ * u μ) v + -(η μ μ * (u μ + v μ) / (1 + (minkowskiProduct u) v)) (u + v) = basis μ + (2 * η μ μ * u μ) v - (η μ μ * (u μ + v μ) / (1 + (minkowskiProduct u) v)) (u + v) All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dη ν ν * (-(u μ + v μ) * (u ν + v ν) / (1 + (minkowskiProduct u) v)) = -(η μ μ * ((minkowskiProduct (basis μ)) (u + v) * (minkowskiProduct (basis ν)) (u + v) / (1 + (minkowskiProduct u) v))) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dη ν ν * ((-v μ + -u μ) * (u ν + v ν) / (1 + (minkowskiProduct u) v)) = -(η μ μ * ((η μ μ * u μ + η μ μ * v μ) * (η ν ν * u ν + η ν ν * v ν) / (1 + (minkowskiProduct u) v))) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin d-(η ν ν * v μ * u ν * (1 + (minkowskiProduct u) v)⁻¹) - η ν ν * v μ * v ν * (1 + (minkowskiProduct u) v)⁻¹ - η ν ν * u μ * u ν * (1 + (minkowskiProduct u) v)⁻¹ - η ν ν * u μ * v ν * (1 + (minkowskiProduct u) v)⁻¹ = -(η ν ν * v μ * u ν * (1 + (minkowskiProduct u) v)⁻¹ * η μ μ ^ 2) - η ν ν * v μ * v ν * (1 + (minkowskiProduct u) v)⁻¹ * η μ μ ^ 2 - η ν ν * u μ * u ν * (1 + (minkowskiProduct u) v)⁻¹ * η μ μ ^ 2 - η ν ν * u μ * v ν * (1 + (minkowskiProduct u) v)⁻¹ * η μ μ ^ 2 All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dη ν ν * (-(u μ + v μ) * (u ν + v ν) / (1 + (minkowskiProduct u) v)) = -(η ν ν * (u μ + v μ) * (u ν + v ν) / (1 + (minkowskiProduct u) v)) d:u:(Velocity d)v:(Velocity d)μ:Fin 1 Fin dν:Fin 1 Fin dη ν ν * ((-v μ + -u μ) * (u ν + v ν) / (1 + (minkowskiProduct u) v)) = -(η ν ν * (u μ + v μ) * (u ν + v ν) / (1 + (minkowskiProduct u) v)) All goals completed! 🐙d:u:(Velocity d)this:Continuous fun v => (generalizedBoost u v)Continuous (generalizedBoost u) All goals completed! 🐙d:u:(Velocity d)this:Continuous fun v => (generalizedBoost v u)Continuous fun x => generalizedBoost x u All goals completed! 🐙lemma id_joined_generalizedBoost (u v : Velocity d) : Joined 1 (generalizedBoost u v) := d:u:(Velocity d)v:(Velocity d)Joined 1 (generalizedBoost u v) d:u:(Velocity d)v:(Velocity d)f:Path u vh✝: (t : unitInterval), f t Set.univJoined 1 (generalizedBoost u v) use ContinuousMap.comp generalizedBoost u, d:u:(Velocity d)v:(Velocity d)f:Path u vh✝: (t : unitInterval), f t Set.univContinuous (generalizedBoost u) All goals completed! 🐙 f d:u:(Velocity d)v:(Velocity d)f:Path u vh✝: (t : unitInterval), f t Set.univ({ toFun := generalizedBoost u, continuous_toFun := }.comp f).toFun 0 = 1 All goals completed! 🐙 d:u:(Velocity d)v:(Velocity d)f:Path u vh✝: (t : unitInterval), f t Set.univ({ toFun := generalizedBoost u, continuous_toFun := }.comp f).toFun 1 = generalizedBoost u v All goals completed! 🐙lemma generalizedBoost_in_connected_component_of_id (u v : Velocity d) : generalizedBoost u v connectedComponent 1 := pathComponent_subset_component _ (id_joined_generalizedBoost u v)lemma generalizedBoost_isProper (u v : Velocity d) : IsProper (generalizedBoost u v) := (isProper_on_connected_component (generalizedBoost_in_connected_component_of_id u v)).mp isProper_idlemma generalizedBoost_isOrthochronous (u v : Velocity d) : IsOrthochronous (generalizedBoost u v) := (isOrthochronous_on_connected_component (generalizedBoost_in_connected_component_of_id u v)).mp id_isOrthochronousd:u:(Velocity d)v:(Velocity d)generalizedBoost u v { carrier := {Λ | IsProper Λ IsOrthochronous Λ}, mul_mem' := , one_mem' := , inv_mem' := } d:u:(Velocity d)v:(Velocity d)IsProper (generalizedBoost u v)d:u:(Velocity d)v:(Velocity d)IsOrthochronous (generalizedBoost u v) d:u:(Velocity d)v:(Velocity d)IsProper (generalizedBoost u v) All goals completed! 🐙 d:u:(Velocity d)v:(Velocity d)IsOrthochronous (generalizedBoost u v) All goals completed! 🐙d:u:(Velocity d)v:(Velocity d)p:Lorentz.Vector dh1:1 + (minkowskiProduct u) v 0generalizedBoost v u generalizedBoost u v p = 1 p d:u:(Velocity d)v:(Velocity d)p:Lorentz.Vector dh1:1 + (minkowskiProduct u) v 0p + (2 * (minkowskiProduct p) u) v - (((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v)) (u + v) + (2 * ((minkowskiProduct p) v + 2 * (minkowskiProduct p) u * 1 - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * ((minkowskiProduct u) v + 1))) u - (((minkowskiProduct p) v + 2 * (minkowskiProduct p) u * 1 - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * ((minkowskiProduct u) v + 1) + ((minkowskiProduct p) u + 2 * (minkowskiProduct p) u * (minkowskiProduct u) v - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * (1 + (minkowskiProduct u) v))) / (1 + (minkowskiProduct u) v)) (v + u) = p d:u:(Velocity d)v:(Velocity d)p:Lorentz.Vector dh1:1 + (minkowskiProduct u) v 01 = 1d:u:(Velocity d)v:(Velocity d)p:Lorentz.Vector dh1:1 + (minkowskiProduct u) v 02 * (minkowskiProduct p) u * 1 - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * 1 - ((minkowskiProduct p) v + 2 * (minkowskiProduct p) u * 1 - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * ((minkowskiProduct u) v + 1) + ((minkowskiProduct p) u + 2 * (minkowskiProduct p) u * (minkowskiProduct u) v - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * (1 + (minkowskiProduct u) v))) / (1 + (minkowskiProduct u) v) * 1 = 0d:u:(Velocity d)v:(Velocity d)p:Lorentz.Vector dh1:1 + (minkowskiProduct u) v 0-(((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * 1) + 2 * ((minkowskiProduct p) v + 2 * (minkowskiProduct p) u * 1 - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * ((minkowskiProduct u) v + 1)) * 1 - ((minkowskiProduct p) v + 2 * (minkowskiProduct p) u * 1 - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * ((minkowskiProduct u) v + 1) + ((minkowskiProduct p) u + 2 * (minkowskiProduct p) u * (minkowskiProduct u) v - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * (1 + (minkowskiProduct u) v))) / (1 + (minkowskiProduct u) v) * 1 = 0 d:u:(Velocity d)v:(Velocity d)p:Lorentz.Vector dh1:1 + (minkowskiProduct u) v 01 = 1d:u:(Velocity d)v:(Velocity d)p:Lorentz.Vector dh1:1 + (minkowskiProduct u) v 02 * (minkowskiProduct p) u * 1 - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * 1 - ((minkowskiProduct p) v + 2 * (minkowskiProduct p) u * 1 - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * ((minkowskiProduct u) v + 1) + ((minkowskiProduct p) u + 2 * (minkowskiProduct p) u * (minkowskiProduct u) v - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * (1 + (minkowskiProduct u) v))) / (1 + (minkowskiProduct u) v) * 1 = 0d:u:(Velocity d)v:(Velocity d)p:Lorentz.Vector dh1:1 + (minkowskiProduct u) v 0-(((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * 1) + 2 * ((minkowskiProduct p) v + 2 * (minkowskiProduct p) u * 1 - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * ((minkowskiProduct u) v + 1)) * 1 - ((minkowskiProduct p) v + 2 * (minkowskiProduct p) u * 1 - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * ((minkowskiProduct u) v + 1) + ((minkowskiProduct p) u + 2 * (minkowskiProduct p) u * (minkowskiProduct u) v - ((minkowskiProduct p) u + (minkowskiProduct p) v) / (1 + (minkowskiProduct u) v) * (1 + (minkowskiProduct u) v))) / (1 + (minkowskiProduct u) v) * 1 = 0 d:u:(Velocity d)v:(Velocity d)p:Lorentz.Vector dh1:1 + (minkowskiProduct u) v 0(1 + (minkowskiProduct u) v) * (-((minkowskiProduct p) u + (minkowskiProduct p) v) + 2 * ((1 + (minkowskiProduct u) v) * ((minkowskiProduct p) v + (minkowskiProduct p) u * 2) - ((minkowskiProduct p) u + (minkowskiProduct p) v) * ((minkowskiProduct u) v + 1))) - ((1 + (minkowskiProduct u) v) * ((minkowskiProduct p) v + (minkowskiProduct p) u * 2) - ((minkowskiProduct p) u + (minkowskiProduct p) v) * ((minkowskiProduct u) v + 1) + (1 + (minkowskiProduct u) v) * ((minkowskiProduct p) u * (1 + (minkowskiProduct u) v * 2) - ((minkowskiProduct p) u + (minkowskiProduct p) v))) = (1 + (minkowskiProduct u) v) ^ 2 * 0 d:u:(Velocity d)v:(Velocity d)p:Lorentz.Vector dh1:1 + (minkowskiProduct u) v 0(1 + (minkowskiProduct u) v) * (2 * (minkowskiProduct p) u * (1 + (minkowskiProduct u) v) - ((minkowskiProduct p) u + (minkowskiProduct p) v)) - ((1 + (minkowskiProduct u) v) * ((minkowskiProduct p) v + 2 * (minkowskiProduct p) u) - ((minkowskiProduct p) u + (minkowskiProduct p) v) * ((minkowskiProduct u) v + 1) + (1 + (minkowskiProduct u) v) * ((minkowskiProduct p) u * (1 + 2 * (minkowskiProduct u) v) - ((minkowskiProduct p) u + (minkowskiProduct p) v))) = (1 + (minkowskiProduct u) v) ^ 2 * 0d:u:(Velocity d)v:(Velocity d)p:Lorentz.Vector dh1:1 + (minkowskiProduct u) v 0(1 + (minkowskiProduct u) v) * (-((minkowskiProduct p) u + (minkowskiProduct p) v) + 2 * ((1 + (minkowskiProduct u) v) * ((minkowskiProduct p) v + (minkowskiProduct p) u * 2) - ((minkowskiProduct p) u + (minkowskiProduct p) v) * ((minkowskiProduct u) v + 1))) - ((1 + (minkowskiProduct u) v) * ((minkowskiProduct p) v + (minkowskiProduct p) u * 2) - ((minkowskiProduct p) u + (minkowskiProduct p) v) * ((minkowskiProduct u) v + 1) + (1 + (minkowskiProduct u) v) * ((minkowskiProduct p) u * (1 + (minkowskiProduct u) v * 2) - ((minkowskiProduct p) u + (minkowskiProduct p) v))) = (1 + (minkowskiProduct u) v) ^ 2 * 0 All goals completed! 🐙

The time component of a generalised boost.

A proof of this result can be found at the below link: https://leanprover.zulipchat.com/#narrow/channel/479953-Physlib/topic/Lorentz.20group/near/523249684

d:u:(Velocity d)v:(Velocity d)h:1 + (minkowskiProduct u) v 01 + 2 * 1 * u (Sum.inl 0) * v (Sum.inl 0) - (u (Sum.inl 0) + v (Sum.inl 0)) * (u (Sum.inl 0) + v (Sum.inl 0)) / (1 + (minkowskiProduct u) v) = 1 + (((↑u).timeComponent * (↑v).spatialPart) ^ 2 - 2 * ((↑u).timeComponent * ((↑v).timeComponent * inner (↑v).spatialPart (↑u).spatialPart)) + ((↑v).timeComponent * (↑u).spatialPart) ^ 2) / (1 + (minkowskiProduct u) v) d:u:(Velocity d)v:(Velocity d)h:1 + (u (Sum.inl 0) * v (Sum.inl 0) - inner (↑u).spatialPart (↑v).spatialPart) 01 + 2 * 1 * u (Sum.inl 0) * v (Sum.inl 0) - (u (Sum.inl 0) + v (Sum.inl 0)) * (u (Sum.inl 0) + v (Sum.inl 0)) / (1 + (u (Sum.inl 0) * v (Sum.inl 0) - inner (↑u).spatialPart (↑v).spatialPart)) = 1 + ((u (Sum.inl 0) * (↑v).spatialPart) ^ 2 - 2 * (u (Sum.inl 0) * (v (Sum.inl 0) * inner (↑v).spatialPart (↑u).spatialPart)) + (v (Sum.inl 0) * (↑u).spatialPart) ^ 2) / (1 + (u (Sum.inl 0) * v (Sum.inl 0) - inner (↑u).spatialPart (↑v).spatialPart)) d:u:(Velocity d)v:(Velocity d)h:1 + (u (Sum.inl 0) * v (Sum.inl 0) - inner (↑u).spatialPart (↑v).spatialPart) 0(1 + 2 * u (Sum.inl 0) * v (Sum.inl 0)) * (1 + (u (Sum.inl 0) * v (Sum.inl 0) - inner (↑u).spatialPart (↑v).spatialPart)) - (u (Sum.inl 0) + v (Sum.inl 0)) ^ 2 = 1 + (u (Sum.inl 0) * v (Sum.inl 0) - inner (↑u).spatialPart (↑v).spatialPart) + (u (Sum.inl 0) * (u (Sum.inl 0) * (↑v).spatialPart ^ 2 - 2 * v (Sum.inl 0) * inner (↑v).spatialPart (↑u).spatialPart) + v (Sum.inl 0) ^ 2 * (↑u).spatialPart ^ 2) All goals completed! 🐙