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.Tensors.RealTensor.Matrix.Pre public import Physlib.Relativity.Tensors.RealTensor.Vector.Pre.Contraction

Unit for complex Lorentz vectors

@[expose] public section

The contra-co unit for complex lorentz vectors. Usually denoted δⁱᵢ.

def preContrCoUnitVal (d : := 3) : ContrMod d ⊗[] CoMod d := contrCoToMatrixRe.symm 1

Expansion of preContrCoUnitVal into basis.

d:x:Fin d1 (Sum.inr x) (Sum.inr x) (contrBasis d) (Sum.inr x) ⊗ₜ[] (coBasis d) (Sum.inr x) = (contrBasis d) (Sum.inr x) ⊗ₜ[] (coBasis d) (Sum.inr x)d:x:Fin d b Finset.univ, b x 1 (Sum.inr x) (Sum.inr b) (contrBasis d) (Sum.inr x) ⊗ₜ[] (coBasis d) (Sum.inr b) = 0d:x:Fin dx Finset.univ 1 (Sum.inr x) (Sum.inr x) (contrBasis d) (Sum.inr x) ⊗ₜ[] (coBasis d) (Sum.inr x) = 0 d:x:Fin d1 (Sum.inr x) (Sum.inr x) (contrBasis d) (Sum.inr x) ⊗ₜ[] (coBasis d) (Sum.inr x) = (contrBasis d) (Sum.inr x) ⊗ₜ[] (coBasis d) (Sum.inr x) All goals completed! 🐙 d:x:Fin d b Finset.univ, b x 1 (Sum.inr x) (Sum.inr b) (contrBasis d) (Sum.inr x) ⊗ₜ[] (coBasis d) (Sum.inr b) = 0 d:x:Fin d (b : Fin d), ¬b = x 1 (Sum.inr x) (Sum.inr b) = 0 (contrBasis d) (Sum.inr x) ⊗ₜ[] (coBasis d) (Sum.inr b) = 0 d:x:Fin db:Fin dhb:¬b = x1 (Sum.inr x) (Sum.inr b) = 0 (contrBasis d) (Sum.inr x) ⊗ₜ[] (coBasis d) (Sum.inr b) = 0 d:x:Fin db:Fin dhb:¬b = x1 (Sum.inr x) (Sum.inr b) = 0 d:x:Fin db:Fin dhb:¬b = xSum.inr b Sum.inr x All goals completed! 🐙 d:x:Fin dx Finset.univ 1 (Sum.inr x) (Sum.inr x) (contrBasis d) (Sum.inr x) ⊗ₜ[] (coBasis d) (Sum.inr x) = 0 All goals completed! 🐙

The contra-co unit for complex lorentz vectors as a morphism 𝟙_ (Rep ℂ SL(2,ℂ)) ⟶ complexContr ⊗ complexCo, manifesting the invariance under the SL(2, ℂ) action.

set_option backward.isDefEq.respectTransparency false ind:M:(LorentzGroup d)x:contrCoToMatrixRe.symm 1 = contrCoToMatrixRe.symm (M * 1 * (↑M)⁻¹) d:M:(LorentzGroup d)x:1 = M * 1 * (↑M)⁻¹ All goals completed! 🐙
All goals completed! 🐙

The co-contra unit for complex lorentz vectors. Usually denoted δᵢⁱ.

def preCoContrUnitVal (d : := 3) : CoMod d ⊗[] ContrMod d := coContrToMatrixRe.symm 1

Expansion of preCoContrUnitVal into basis.

d:x:Fin d1 (Sum.inr x) (Sum.inr x) (coBasis d) (Sum.inr x) ⊗ₜ[] (contrBasis d) (Sum.inr x) = (coBasis d) (Sum.inr x) ⊗ₜ[] (contrBasis d) (Sum.inr x)d:x:Fin d b Finset.univ, b x 1 (Sum.inr x) (Sum.inr b) (coBasis d) (Sum.inr x) ⊗ₜ[] (contrBasis d) (Sum.inr b) = 0d:x:Fin dx Finset.univ 1 (Sum.inr x) (Sum.inr x) (coBasis d) (Sum.inr x) ⊗ₜ[] (contrBasis d) (Sum.inr x) = 0 d:x:Fin d1 (Sum.inr x) (Sum.inr x) (coBasis d) (Sum.inr x) ⊗ₜ[] (contrBasis d) (Sum.inr x) = (coBasis d) (Sum.inr x) ⊗ₜ[] (contrBasis d) (Sum.inr x) All goals completed! 🐙 d:x:Fin d b Finset.univ, b x 1 (Sum.inr x) (Sum.inr b) (coBasis d) (Sum.inr x) ⊗ₜ[] (contrBasis d) (Sum.inr b) = 0 d:x:Fin d (b : Fin d), ¬b = x 1 (Sum.inr x) (Sum.inr b) = 0 (coBasis d) (Sum.inr x) ⊗ₜ[] (contrBasis d) (Sum.inr b) = 0 d:x:Fin db:Fin dhb:¬b = x1 (Sum.inr x) (Sum.inr b) = 0 (coBasis d) (Sum.inr x) ⊗ₜ[] (contrBasis d) (Sum.inr b) = 0 d:x:Fin db:Fin dhb:¬b = x1 (Sum.inr x) (Sum.inr b) = 0 d:x:Fin db:Fin dhb:¬b = xSum.inr b Sum.inr x All goals completed! 🐙 d:x:Fin dx Finset.univ 1 (Sum.inr x) (Sum.inr x) (coBasis d) (Sum.inr x) ⊗ₜ[] (contrBasis d) (Sum.inr x) = 0 All goals completed! 🐙

