2024-10-15 13:19:46 +00:00
|
|
|
|
/-
|
|
|
|
|
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
|
|
|
|
|
-/
|
|
|
|
|
import HepLean.SpaceTime.LorentzVector.Complex.Basic
|
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
# Contraction of Lorentz vectors
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
|
|
|
|
noncomputable section
|
|
|
|
|
|
|
|
|
|
open Matrix
|
|
|
|
|
open MatrixGroups
|
|
|
|
|
open Complex
|
|
|
|
|
open TensorProduct
|
|
|
|
|
open SpaceTime
|
|
|
|
|
open CategoryTheory.MonoidalCategory
|
|
|
|
|
namespace Lorentz
|
|
|
|
|
|
|
|
|
|
/-- The bi-linear map corresponding to contraction of a contravariant Lorentz vector with a
|
|
|
|
|
covariant Lorentz vector. -/
|
|
|
|
|
def contrCoContrBi : complexContr →ₗ[ℂ] complexCo →ₗ[ℂ] ℂ where
|
|
|
|
|
toFun ψ := {
|
|
|
|
|
toFun := fun φ => ψ.toFin13ℂ ⬝ᵥ φ.toFin13ℂ,
|
|
|
|
|
map_add' := by
|
|
|
|
|
intro φ φ'
|
|
|
|
|
simp only [map_add]
|
|
|
|
|
rw [dotProduct_add]
|
|
|
|
|
map_smul' := by
|
|
|
|
|
intro r φ
|
|
|
|
|
simp only [LinearEquiv.map_smul]
|
|
|
|
|
rw [dotProduct_smul]
|
|
|
|
|
rfl}
|
|
|
|
|
map_add' ψ ψ':= by
|
|
|
|
|
refine LinearMap.ext (fun φ => ?_)
|
|
|
|
|
simp only [map_add, LinearMap.coe_mk, AddHom.coe_mk, LinearMap.add_apply]
|
|
|
|
|
rw [add_dotProduct]
|
|
|
|
|
map_smul' r ψ := by
|
|
|
|
|
refine LinearMap.ext (fun φ => ?_)
|
|
|
|
|
simp only [LinearEquiv.map_smul, LinearMap.coe_mk, AddHom.coe_mk]
|
|
|
|
|
rw [smul_dotProduct]
|
|
|
|
|
rfl
|
|
|
|
|
|
|
|
|
|
/-- The bi-linear map corresponding to contraction of a covariant Lorentz vector with a
|
|
|
|
|
contravariant Lorentz vector. -/
|
|
|
|
|
def contrContrCoBi : complexCo →ₗ[ℂ] complexContr →ₗ[ℂ] ℂ where
|
|
|
|
|
toFun φ := {
|
|
|
|
|
toFun := fun ψ => φ.toFin13ℂ ⬝ᵥ ψ.toFin13ℂ,
|
|
|
|
|
map_add' := by
|
|
|
|
|
intro ψ ψ'
|
|
|
|
|
simp only [map_add]
|
|
|
|
|
rw [dotProduct_add]
|
|
|
|
|
map_smul' := by
|
|
|
|
|
intro r ψ
|
|
|
|
|
simp only [LinearEquiv.map_smul]
|
|
|
|
|
rw [dotProduct_smul]
|
|
|
|
|
rfl}
|
|
|
|
|
map_add' φ φ' := by
|
|
|
|
|
refine LinearMap.ext (fun ψ => ?_)
|
|
|
|
|
simp only [map_add, LinearMap.coe_mk, AddHom.coe_mk, LinearMap.add_apply]
|
|
|
|
|
rw [add_dotProduct]
|
|
|
|
|
map_smul' r φ := by
|
|
|
|
|
refine LinearMap.ext (fun ψ => ?_)
|
|
|
|
|
simp only [LinearEquiv.map_smul, LinearMap.coe_mk, AddHom.coe_mk]
|
|
|
|
|
rw [smul_dotProduct]
|
|
|
|
|
rfl
|
|
|
|
|
|
|
|
|
|
/-- The linear map from complexContr ⊗ complexCo to ℂ given by
|
|
|
|
|
summing over components of contravariant Lorentz vector and
|
|
|
|
|
covariant Lorentz vector in the
|
|
|
|
|
standard basis (i.e. the dot product).
|
|
|
|
|
In terms of index notation this is the contraction is ψⁱ φᵢ. -/
|
|
|
|
|
def contrCoContraction : complexContr ⊗ complexCo ⟶ 𝟙_ (Rep ℂ SL(2,ℂ)) where
|
|
|
|
|
hom := TensorProduct.lift contrCoContrBi
|
|
|
|
|
comm M := TensorProduct.ext' fun ψ φ => by
|
|
|
|
|
change ((LorentzGroup.toComplex (SL2C.toLorentzGroup M)) *ᵥ ψ.toFin13ℂ) ⬝ᵥ
|
|
|
|
|
((LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ᵀ *ᵥ φ.toFin13ℂ) = ψ.toFin13ℂ ⬝ᵥ φ.toFin13ℂ
|
|
|
|
|
rw [dotProduct_mulVec, vecMul_transpose, mulVec_mulVec]
|
|
|
|
|
rw [inv_mul_of_invertible (LorentzGroup.toComplex (SL2C.toLorentzGroup M))]
|
|
|
|
|
simp
|
|
|
|
|
|
2024-10-21 12:20:43 +00:00
|
|
|
|
lemma contrCoContraction_hom_tmul (ψ : complexContr) (φ : complexCo) :
|
|
|
|
|
contrCoContraction.hom (ψ ⊗ₜ φ) = ψ.toFin13ℂ ⬝ᵥ φ.toFin13ℂ := by
|
|
|
|
|
rfl
|
|
|
|
|
|
2024-10-23 08:01:23 +00:00
|
|
|
|
lemma contrCoContraction_basis (i j : Fin 4) :
|
|
|
|
|
contrCoContraction.hom (complexContrBasisFin4 i ⊗ₜ complexCoBasisFin4 j) =
|
|
|
|
|
if i.1 = j.1 then (1 : ℂ) else 0 := by
|
|
|
|
|
rw [contrCoContraction_hom_tmul]
|
|
|
|
|
simp only [Action.instMonoidalCategory_tensorUnit_V, complexContrBasisFin4, Basis.coe_reindex,
|
|
|
|
|
Function.comp_apply, complexContrBasis_toFin13ℂ, complexCoBasisFin4, complexCoBasis_toFin13ℂ,
|
|
|
|
|
dotProduct_single, mul_one]
|
|
|
|
|
rw [Pi.single_apply]
|
|
|
|
|
refine ite_congr ?h₁ (congrFun rfl) (congrFun rfl)
|
|
|
|
|
simp only [EmbeddingLike.apply_eq_iff_eq, Fin.ext_iff, eq_iff_iff, eq_comm]
|
|
|
|
|
|
2024-10-24 15:52:56 +00:00
|
|
|
|
lemma contrCoContraction_basis' (i j : Fin 1 ⊕ Fin 3) :
|
|
|
|
|
contrCoContraction.hom (complexContrBasis i ⊗ₜ complexCoBasis j) =
|
|
|
|
|
if i = j then (1 : ℂ) else 0 := by
|
|
|
|
|
rw [contrCoContraction_hom_tmul]
|
|
|
|
|
simp only [Action.instMonoidalCategory_tensorUnit_V, complexContrBasisFin4, Basis.coe_reindex,
|
|
|
|
|
Function.comp_apply, complexContrBasis_toFin13ℂ, complexCoBasisFin4, complexCoBasis_toFin13ℂ,
|
|
|
|
|
dotProduct_single, mul_one]
|
|
|
|
|
rw [Pi.single_apply]
|
|
|
|
|
refine ite_congr ?h₁ (congrFun rfl) (congrFun rfl)
|
|
|
|
|
exact Eq.propIntro (fun a => id (Eq.symm a)) fun a => id (Eq.symm a)
|
|
|
|
|
|
2024-10-15 13:19:46 +00:00
|
|
|
|
/-- The linear map from complexCo ⊗ complexContr to ℂ given by
|
|
|
|
|
summing over components of covariant Lorentz vector and
|
|
|
|
|
contravariant Lorentz vector in the
|
|
|
|
|
standard basis (i.e. the dot product).
|
|
|
|
|
In terms of index notation this is the contraction is φᵢ ψⁱ. -/
|
|
|
|
|
def coContrContraction : complexCo ⊗ complexContr ⟶ 𝟙_ (Rep ℂ SL(2,ℂ)) where
|
|
|
|
|
hom := TensorProduct.lift contrContrCoBi
|
|
|
|
|
comm M := TensorProduct.ext' fun φ ψ => by
|
2024-10-15 13:36:48 +00:00
|
|
|
|
change ((LorentzGroup.toComplex (SL2C.toLorentzGroup M))⁻¹ᵀ *ᵥ φ.toFin13ℂ) ⬝ᵥ
|
2024-10-15 13:19:46 +00:00
|
|
|
|
((LorentzGroup.toComplex (SL2C.toLorentzGroup M)) *ᵥ ψ.toFin13ℂ) = φ.toFin13ℂ ⬝ᵥ ψ.toFin13ℂ
|
|
|
|
|
rw [dotProduct_mulVec, mulVec_transpose, vecMul_vecMul]
|
|
|
|
|
rw [inv_mul_of_invertible (LorentzGroup.toComplex (SL2C.toLorentzGroup M))]
|
|
|
|
|
simp
|
|
|
|
|
|
2024-10-21 12:20:43 +00:00
|
|
|
|
lemma coContrContraction_hom_tmul (φ : complexCo) (ψ : complexContr) :
|
|
|
|
|
coContrContraction.hom (φ ⊗ₜ ψ) = φ.toFin13ℂ ⬝ᵥ ψ.toFin13ℂ := by
|
|
|
|
|
rfl
|
|
|
|
|
|
2024-10-23 08:01:23 +00:00
|
|
|
|
lemma coContrContraction_basis (i j : Fin 4) :
|
|
|
|
|
coContrContraction.hom (complexCoBasisFin4 i ⊗ₜ complexContrBasisFin4 j) =
|
|
|
|
|
if i.1 = j.1 then (1 : ℂ) else 0 := by
|
|
|
|
|
rw [coContrContraction_hom_tmul]
|
|
|
|
|
simp only [Action.instMonoidalCategory_tensorUnit_V, complexCoBasisFin4, Basis.coe_reindex,
|
|
|
|
|
Function.comp_apply, complexCoBasis_toFin13ℂ, complexContrBasisFin4, complexContrBasis_toFin13ℂ,
|
|
|
|
|
dotProduct_single, mul_one]
|
|
|
|
|
rw [Pi.single_apply]
|
|
|
|
|
refine ite_congr ?h₁ (congrFun rfl) (congrFun rfl)
|
|
|
|
|
simp only [EmbeddingLike.apply_eq_iff_eq, Fin.ext_iff, eq_iff_iff, eq_comm]
|
|
|
|
|
|
2024-10-24 15:52:56 +00:00
|
|
|
|
lemma coContrContraction_basis' (i j : Fin 1 ⊕ Fin 3) :
|
|
|
|
|
coContrContraction.hom (complexCoBasis i ⊗ₜ complexContrBasis j) =
|
|
|
|
|
if i = j then (1 : ℂ) else 0 := by
|
|
|
|
|
rw [coContrContraction_hom_tmul]
|
|
|
|
|
simp only [Action.instMonoidalCategory_tensorUnit_V, complexCoBasisFin4, Basis.coe_reindex,
|
|
|
|
|
Function.comp_apply, complexCoBasis_toFin13ℂ, complexContrBasisFin4, complexContrBasis_toFin13ℂ,
|
|
|
|
|
dotProduct_single, mul_one]
|
|
|
|
|
rw [Pi.single_apply]
|
|
|
|
|
refine ite_congr ?h₁ (congrFun rfl) (congrFun rfl)
|
|
|
|
|
simp only [EmbeddingLike.apply_eq_iff_eq, Fin.ext_iff, eq_iff_iff, eq_comm]
|
|
|
|
|
|
2024-10-21 12:20:43 +00:00
|
|
|
|
/-!
|
|
|
|
|
|
|
|
|
|
## Symmetry
|
|
|
|
|
|
|
|
|
|
-/
|
|
|
|
|
|
|
|
|
|
lemma contrCoContraction_tmul_symm (φ : complexContr) (ψ : complexCo) :
|
|
|
|
|
contrCoContraction.hom (φ ⊗ₜ ψ) = coContrContraction.hom (ψ ⊗ₜ φ) := by
|
|
|
|
|
rw [contrCoContraction_hom_tmul, coContrContraction_hom_tmul, dotProduct_comm]
|
|
|
|
|
|
|
|
|
|
lemma coContrContraction_tmul_symm (φ : complexCo) (ψ : complexContr) :
|
|
|
|
|
coContrContraction.hom (φ ⊗ₜ ψ) = contrCoContraction.hom (ψ ⊗ₜ φ) := by
|
|
|
|
|
rw [contrCoContraction_hom_tmul, coContrContraction_hom_tmul, dotProduct_comm]
|
|
|
|
|
|
2024-10-15 13:19:46 +00:00
|
|
|
|
end Lorentz
|
|
|
|
|
end
|