Documentation

PhysLean.Relativity.Tensors.RealTensor.ToComplex

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

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:

iii. Table of contents #

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

      simp helper: reduce match c j after a case split on c j (avoids dependent rw / Pi.smul_apply).

      The complexification of the component index of a real Lorentz tensor to a complex Lorentz tensor.

      Equations
        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
            Instances For

              The representation of toComplex v in the complexified basis equals the real representation coerced to complex.

              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.

              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.

              @[simp]

              The PermCond condition is preserved under colorToComplex.

              @[simp]
              theorem realLorentzTensor.permT_basis_real {n m : } {c : Fin nColor} {c1 : Fin mColor} {σ : Fin mFin n} (h : TensorSpecies.Tensor.PermCond c c1 σ) (b : TensorSpecies.Tensor.ComponentIdx c) :

              permT sends basis vectors to basis vectors.

              The map toComplex commutes with permT.

              D. Compatibility with tensor products: prodT #

              @[simp]

              colorToComplex commutes with Fin.append (as functions).

              prodT on the complex side, with colors written as colorToComplexFin.append .... This is prodT followed by a cast using colorToComplex_append.

              Equations
                Instances For

                  E. Compatibility with contraction: contrT #

                  @[simp]

                  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).

                  theorem realLorentzTensor.contrT_toComplex {n : } {c : Fin (n + 1 + 1)Color} {i j : Fin (n + 1 + 1)} (h : i j realLorentzTensor.τ (c i) = c j) (t : realLorentzTensor.Tensor c) :

                  The map toComplex commutes with contrT.

                  F. Compatibility with evaluation: evalT #

                  @[simp]

                  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.