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 d⊢ 1 (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 d⊢ x ∉ Finset.univ → 1 (Sum.inr x) (Sum.inr x) • (contrBasis d) (Sum.inr x) ⊗ₜ[ℝ] (coBasis d) (Sum.inr x) = 0 d:ℕx:Fin d⊢ 1 (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 = 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 = x⊢ 1 (Sum.inr x) (Sum.inr b) = 0 d:ℕx:Fin db:Fin dhb:¬b = x⊢ Sum.inr b ≠ Sum.inr x All goals completed! 🐙 d:ℕx:Fin d⊢ x ∉ 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 d⊢ 1 (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 d⊢ x ∉ Finset.univ → 1 (Sum.inr x) (Sum.inr x) • (coBasis d) (Sum.inr x) ⊗ₜ[ℝ] (contrBasis d) (Sum.inr x) = 0 d:ℕx:Fin d⊢ 1 (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 = 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 = x⊢ 1 (Sum.inr x) (Sum.inr b) = 0 d:ℕx:Fin db:Fin dhb:¬b = x⊢ Sum.inr b ≠ Sum.inr x All goals completed! 🐙 d:ℕx:Fin d⊢ x ∉ 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! 🐙