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.MinkowskiMatrix public import Mathlib.Algebra.Lie.SerreConstruction

The Lorentz Algebra

We define

    Define lorentzAlgebra via LieAlgebra.Orthogonal.so' as a subalgebra of Matrix (Fin 1 ⊕ Fin 3) (Fin 1 ⊕ Fin 3) ℝ.

    In mem_iff prove that a matrix is in the Lorentz algebra if and only if it satisfies the condition Aᵀ * η = - η * A.

@[expose] public sectionattribute [local instance 100] LieRing.ofAssociativeRing

The Lorentz algebra as a subalgebra of Matrix (Fin 1 ⊕ Fin 3) (Fin 1 ⊕ Fin 3) ℝ.

def lorentzAlgebra : LieSubalgebra (Matrix (Fin 1 Fin 3) (Fin 1 Fin 3) ) := (LieAlgebra.Orthogonal.so' (Fin 1) (Fin 3) )
lemma transpose_eta (A : lorentzAlgebra) : A.1 * η = - η * A.1 := A:lorentzAlgebra(↑A) * η = -η * A A:lorentzAlgebrah:A skewAdjointMatricesSubmodule η(↑A) * η = -η * A All goals completed! 🐙lemma mem_of_transpose_eta_eq_eta_mul_self {A : Matrix (Fin 1 Fin 3) (Fin 1 Fin 3) } (h : A * η = - η * A) : A lorentzAlgebra := A:Matrix (Fin 1 Fin 3) (Fin 1 Fin 3) h:A * η = -η * AA lorentzAlgebra A:Matrix (Fin 1 Fin 3) (Fin 1 Fin 3) h:A * η = -(η * A)A * LieAlgebra.Orthogonal.indefiniteDiagonal (Fin 1) (Fin 3) = -(LieAlgebra.Orthogonal.indefiniteDiagonal (Fin 1) (Fin 3) * A) All goals completed! 🐙lemma mem_iff {A : Matrix (Fin 1 Fin 3) (Fin 1 Fin 3) } : A lorentzAlgebra A * η = - η * A := Iff.intro (fun h => transpose_eta A, h) (fun h => mem_of_transpose_eta_eq_eta_mul_self h)All goals completed! 🐙lemma diag_comp (Λ : lorentzAlgebra) (μ : Fin 1 Fin 3) : Λ.1 μ μ = 0 := Λ:lorentzAlgebraμ:Fin 1 Fin 3Λ μ μ = 0 Λ:lorentzAlgebraμ:Fin 1 Fin 3h:((↑Λ) * η) μ μ = (-η * Λ) μ μΛ μ μ = 0 Λ:lorentzAlgebraμ:Fin 1 Fin 3h:Λ μ μ * Sum.elim (fun x => 1) (fun x => -1) μ = -(Sum.elim (fun x => 1) (fun x => -1) μ * Λ μ μ)Λ μ μ = 0 Λ:lorentzAlgebraμ:Fin 1h:Λ (Sum.inl μ) (Sum.inl μ) * Sum.elim (fun x => 1) (fun x => -1) (Sum.inl μ) = -(Sum.elim (fun x => 1) (fun x => -1) (Sum.inl μ) * Λ (Sum.inl μ) (Sum.inl μ))Λ (Sum.inl μ) (Sum.inl μ) = 0Λ:lorentzAlgebraμ:Fin 3h:Λ (Sum.inr μ) (Sum.inr μ) * Sum.elim (fun x => 1) (fun x => -1) (Sum.inr μ) = -(Sum.elim (fun x => 1) (fun x => -1) (Sum.inr μ) * Λ (Sum.inr μ) (Sum.inr μ))Λ (Sum.inr μ) (Sum.inr μ) = 0 Λ:lorentzAlgebraμ:Fin 1h:Λ (Sum.inl μ) (Sum.inl μ) * Sum.elim (fun x => 1) (fun x => -1) (Sum.inl μ) = -(Sum.elim (fun x => 1) (fun x => -1) (Sum.inl μ) * Λ (Sum.inl μ) (Sum.inl μ))Λ (Sum.inl μ) (Sum.inl μ) = 0Λ:lorentzAlgebraμ:Fin 3h:Λ (Sum.inr μ) (Sum.inr μ) * Sum.elim (fun x => 1) (fun x => -1) (Sum.inr μ) = -(Sum.elim (fun x => 1) (fun x => -1) (Sum.inr μ) * Λ (Sum.inr μ) (Sum.inr μ))Λ (Sum.inr μ) (Sum.inr μ) = 0 Λ:lorentzAlgebraμ:Fin 3h:-Λ (Sum.inr μ) (Sum.inr μ) = Λ (Sum.inr μ) (Sum.inr μ)Λ (Sum.inr μ) (Sum.inr μ) = 0 Λ:lorentzAlgebraμ:Fin 1h:Λ (Sum.inl μ) (Sum.inl μ) = -Λ (Sum.inl μ) (Sum.inl μ)Λ (Sum.inl μ) (Sum.inl μ) = 0Λ:lorentzAlgebraμ:Fin 3h:-Λ (Sum.inr μ) (Sum.inr μ) = Λ (Sum.inr μ) (Sum.inr μ)Λ (Sum.inr μ) (Sum.inr μ) = 0 All goals completed! 🐙lemma time_comps (Λ : lorentzAlgebra) (i : Fin 3) : Λ.1 (Sum.inr i) (Sum.inl 0) = Λ.1 (Sum.inl 0) (Sum.inr i) := Λ:lorentzAlgebrai:Fin 3Λ (Sum.inr i) (Sum.inl 0) = Λ (Sum.inl 0) (Sum.inr i) All goals completed! 🐙lemma space_comps (Λ : lorentzAlgebra) (i j : Fin 3) : Λ.1 (Sum.inr i) (Sum.inr j) = - Λ.1 (Sum.inr j) (Sum.inr i) := Λ:lorentzAlgebrai:Fin 3j:Fin 3Λ (Sum.inr i) (Sum.inr j) = -Λ (Sum.inr j) (Sum.inr i) All goals completed! 🐙