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ᵀ * η = -η * A⊢ A ∈ 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! 🐙