Imports
/- Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Nikolai Kashcheev, Joseph Tooby-Smith -/ module public import Physlib.Relativity.Tensors.ComplexTensor.Vector.Pre.Modules

Complex Lorentz vectors

We define complex Lorentz vectors in 4d space-time as representations of SL(2, C).

@[expose] public section

The standard basis of complex contravariant Lorentz vectors.

def complexContrBasis : Basis (Fin 1 Fin 3) ContrℂModule := Basis.ofEquivFun ContrℂModule.toFin13ℂEquiv
@[simp] lemma complexContrBasis_toFin13ℂ (i :Fin 1 Fin 3) : (complexContrBasis i).toFin13ℂ = Pi.single i 1 := i:Fin 1 Fin 3(complexContrBasis i).toFin13ℂ = Pi.single i 1 i:Fin 1 Fin 3(ContrℂModule.toFin13ℂEquiv.symm (Pi.single i 1)).toFin13ℂ = Pi.single i 1 All goals completed! 🐙M:SL(2, )i:Fin 1 Fin 3j:Fin 1 Fin 3(complexContrBasis.repr ((ContrℂModule.SL2CRep M) (complexContrBasis j))) i = LorentzGroup.toComplex (SL2C.toLorentzGroup M) i j M:SL(2, )i:Fin 1 Fin 3j:Fin 1 Fin 3ContrℂModule.toFin13ℂEquiv ((ContrℂModule.SL2CRep M) (ContrℂModule.toFin13ℂEquiv.symm (Pi.single j 1))) i = LorentzGroup.toComplex (SL2C.toLorentzGroup M) i j M:SL(2, )i:Fin 1 Fin 3j:Fin 1 Fin 3(LorentzGroup.toComplex (SL2C.toLorentzGroup M) *ᵥ Pi.single j 1) i = LorentzGroup.toComplex (SL2C.toLorentzGroup M) i j All goals completed! 🐙lemma complexContrBasis_ρ_val (M : SL(2,)) (v : ContrℂModule) : ((ContrℂModule.SL2CRep M) v).val = LorentzGroup.toComplex (SL2C.toLorentzGroup M) *ᵥ v.val := M:SL(2, )v:ContrℂModule((ContrℂModule.SL2CRep M) v).val = LorentzGroup.toComplex (SL2C.toLorentzGroup M) *ᵥ v.val All goals completed! 🐙

The standard basis of complex contravariant Lorentz vectors indexed by Fin 4.

def complexContrBasisFin4 : Basis (Fin 4) ContrℂModule := Basis.reindex complexContrBasis finSumFinEquiv
lemma complexContrBasisFin4_eq_reindex : complexContrBasisFin4 = complexContrBasis.reindex finSumFinEquiv := rfllemma complexContrBasis_reindex_apply_eq_fin4 (j : Fin 4) : (complexContrBasis.reindex finSumFinEquiv) j = complexContrBasisFin4 j := rfl@[simp] lemma complexContrBasisFin4_apply_zero : complexContrBasisFin4 0 = complexContrBasis (Sum.inl 0) := complexContrBasisFin4 0 = complexContrBasis (Sum.inl 0) complexContrBasis (finSumFinEquiv.symm 0) = complexContrBasis (Sum.inl 0) All goals completed! 🐙@[simp] lemma complexContrBasisFin4_apply_one : complexContrBasisFin4 1 = complexContrBasis (Sum.inr 0) := complexContrBasisFin4 1 = complexContrBasis (Sum.inr 0) complexContrBasis (finSumFinEquiv.symm 1) = complexContrBasis (Sum.inr 0) All goals completed! 🐙@[simp] lemma complexContrBasisFin4_apply_two : complexContrBasisFin4 2 = complexContrBasis (Sum.inr 1) := complexContrBasisFin4 2 = complexContrBasis (Sum.inr 1) complexContrBasis (finSumFinEquiv.symm 2) = complexContrBasis (Sum.inr 1) All goals completed! 🐙@[simp] lemma complexContrBasisFin4_apply_three : complexContrBasisFin4 3 = complexContrBasis (Sum.inr 2) := complexContrBasisFin4 3 = complexContrBasis (Sum.inr 2) complexContrBasis (finSumFinEquiv.symm 3) = complexContrBasis (Sum.inr 2) All goals completed! 🐙@[simp] lemma complexContrBasisFin4_apply_succ (i : Fin 3) : complexContrBasisFin4 i.succ = complexContrBasis (Sum.inr i) := i:Fin 3complexContrBasisFin4 i.succ = complexContrBasis (Sum.inr i) i:Fin 3complexContrBasis (finSumFinEquiv.symm i.succ) = complexContrBasis (Sum.inr i) i:Fin 3finSumFinEquiv.symm i.succ = Sum.inr i finSumFinEquiv.symm ((fun i => i) 0, ).succ = Sum.inr ((fun i => i) 0, )finSumFinEquiv.symm ((fun i => i) 1, ).succ = Sum.inr ((fun i => i) 1, )finSumFinEquiv.symm ((fun i => i) 2, ).succ = Sum.inr ((fun i => i) 2, ) finSumFinEquiv.symm ((fun i => i) 0, ).succ = Sum.inr ((fun i => i) 0, )finSumFinEquiv.symm ((fun i => i) 1, ).succ = Sum.inr ((fun i => i) 1, )finSumFinEquiv.symm ((fun i => i) 2, ).succ = Sum.inr ((fun i => i) 2, ) All goals completed! 🐙

The standard basis of complex covariant Lorentz vectors.

