Exponential map from the Lorentz algebra to the restricted Lorentz group
In 1+3 Minkowski space with metric η, the Lie algebra lorentzAlgebra exponentiates
onto the proper orthochronous Lorentz group (LorentzGroup.restricted 3). We prove:
The exponential of an element of the Lorentz algebra is proper (has determinant 1).
theoremexp_isProper(A:lorentzAlgebra):LorentzGroup.IsProper⟨NormedSpace.expA.1,exp_mem_lorentzGroupA⟩:=byA:↥lorentzAlgebra⊢ LorentzGroup.IsProper⟨NormedSpace.exp↑A,⋯⟩simponly[LorentzGroup.IsProper]A:↥lorentzAlgebra⊢ (NormedSpace.exp↑A).det=1lete:(Fin1⊕Fin3)≃Fin4:=finSumFinEquivA:↥lorentzAlgebrae:Fin1⊕Fin3≃Fin4:=finSumFinEquiv⊢ (NormedSpace.exp↑A).det=1-- we reindex to Fin 4 to use the faster LinearOrderrw[←det_reindex_selfe,A:↥lorentzAlgebrae:Fin1⊕Fin3≃Fin4:=finSumFinEquiv⊢ ((reindexee)(NormedSpace.exp↑A)).det=1A:↥lorentzAlgebrae:Fin1⊕Fin3≃Fin4:=finSumFinEquiv⊢ (NormedSpace.exp((↑A).submatrix⇑e.symm⇑e.symm)).det=1←exp_reindexeA:↥lorentzAlgebrae:Fin1⊕Fin3≃Fin4:=finSumFinEquiv⊢ (NormedSpace.exp((↑A).submatrix⇑e.symm⇑e.symm)).det=1A:↥lorentzAlgebrae:Fin1⊕Fin3≃Fin4:=finSumFinEquiv⊢ (NormedSpace.exp((↑A).submatrix⇑e.symm⇑e.symm)).det=1]A:↥lorentzAlgebrae:Fin1⊕Fin3≃Fin4:=finSumFinEquiv⊢ (NormedSpace.exp((↑A).submatrix⇑e.symm⇑e.symm)).det=1convert!det_exp_real(reindexeeA.1)e'_3A:↥lorentzAlgebrae:Fin1⊕Fin3≃Fin4:=finSumFinEquiv⊢ 1=Real.exp((reindexee)↑A).traceerw[trace_reindexe,e'_3A:↥lorentzAlgebrae:Fin1⊕Fin3≃Fin4:=finSumFinEquiv⊢ 1=Real.expA.1.tracetrace_of_mem_is_zeroA,e'_3A:↥lorentzAlgebrae:Fin1⊕Fin3≃Fin4:=finSumFinEquiv⊢ 1=Real.exp0Real.exp_zeroe'_3A:↥lorentzAlgebrae:Fin1⊕Fin3≃Fin4:=finSumFinEquiv⊢ 1=1]All goals completed! 🐙
The exponential of an element of the Lorentz algebra is orthochronous.
theoremexp_isOrthochronous(A:lorentzAlgebra):LorentzGroup.IsOrthochronous⟨NormedSpace.expA.1,exp_mem_lorentzGroupA⟩:=byA:↥lorentzAlgebra⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩-- The Lie algebra is a vector space, so there is a path from 0 to A.letγ:Path(0:lorentzAlgebra)A:={toFun:=funt=>t.val•A,continuous_toFun:=byA:↥lorentzAlgebra⊢ Continuousfunt=>↑t•AA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩exactContinuous.smulcontinuous_subtype_valcontinuous_constAll goals completed! 🐙A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩,source':=byA:↥lorentzAlgebra⊢ ↑0•A=0A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩simp[zero_smul]All goals completed! 🐙A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩,target':=byA:↥lorentzAlgebra⊢ ↑1•A=AA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩simp[one_smul]All goals completed! 🐙A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩}A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩letexp_γ:Path(1:LorentzGroup3)⟨NormedSpace.expA.1,exp_mem_lorentzGroupA⟩:={toFun:=funt=>⟨NormedSpace.exp(γt).val,exp_mem_lorentzGroup(γt)⟩,continuous_toFun:=byA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ Continuousfunt=>⟨NormedSpace.exp↑(γt),⋯⟩A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩applyContinuous.subtype_mkA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ Continuousfunx=>NormedSpace.exp↑(γx)A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩applyContinuous.comphgA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ ContinuousNormedSpace.exphfA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ Continuousfunx=>↑(γx)A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩·hgA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ ContinuousNormedSpace.expA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩applyNormedSpace.exp_continuousAll goals completed! 🐙A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩·hfA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ Continuousfunx=>↑(γx)A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩exactContinuous.compcontinuous_subtype_val(γ.continuous_toFun)All goals completed! 🐙A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩,source':=byA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ ⟨NormedSpace.exp↑(γ0),⋯⟩=1A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩extijA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}i:Fin1⊕Fin3j:Fin1⊕Fin3⊢ ↑⟨NormedSpace.exp↑(γ0),⋯⟩ij=↑1ijA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩simponly[γ]A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}i:Fin1⊕Fin3j:Fin1⊕Fin3⊢ NormedSpace.exp(↑({toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}0))ij=↑1ijA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩simp[NormedSpace.exp_zero]All goals completed! 🐙A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩,target':=byA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ ⟨NormedSpace.exp↑(γ1),⋯⟩=⟨NormedSpace.exp↑A,⋯⟩A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩extijA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}i:Fin1⊕Fin3j:Fin1⊕Fin3⊢ ↑⟨NormedSpace.exp↑(γ1),⋯⟩ij=↑⟨NormedSpace.exp↑A,⋯⟩ijA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩simponly[γ]A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}i:Fin1⊕Fin3j:Fin1⊕Fin3⊢ NormedSpace.exp(↑({toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}1))ij=NormedSpace.exp(↑A)ijA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩simpAll goals completed! 🐙A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩}A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩haveh_joined:Joined(1:LorentzGroup3)⟨NormedSpace.expA.1,exp_mem_lorentzGroupA⟩:=⟨exp_γ⟩A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}h_joined:Joined1⟨NormedSpace.exp↑A,⋯⟩⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩haveh_connected:⟨NormedSpace.expA.1,exp_mem_lorentzGroupA⟩∈connectedComponent(1:LorentzGroup3):=pathComponent_subset_component_h_joinedA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}h_joined:Joined1⟨NormedSpace.exp↑A,⋯⟩h_connected:⟨NormedSpace.exp↑A,⋯⟩∈connectedComponent1⊢ LorentzGroup.IsOrthochronous⟨NormedSpace.exp↑A,⋯⟩rw[←LorentzGroup.isOrthochronous_on_connected_componenth_connectedA:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}h_joined:Joined1⟨NormedSpace.exp↑A,⋯⟩h_connected:⟨NormedSpace.exp↑A,⋯⟩∈connectedComponent1⊢ LorentzGroup.IsOrthochronous1A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}h_joined:Joined1⟨NormedSpace.exp↑A,⋯⟩h_connected:⟨NormedSpace.exp↑A,⋯⟩∈connectedComponent1⊢ LorentzGroup.IsOrthochronous1]A:↥lorentzAlgebraγ:Path0A:={toFun:=funt=>↑t•A,continuous_toFun:=⋯,source':=⋯,target':=⋯}exp_γ:Path1⟨NormedSpace.exp↑A,⋯⟩:={toFun:=funt=>⟨NormedSpace.exp↑(γt),⋯⟩,continuous_toFun:=⋯,source':=⋯,target':=⋯}h_joined:Joined1⟨NormedSpace.exp↑A,⋯⟩h_connected:⟨NormedSpace.exp↑A,⋯⟩∈connectedComponent1⊢ LorentzGroup.IsOrthochronous1exactLorentzGroup.id_isOrthochronousAll goals completed! 🐙
The exponential of an element of the Lorentz algebra is a member of the
restricted Lorentz group.