11/-
22Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved.
33Released under Apache 2.0 license as described in the file LICENSE.
4- Authors: Joseph Tooby-Smith
4+ Authors: Joseph Tooby-Smith, Nikolai Kashcheev
55-/
66module
77
88public import PhysLean.Relativity.Tensors.ComplexTensor.Metrics.Pre
99public import PhysLean.Relativity.Tensors.ComplexTensor.Weyl.Metric
10+ public import PhysLean.Relativity.Tensors.Basic
1011/-!
1112
1213## Complex Lorentz tensors
@@ -253,6 +254,28 @@ lemma basis_up_eq {i : Fin 4} :
253254lemma basis_down_eq {i : Fin 4 } :
254255 complexLorentzTensor.basis Color.down i = Lorentz.complexCoBasisFin4 i := rfl
255256
257+ @[simp]
258+ lemma basis_eq_complexContrBasisFin4 :
259+ complexLorentzTensor.basis Color.up = Lorentz.complexContrBasisFin4 := by
260+ ext i
261+ exact basis_up_eq
262+
263+ @[simp]
264+ lemma basis_eq_complexCoBasisFin4 :
265+ complexLorentzTensor.basis Color.down = Lorentz.complexCoBasisFin4 := by
266+ ext i
267+ exact basis_down_eq
268+
269+ @[simp]
270+ lemma FD_obj_up (Λ : SL(2 , ℂ)) :
271+ (complexLorentzTensor.FD.obj { as := Color.up }).ρ Λ = Lorentz.complexContr.ρ Λ :=
272+ rfl
273+
274+ @[simp]
275+ lemma FD_obj_down (Λ : SL(2 , ℂ)) :
276+ (complexLorentzTensor.FD.obj { as := Color.down }).ρ Λ = Lorentz.complexCo.ρ Λ :=
277+ rfl
278+
256279lemma basis_upL_eq {i : Fin 2 } :
257280 complexLorentzTensor.basis Color.upL i = Fermion.leftBasis i := rfl
258281
@@ -265,5 +288,96 @@ lemma basis_upR_eq {i : Fin 2} :
265288lemma basis_downR_eq {i : Fin 2 } :
266289 complexLorentzTensor.basis Color.downR i = Fermion.altRightBasis i := rfl
267290
291+ /-!
292+
293+ ## Vector slot component formulas (`Color.up` / `Color.down`)
294+
295+ The colors `Color.up` and `Color.down` are the standard Lorentz vector colors. The lemmas
296+ `repr_ρ_basis_vector_up` and `repr_ρ_basis_vector_down` are stated for `Fin 4` indices
297+ (definitionally `Fin (repDim Color.up)` and `Fin (repDim Color.down)`).
298+
299+ When a slot is only known up to `c₀ = Color.up` or `Color.down`, use
300+ `repr_ρ_basis_vector_up_of_eq` / `repr_ρ_basis_vector_down_of_eq`.
301+
302+ -/
303+
304+ section vectorSlotRepr
305+
306+ open TensorSpecies Tensor Lorentz Lorentz.SL2C Module
307+
308+ /--
309+ Component formula for the standard contravariant vector slot `Color.up`.
310+
311+ For `b, i : Fin 4`, the `i`-component of `ρ Λ` on `basis Color.up b` equals the corresponding entry
312+ of `LorentzGroup.toComplex (SL2C.toLorentzGroup Λ)` in `Fin 1 ⊕ Fin 3` coordinates.
313+ -/
314+ lemma repr_ρ_basis_vector_up (Λ : SL(2 , ℂ)) (b i : Fin 4 ) :
315+ ((complexLorentzTensor.basis Color.up).repr
316+ (((complexLorentzTensor.FD.obj { as := Color.up }).ρ Λ)
317+ (complexLorentzTensor.basis Color.up b))) i =
318+ (LorentzGroup.toComplex (Lorentz.SL2C.toLorentzGroup Λ))
319+ (finSumFinEquiv.symm i) (finSumFinEquiv.symm b) := by
320+ simp only [basis_up_eq]
321+ erw [Lorentz.complexContrBasis_reindex_apply_eq_fin4]
322+ simp_rw [basis_eq_complexContrBasisFin4, Lorentz.complexContrBasisFin4_eq_reindex]
323+ rw [Basis.repr_reindex_apply, Basis.reindex_apply]
324+ simp_rw [FD_obj_up]
325+ conv_lhs => erw [← LinearMap.toMatrix_apply]
326+ exact Lorentz.complexContrBasis_ρ_apply (M := Λ) (i := finSumFinEquiv.symm i)
327+ (j := finSumFinEquiv.symm b)
328+
329+ /--
330+ Transport version of `repr_ρ_basis_vector_up` for a color `c₀` that is propositionally `Color.up`.
331+ -/
332+ lemma repr_ρ_basis_vector_up_of_eq (c₀ : Color) (h : c₀ = Color.up) (Λ : SL(2 , ℂ))
333+ (b i : Fin (complexLorentzTensor.repDim c₀)) :
334+ ((complexLorentzTensor.basis c₀).repr
335+ (((complexLorentzTensor.FD.obj { as := c₀ }).ρ Λ)
336+ (complexLorentzTensor.basis c₀ b))) i =
337+ (LorentzGroup.toComplex (Lorentz.SL2C.toLorentzGroup Λ))
338+ (finSumFinEquiv.symm (Fin.cast (by rw [h]; rfl) i))
339+ (finSumFinEquiv.symm (Fin.cast (by rw [h]; rfl) b)) := by
340+ subst h
341+ simpa using repr_ρ_basis_vector_up Λ b i
342+
343+ /--
344+ Component formula for the standard covariant vector slot `Color.down`.
345+
346+ For `b, i : Fin 4`, the `i`-component of `ρ Λ` on `basis Color.down b` matches the inverse complex
347+ Lorentz matrix as in `Lorentz.complexCoBasis_ρ_apply` (with transpose indexing on `Fin 1 ⊕ Fin 3`).
348+ -/
349+ lemma repr_ρ_basis_vector_down (Λ : SL(2 , ℂ)) (b i : Fin 4 ) :
350+ ((complexLorentzTensor.basis Color.down).repr
351+ (((complexLorentzTensor.FD.obj { as := Color.down }).ρ Λ)
352+ (complexLorentzTensor.basis Color.down b))) i =
353+ (LorentzGroup.toComplex (Lorentz.SL2C.toLorentzGroup Λ))⁻¹
354+ (finSumFinEquiv.symm b) (finSumFinEquiv.symm i) := by
355+ simp only [basis_down_eq]
356+ erw [Lorentz.complexCoBasis_reindex_apply_eq_fin4]
357+ simp_rw [basis_eq_complexCoBasisFin4, Lorentz.complexCoBasisFin4_eq_reindex]
358+ rw [Basis.repr_reindex_apply, Basis.reindex_apply]
359+ simp_rw [FD_obj_down]
360+ conv_lhs => erw [← LinearMap.toMatrix_apply]
361+ erw [Lorentz.complexCoBasis_ρ_apply (M := Λ) (i := finSumFinEquiv.symm i)
362+ (j := finSumFinEquiv.symm b)]
363+ simp only [Matrix.transpose_apply]
364+
365+ /--
366+ Transport version of `repr_ρ_basis_vector_down` for a color `c₀` that is propositionally
367+ `Color.down`.
368+ -/
369+ lemma repr_ρ_basis_vector_down_of_eq (c₀ : Color) (h : c₀ = Color.down) (Λ : SL(2 , ℂ))
370+ (b i : Fin (complexLorentzTensor.repDim c₀)) :
371+ ((complexLorentzTensor.basis c₀).repr
372+ (((complexLorentzTensor.FD.obj { as := c₀ }).ρ Λ)
373+ (complexLorentzTensor.basis c₀ b))) i =
374+ (LorentzGroup.toComplex (Lorentz.SL2C.toLorentzGroup Λ))⁻¹
375+ (finSumFinEquiv.symm (Fin.cast (by rw [h]; rfl) b))
376+ (finSumFinEquiv.symm (Fin.cast (by rw [h]; rfl) i)) := by
377+ subst h
378+ simpa using repr_ρ_basis_vector_down Λ b i
379+
380+ end vectorSlotRepr
381+
268382end complexLorentzTensor
269383end
0 commit comments