def complexCoBasis : Basis (Fin 1 Fin 3) CoℂModule := Basis.ofEquivFun CoℂModule.toFin13ℂEquiv
@[simp] lemma complexCoBasis_toFin13ℂ (i :Fin 1 Fin 3) : (complexCoBasis i).toFin13ℂ = Pi.single i 1 := i:Fin 1 Fin 3(complexCoBasis i).toFin13ℂ = Pi.single i 1 i:Fin 1 Fin 3(CoℂModule.toFin13ℂEquiv.symm (Pi.single i 1)).toFin13ℂ = Pi.single i 1 All goals completed! 🐙M:SL(2, )i:Fin 1 Fin 3j:Fin 1 Fin 3(complexCoBasis.repr ((CoℂModule.SL2CRep M) (complexCoBasis j))) i = (LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ i j M:SL(2, )i:Fin 1 Fin 3j:Fin 1 Fin 3CoℂModule.toFin13ℂEquiv ((CoℂModule.SL2CRep M) (CoℂModule.toFin13ℂEquiv.symm (Pi.single j 1))) i = (LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ j i M:SL(2, )i:Fin 1 Fin 3j:Fin 1 Fin 3((LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ *ᵥ Pi.single j 1) i = (LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ j i All goals completed! 🐙lemma CoℂModule.SL2CRep_val (M : SL(2,)) (v : CoℂModule) : ((CoℂModule.SL2CRep M) v).val = (LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ *ᵥ v.val := M:SL(2, )v:CoℂModule((SL2CRep M) v).val = (LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ *ᵥ v.val All goals completed! 🐙

The standard basis of complex covariant Lorentz vectors indexed by Fin 4.

def complexCoBasisFin4 : Basis (Fin 4) CoℂModule := Basis.reindex complexCoBasis finSumFinEquiv
lemma complexCoBasisFin4_eq_reindex : complexCoBasisFin4 = complexCoBasis.reindex finSumFinEquiv := rfllemma complexCoBasis_reindex_apply_eq_fin4 (j : Fin 4) : (complexCoBasis.reindex finSumFinEquiv) j = complexCoBasisFin4 j := rfl@[simp] lemma complexCoBasisFin4_apply_zero : complexCoBasisFin4 0 = complexCoBasis (Sum.inl 0) := complexCoBasisFin4 0 = complexCoBasis (Sum.inl 0) complexCoBasis (finSumFinEquiv.symm 0) = complexCoBasis (Sum.inl 0) All goals completed! 🐙@[simp] lemma complexCoBasisFin4_apply_one : complexCoBasisFin4 1 = complexCoBasis (Sum.inr 0) := complexCoBasisFin4 1 = complexCoBasis (Sum.inr 0) complexCoBasis (finSumFinEquiv.symm 1) = complexCoBasis (Sum.inr 0) All goals completed! 🐙@[simp] lemma complexCoBasisFin4_apply_two : complexCoBasisFin4 2 = complexCoBasis (Sum.inr 1) := complexCoBasisFin4 2 = complexCoBasis (Sum.inr 1) complexCoBasis (finSumFinEquiv.symm 2) = complexCoBasis (Sum.inr 1) All goals completed! 🐙@[simp] lemma complexCoBasisFin4_apply_three : complexCoBasisFin4 3 = complexCoBasis (Sum.inr 2) := complexCoBasisFin4 3 = complexCoBasis (Sum.inr 2) complexCoBasis (finSumFinEquiv.symm 3) = complexCoBasis (Sum.inr 2) All goals completed! 🐙

Relation to real

The semilinear map including real Lorentz vectors into complex contravariant lorentz vectors.

c:x:ContrMod 3{ val := ofReal (c x).toFin1dℝ }.val = ofRealHom c { val := ofReal x.toFin1dℝ }.val c:x:ContrMod 3i:Fin 1 Fin 3{ val := ofReal (c x).toFin1dℝ }.val i = (ofRealHom c { val := ofReal x.toFin1dℝ }.val) i c:x:ContrMod 3i:Fin 1 Fin 3(c ContrMod.toFin1dℝEquiv x i) = c (x.toFin1dℝ i) All goals completed! 🐙
lemma inclCongrRealLorentz_val (v : ContrMod 3) : (inclCongrRealLorentz v).val = ofRealHom v.toFin1dℝ := rfli:Fin 1 Fin 3j:Fin 1 Fin 3h:¬i = jPi.single i 1 j = 0 All goals completed! 🐙M:SL(2, )v:ContrMod 3ofRealHom ((SL2C.toLorentzGroup M) *ᵥ v.toFin1dℝ) = ofRealHom ((ContrMod.rep (SL2C.toLorentzGroup M)) v).toFin1dℝ All goals completed! 🐙All goals completed! 🐙

The semilinear map including real Lorentz co-vectors into complex covariant Lorentz vectors.

c:x:CoMod 3i:Fin 1 Fin 3{ val := ofReal (c x).toFin1dℝ }.val i = (ofRealHom c { val := ofReal x.toFin1dℝ }.val) i c:x:CoMod 3i:Fin 1 Fin 3(c CoMod.toFin1dℝEquiv x i) = c (x.toFin1dℝ i) All goals completed! 🐙
lemma inclCoRealLorentz_val (v : CoMod 3) : (inclCoRealLorentz v).val = ofRealHom v.toFin1dℝ := rfli:Fin 1 Fin 3j:Fin 1 Fin 3h:¬i = jPi.single i 1 j = 0 All goals completed! 🐙All goals completed! 🐙