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.Tensors.RealTensor.Vector.MinkowskiProduct

Vectors from Lorentz group elements

Every element of the Lorentz group defines a Lorentz vector, but it's first column.

@[expose] public section

The Lorentz vector obtained by acting the Lorentz group element Λ on basis (Sum.inl 0).

def toVector {d : ℕ} (Λ : LorentzGroup d) : Lorentz.Vector d := Λ • basis (Sum.inl 0)
All goals completed! 🐙lemma toVector_neg {d : ℕ} (Λ : LorentzGroup d) : toVector (-Λ) = -toVector Λ := d:ℕΛ:↑(𝓛 d)⊢ toVector (-Λ) = -toVector Λ All goals completed! 🐙@[simp] lemma toVector_apply {d : ℕ} (Λ : LorentzGroup d) (i : Fin 1 ⊕ Fin d) : (toVector Λ) i = Λ.1 i (Sum.inl 0) := d:ℕΛ:↑(𝓛 d)i:Fin 1 ⊕ Fin d⊢ toVector Λ i = ↑Λ i (Sum.inl 0) All goals completed! 🐙lemma toVector_eq_fun {d : ℕ} (Λ : LorentzGroup d) : toVector Λ = (fun i => Λ.1 i (Sum.inl 0)) := d:ℕΛ:↑(𝓛 d)⊢ toVector Λ = fun i => ↑Λ i (Sum.inl 0) d:ℕΛ:↑(𝓛 d)i:Fin 1 ⊕ Fin d⊢ toVector Λ i = ↑Λ i (Sum.inl 0) All goals completed! 🐙@[fun_prop] lemma toVector_continuous {d : ℕ} : Continuous (toVector (d := d)) := d:ℕ⊢ Continuous toVector d:ℕ⊢ Continuous fun Λ => toVector Λ d:ℕ| Continuous fun Λ => toVector Λ d:ℕΛ:↑(𝓛 d)| toVector Λ d:ℕΛ:↑(𝓛 d)| fun i => ↑Λ i (Sum.inl 0) d:ℕ⊢ ∀ (i : Fin 1 ⊕ Fin d), Continuous fun x => ↑x i (Sum.inl 0) d:ℕi:Fin 1 ⊕ Fin d⊢ Continuous fun x => ↑x i (Sum.inl 0) d:ℕi:Fin 1 ⊕ Fin d⊢ Continuous Subtype.val All goals completed! 🐙lemma toVector_timeComponent {d : ℕ} (Λ : LorentzGroup d) : (toVector Λ).timeComponent = Λ.1 (Sum.inl 0) (Sum.inl 0) := d:ℕΛ:↑(𝓛 d)⊢ (toVector Λ).timeComponent = ↑Λ (Sum.inl 0) (Sum.inl 0) All goals completed! 🐙@[simp] lemma toVector_minkowskiProduct_self {d : ℕ} (Λ : LorentzGroup d) : ⟪toVector Λ, toVector Λ⟫ₘ = 1 := d:ℕΛ:↑(𝓛 d)⊢ (minkowskiProduct (toVector Λ)) (toVector Λ) = 1 All goals completed! 🐙d:ℕΛ:↑(𝓛 d)⊢ (minkowskiProduct (toVector Λ)) (toVector Λ) ≤ (toVector Λ).timeComponent ^ 2 All goals completed! 🐙d:ℕΛ:↑(𝓛 d)h:↑Λ (Sum.inl 0) (Sum.inl 0) = 1i:Fin 1 ⊕ Fin dh1:(fun i => ↑Λ (Sum.inr i) (Sum.inl 0)) = 0j:Fin d⊢ 0 j = 0 All goals completed! 🐙d:ℕΛ:↑(𝓛 d)v:Lorentz.Vector di:Fin d⊢ ↑Λ (Sum.inl 0) (Sum.inr i) * v (Sum.inr i) = -(v (Sum.inr i) * (minkowskiMatrix (Sum.inr i) (Sum.inr i) * ↑Λ (Sum.inl 0) (Sum.inr i) * minkowskiMatrix (Sum.inl 0) (Sum.inl 0))) d:ℕΛ:↑(𝓛 d)v:Lorentz.Vector di:Fin d⊢ ↑Λ (Sum.inl 0) (Sum.inr i) * v (Sum.inr i) = v (Sum.inr i) * ↑Λ (Sum.inl 0) (Sum.inr i) All goals completed! 🐙