Complex Lorentz tensors from real Lorentz tensors #
i. Overview #
In this module we describe how to pass from real Lorentz tensors to complex Lorentz tensors in a functorial way. Specifically, we construct a canonical equivariant semilinear map
toComplex : ℝT(3, c) →ₛₗ[Complex.ofRealHom] ℂT(colorToComplex ∘ c)
which is compatible with the natural operations on tensors (permutations of indices, tensor products, contractions and evaluations).
ii. Key results #
The main definitions and statements are:
colorToComplexupgrades the colour of a real Lorentz tensor to the corresponding complex Lorentz colour.TensorSpecies.Tensor.ComponentIdx.complexifytransports component indices alongcolorToComplex.toComplexis the basic semilinear map from real to complex Lorentz tensors.toComplex_basisandtoComplex_pure_basisVectorshow thattoComplexsends basis tensors to basis tensors.toComplex_eq_zero_iffandtoComplex_injectiveshow thattoComplexis injective.toComplex_equivariantstates thattoComplexis equivariant for the action of the complexified Lorentz group.permT_toComplex,prodT_toComplex,contrT_toComplexandevalT_toComplexexpress thattoComplexcommutes with the basic tensor operations.
iii. Table of contents #
- A. Colours and component indices
- B. The semilinear map
toComplex- B.1. Expression in the tensor basis
- B.2. Behaviour on basis vectors and injectivity
- B.3. Equivariance under the Lorentz action
- C. Compatibility with permutations:
permT - D. Compatibility with tensor products:
prodT - E. Compatibility with contraction:
contrT - F. Compatibility with evaluation:
evalT
iv. References #
The general formalism of Lorentz tensors and their operations is developed in other parts of the library; here we only specialise to the passage from real to complex Lorentz tensors.
A. Colours and component indices #
We first explain how the Lorentz colour data and component indices for real tensors are transported to the complex setting.
The map from colors of real Lorentz tensors to complex Lorentz tensors.
Equations
Instances For
The complexification of the component index of a real Lorentz tensor to a complex Lorentz tensor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
B. The semilinear map toComplex #
We now define the basic semilinear map from real Lorentz tensors to complex Lorentz tensors. It is characterised by sending the standard tensor basis on the real side to the corresponding basis on the complex side, and is therefore determined by the behaviour on components.
The semilinear map from real Lorentz tensors to complex Lorentz tensors, defined through basis.
Equations
- One or more equations did not get rendered due to their size.
Instances For
toComplex sends basis elements to basis elements.
toComplex on a pure basis vector.
The map toComplex is injective.
B.3. Equivariance under the Lorentz action #
Finally we record that toComplex is equivariant for the natural action of
SL(2, ℂ) (and hence the induced Lorentz action) on tensors.
The map toComplex is equivariant.
C. Compatibility with permutations: permT #
We first show that complexification is compatible with permutation of tensor
slots. On colours this is encoded in the PermCond predicate, and on tensors
by the operator permT.
The PermCond condition is preserved under colorToComplex.
permT sends basis vectors to basis vectors.
The map toComplex commutes with permT.
D. Compatibility with tensor products: prodT #
colorToComplex commutes with Fin.append (as functions).
prodT on the complex side, with colors written as colorToComplex ∘ Fin.append ....
This is prodT followed by a cast using colorToComplex_append.
Equations
Instances For
complexify commutes with prod of component indices.
The map toComplex commutes with prodT.
E. Compatibility with contraction: contrT #
τ commutes with colorToComplex on the Lorentz up/down colors.
complexify commutes with precomposition by dropPairEmb.
We use fun k => b (Pure.dropPairEmb i j k) and direct application
(ComponentIdx.complexify b) (Pure.dropPairEmb i j m) rather than composition so that
dependent ComponentIdx types unify correctly (avoiding Function.comp type mismatch).
For a real basis vector, toComplex(contrP(basisVector c b)) equals
contrP(basisVector (colorToComplex ∘ c) (complexify b)) (complex species).
The map toComplex commutes with contrT.
F. Compatibility with evaluation: evalT #
complexify commutes with precomposition by succAbove.
Convert an evaluation index from the real repDim to the complex repDim.
Equations
Instances For
evalT on the complex side, but with output colors as colorToComplex ∘ (c ∘ i.succAbove).
Implemented via permT (σ := id) (by simp) as a transport.
Equations
Instances For
For a real basis vector, toComplex(evalP(basisVector c b)) equals
evalP(basisVector (colorToComplex ∘ c) (complexify b)) (complex species).
The map toComplex commutes with evalT.