Imports
/- Copyright (c) 2026 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 Mathlib.RepresentationTheory.Basic public import Physlib.Relativity.LorentzGroup.Basic public import Physlib.Relativity.Tensors.RealTensor.CoVector.Basic

Representation of the Lorentz group on Lorentz vectors

In this module we define the representation of the Lorentz group on Lorentz covectors. This does not define the MulAction on Lorentz.CoVector, which is induced by its tensor structure.

@[expose] public sectionattribute [-simp] Fintype.sum_sum_type

The representation of the Lorentz group on Lorentz vectors.

def rep {d : } : Representation (LorentzGroup d) (CoVector d) where toFun Λ := Matrix.toLinAlgEquiv basis (LorentzGroup.transpose Λ⁻¹) map_one' := d:(toLinAlgEquiv basis) (LorentzGroup.transpose 1⁻¹) = 1 All goals completed! 🐙 map_mul' x y := d:x:(LorentzGroup d)y:(LorentzGroup d)(toLinAlgEquiv basis) (LorentzGroup.transpose (x * y)⁻¹) = (toLinAlgEquiv basis) (LorentzGroup.transpose x⁻¹) * (toLinAlgEquiv basis) (LorentzGroup.transpose y⁻¹) All goals completed! 🐙

Properties of the representation.

lemma rep_apply_eq_mulVec (d : ) (Λ : LorentzGroup d) (v : CoVector d) : rep Λ v = (LorentzGroup.transpose Λ⁻¹) *ᵥ v := d:Λ:(LorentzGroup d)v:CoVector d(rep Λ) v = (LorentzGroup.transpose Λ⁻¹) *ᵥ v All goals completed! 🐙lemma rep_apply_eq_sum (d : ) (Λ : LorentzGroup d) (v : CoVector d) (k : Fin 1 Fin d) : rep Λ v k = j, (Λ⁻¹).1 j k v j := rflAll goals completed! 🐙lemma rep_apply_basis {d} (μ : Fin 1 Fin d) (Λ : LorentzGroup d) : rep Λ (basis μ) = j, Λ.1⁻¹ μ j basis j := d:μ:Fin 1 Fin dΛ:(LorentzGroup d)(rep Λ) (basis μ) = j, (↑Λ)⁻¹ μ j basis j d:μ:Fin 1 Fin dΛ:(LorentzGroup d)k:Fin 1 Fin d(rep Λ) (basis μ) k = (∑ j, (↑Λ)⁻¹ μ j basis j) k All goals completed! 🐙d:Λ:(LorentzGroup d)(LinearMap.toMatrix basis basis) ((toLinAlgEquiv basis) (LorentzGroup.transpose Λ⁻¹)) = (↑Λ⁻¹) All goals completed! 🐙d:Λ:(LorentzGroup d)v1:CoVector dv2:CoVector dh:(LorentzGroup.transpose Λ⁻¹) *ᵥ v1 = (LorentzGroup.transpose Λ⁻¹) *ᵥ v2v1 = v2 All goals completed! 🐙d:Λ:(LorentzGroup d)v:CoVector d(LorentzGroup.transpose Λ⁻¹) *ᵥ (LorentzGroup.transpose Λ) *ᵥ v = v All goals completed! 🐙lemma rep_bijective (d : ) (Λ : LorentzGroup d) : Function.Bijective (rep Λ) := rep_injective d Λ, rep_surjective d Λ