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.SerreConstructionThe 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 := by Λ:↥lorentzAlgebraμ:Fin 1 ⊕ Fin 3⊢ ↑Λ μ μ = 0
have h := congrArg (fun M ↦ M μ μ) $ transpose_eta Λ Λ:↥lorentzAlgebraμ:Fin 1 ⊕ Fin 3h:((↑Λ)ᵀ * η) μ μ = (-η * ↑Λ) μ μ⊢ ↑Λ μ μ = 0
simp only [minkowskiMatrix, LieAlgebra.Orthogonal.indefiniteDiagonal, mul_diagonal,
transpose_apply, diagonal_neg, diagonal_mul, neg_mul] at h Λ:↥lorentzAlgebraμ:Fin 1 ⊕ Fin 3h:↑Λ μ μ * Sum.elim (fun x => 1) (fun x => -1) μ = -(Sum.elim (fun x => 1) (fun x => -1) μ * ↑Λ μ μ)⊢ ↑Λ μ μ = 0
rcases μ with μ | μ inl Λ:↥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 μ) = 0inr Λ:↥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 <;> inl Λ:↥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 μ) = 0inr Λ:↥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
simp only [Sum.elim_inl, Sum.elim_inr, mul_one, one_mul, mul_neg, neg_mul, neg_neg] at h inr Λ:↥lorentzAlgebraμ:Fin 3h:-↑Λ (Sum.inr μ) (Sum.inr μ) = ↑Λ (Sum.inr μ) (Sum.inr μ)⊢ ↑Λ (Sum.inr μ) (Sum.inr μ) = 0 <;> inl Λ:↥lorentzAlgebraμ:Fin 1h:↑Λ (Sum.inl μ) (Sum.inl μ) = -↑Λ (Sum.inl μ) (Sum.inl μ)⊢ ↑Λ (Sum.inl μ) (Sum.inl μ) = 0inr Λ:↥lorentzAlgebraμ:Fin 3h:-↑Λ (Sum.inr μ) (Sum.inr μ) = ↑Λ (Sum.inr μ) (Sum.inr μ)⊢ ↑Λ (Sum.inr μ) (Sum.inr μ) = 0
linarith All goals completed! 🐙lemma time_comps (Λ : lorentzAlgebra) (i : Fin 3) :
Λ.1 (Sum.inr i) (Sum.inl 0) = Λ.1 (Sum.inl 0) (Sum.inr i) := by Λ:↥lorentzAlgebrai:Fin 3⊢ ↑Λ (Sum.inr i) (Sum.inl 0) = ↑Λ (Sum.inl 0) (Sum.inr i)
simpa only [Fin.isValue, minkowskiMatrix, LieAlgebra.Orthogonal.indefiniteDiagonal, mul_diagonal,
transpose_apply, Sum.elim_inr, mul_neg, mul_one, diagonal_neg, diagonal_mul, Sum.elim_inl,
neg_mul, one_mul, neg_inj] using congrArg (fun M ↦ M (Sum.inl 0) (Sum.inr i)) $ transpose_eta Λ 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) := by Λ:↥lorentzAlgebrai:Fin 3j:Fin 3⊢ ↑Λ (Sum.inr i) (Sum.inr j) = -↑Λ (Sum.inr j) (Sum.inr i)
simpa only [minkowskiMatrix, LieAlgebra.Orthogonal.indefiniteDiagonal, diagonal_neg, diagonal_mul,
Sum.elim_inr, neg_neg, one_mul, mul_diagonal, transpose_apply, mul_neg, mul_one] using
(congrArg (fun M ↦ M (Sum.inr i) (Sum.inr j)) $ transpose_eta Λ).symm All goals completed! 🐙