The co-contra unit for complex lorentz vectors as a morphism 𝟙_ (Rep ℝ (LorentzGroup d)) ⟶ CoMod.rep ⊗ ContrMod.rep, manifesting the invariance under the LorentzGroup d action.

set_option backward.isDefEq.respectTransparency false ind:M:(LorentzGroup d)x:coContrToMatrixRe.symm 1 = coContrToMatrixRe.symm ((↑M)⁻¹ * 1 * (↑M)) d:M:(LorentzGroup d)x:1 = (↑M)⁻¹ * 1 * (↑M) d:M:(LorentzGroup d)x:(↑M)⁻¹ * 1 * (↑M) = 1 d:M:(LorentzGroup d)x:((↑M)⁻¹ * 1 * (↑M)) = 1 All goals completed! 🐙
All goals completed! 🐙

Contraction of the units

Contraction on the right with contrCoUnit does nothing.

d:c:Fin 1 Fin d h1:(TensorProduct.assoc (CoMod d) (ContrMod d) (CoMod d)).symm ((∑ i, c i (coBasis d) i) ⊗ₜ[] (preContrCoUnit d) 1) = i, (∑ i, c i (coBasis d) i) ⊗ₜ[] (contrBasis d) i ⊗ₜ[] (coBasis d) ih2:(LinearMap.rTensor (CoMod d) coContrContract.toLinearMap) (∑ i, (∑ i, c i (coBasis d) i) ⊗ₜ[] (contrBasis d) i ⊗ₜ[] (coBasis d) i) = i, coContrContract ((∑ i, c i (coBasis d) i) ⊗ₜ[] (contrBasis d) i) ⊗ₜ[] (coBasis d) ih3: (i : Fin 1 Fin d), coContrContract ((∑ i, c i (coBasis d) i) ⊗ₜ[] (contrBasis d) i) = c i x, (TensorProduct.lid (CoMod d)) (c x ⊗ₜ[] (coBasis d) x) = i, c i (coBasis d) i All goals completed! 🐙

Contraction on the right with coContrUnit.

d:c:Fin 1 Fin d h1:(TensorProduct.assoc (ContrMod d) (CoMod d) (ContrMod d)).symm ((∑ i, c i (contrBasis d) i) ⊗ₜ[] (preCoContrUnit d) 1) = i, (∑ i, c i (contrBasis d) i) ⊗ₜ[] (coBasis d) i ⊗ₜ[] (contrBasis d) ih2:(LinearMap.rTensor (ContrMod d) contrCoContract.toLinearMap) (∑ i, (∑ i, c i (contrBasis d) i) ⊗ₜ[] (coBasis d) i ⊗ₜ[] (contrBasis d) i) = i, contrCoContract ((∑ i, c i (contrBasis d) i) ⊗ₜ[] (coBasis d) i) ⊗ₜ[] (contrBasis d) ih3: (i : Fin 1 Fin d), contrCoContract ((∑ i, c i (contrBasis d) i) ⊗ₜ[] (coBasis d) i) = c i x, (TensorProduct.lid (ContrMod d)) (c x ⊗ₜ[] (contrBasis d) x) = i, c i (contrBasis d) i All goals completed! 🐙

Symmetry properties of the units

d: i, (contrBasis d) i ⊗ₜ[] (coBasis d) i = (LinearMap.lTensor (ContrMod d) (LinearEquiv.cast )) ((TensorProduct.comm (CoMod d) (ContrMod d)) (∑ i, (coBasis d) i ⊗ₜ[] (contrBasis d) i)) All goals completed! 🐙d: i, (coBasis d) i ⊗ₜ[] (contrBasis d) i = (LinearMap.lTensor (CoMod d) (LinearEquiv.cast )) ((TensorProduct.comm (ContrMod d) (CoMod d)) (∑ i, (contrBasis d) i ⊗ₜ[] (coBasis d) i)) All goals completed! 🐙