Tensor species #
- A tensor species is a structure including all of the ingredients needed to define a type of tensor.
- Examples of tensor species will include real Lorentz tensors, complex Lorentz tensors, and Einstein tensors.
- Tensor species are built upon symmetric monoidal categories.
The structure TensorSpecies
contains the necessary structure needed to define
a system of tensors with index notation. Examples of TensorSpecies
include real Lorentz tensors,
complex Lorentz tensors, and ordinary Euclidean tensors.
- C : Type
The colors of indices e.g. up or down.
- FD : CategoryTheory.Functor (CategoryTheory.Discrete self.C) (Rep k G)
A specification of the dimension of each color in C. This will be used for explicit evaluation of tensors.
A basis for each Module, determined by the evaluation map.
- τ_involution : Function.Involutive self.τ
The condition that
τ
is an involution. - contr : IndexNotation.OverColor.Discrete.pairτ self.FD self.τ ⟶ 𝟙_ (CategoryTheory.Functor (CategoryTheory.Discrete self.C) (Rep k G))
The natural transformation describing contraction.
- contr_tmul_symm (c : self.C) (x : ↑(self.FD.obj { as := c }).V) (y : ↑(self.FD.obj { as := self.τ c }).V) : (CategoryTheory.ConcreteCategory.hom (self.contr.app { as := c }).hom) (x ⊗ₜ[k] y) = (CategoryTheory.ConcreteCategory.hom (self.contr.app { as := self.τ c }).hom) (y ⊗ₜ[k] (CategoryTheory.ConcreteCategory.hom (self.FD.map (CategoryTheory.Discrete.eqToHom ⋯)).hom) x)
Contraction is symmetric with respect to duals.
- unit : 𝟙_ (CategoryTheory.Functor (CategoryTheory.Discrete self.C) (Rep k G)) ⟶ IndexNotation.OverColor.Discrete.τPair self.FD self.τ
The natural transformation describing the unit.
- unit_symm (c : self.C) : (CategoryTheory.ConcreteCategory.hom (self.unit.app { as := c }).hom) 1 = (CategoryTheory.ConcreteCategory.hom (CategoryTheory.MonoidalCategoryStruct.whiskerLeft (self.FD.obj { as := self.τ c }) (self.FD.map (CategoryTheory.Discrete.eqToHom ⋯))).hom) ((CategoryTheory.ConcreteCategory.hom (β_ (self.FD.obj { as := self.τ (self.τ c) }) (self.FD.obj { as := self.τ c })).hom.hom) ((CategoryTheory.ConcreteCategory.hom (self.unit.app { as := self.τ c }).hom) 1))
The unit is symmetric. The de-categorification of this lemma is:
unitTensor_eq_permT_dual
. - contr_unit (c : self.C) (x : ↑(self.FD.obj { as := c }).V) : (CategoryTheory.ConcreteCategory.hom (CategoryTheory.MonoidalCategoryStruct.leftUnitor (self.FD.obj { as := c })).hom.hom) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.MonoidalCategoryStruct.whiskerRight (self.contr.app { as := c }) (self.FD.obj { as := c })).hom) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.MonoidalCategoryStruct.associator (self.FD.obj { as := c }) (((CategoryTheory.Discrete.functor (CategoryTheory.Discrete.mk ∘ self.τ)).comp self.FD).obj { as := c }) (self.FD.obj { as := c })).inv.hom) (x ⊗ₜ[k] (CategoryTheory.ConcreteCategory.hom (self.unit.app { as := c }).hom) 1))) = x
Contraction with unit leaves invariant. The de-categorification of this lemma is:
contrT_single_unitTensor
. - metric : 𝟙_ (CategoryTheory.Functor (CategoryTheory.Discrete self.C) (Rep k G)) ⟶ IndexNotation.OverColor.Discrete.pair self.FD
The natural transformation describing the metric.
- contr_metric (c : self.C) : (CategoryTheory.ConcreteCategory.hom (β_ (self.FD.obj { as := c }) (self.FD.obj { as := self.τ c })).hom.hom) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.MonoidalCategoryStruct.whiskerLeft (self.FD.obj { as := c }) (CategoryTheory.MonoidalCategoryStruct.leftUnitor (self.FD.obj { as := self.τ c })).hom).hom) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.MonoidalCategoryStruct.whiskerLeft (self.FD.obj { as := c }) (CategoryTheory.MonoidalCategoryStruct.whiskerRight (self.contr.app { as := c }) (self.FD.obj { as := self.τ c }))).hom) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.MonoidalCategoryStruct.whiskerLeft (self.FD.obj { as := c }) (CategoryTheory.MonoidalCategoryStruct.associator (self.FD.obj { as := c }) (self.FD.obj { as := self.τ c }) (self.FD.obj { as := self.τ c })).inv).hom) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.MonoidalCategoryStruct.associator (self.FD.obj { as := c }) (self.FD.obj { as := c }) (CategoryTheory.MonoidalCategoryStruct.tensorObj (self.FD.obj { as := self.τ c }) (self.FD.obj { as := self.τ c }))).hom.hom) ((CategoryTheory.ConcreteCategory.hom (self.metric.app { as := c }).hom) 1 ⊗ₜ[k] (CategoryTheory.ConcreteCategory.hom (self.metric.app { as := self.τ c }).hom) 1))))) = (CategoryTheory.ConcreteCategory.hom (self.unit.app { as := c }).hom) 1
On contracting metrics we get back the unit. The de-categorification of this lemma is:
contrT_metricTensor_metricTensor
.
Instances For
The field repDim
of a TensorSpecies
is non-zero for all colors.
The lift of the functor S.F
to functor.
Instances For
The functor F
is monoidal.
The functor F
is lax-braided.
The functor F
is braided.
Equations
Casts an element of the monoidal unit of Rep k G
to the field k
.
Equations
- S.castToField v = v
Instances For
Casts an element of (S.F.obj (OverColor.mk c)).V
for c
a map from Fin 0
to an
element of the field.
Equations
- S.castFin0ToField = ↑(PiTensorProduct.isEmptyEquiv (Fin 0))
Instances For
Some properties of contractions #
The number of indices n
from a tensor.