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.
- FD : CategoryTheory.Functor (CategoryTheory.Discrete C) (Rep k G)
A functor from
CtoRep k Ggiving our building block representations. Equivalently a functionC → Re k G. - repDim : C → ℕ
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.
- τ : C → C
A map from
CtoC. An involution. - τ_involution : Function.Involutive self.τ
The condition that
τis an involution. - contr : IndexNotation.OverColor.Discrete.pairτ self.FD self.τ ⟶ CategoryTheory.MonoidalCategoryStruct.tensorUnit (CategoryTheory.Functor (CategoryTheory.Discrete C) (Rep k G))
The natural transformation describing contraction.
- contr_tmul_symm (c : 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.MonoidalCategoryStruct.tensorUnit (CategoryTheory.Functor (CategoryTheory.Discrete C) (Rep k G)) ⟶ IndexNotation.OverColor.Discrete.τPair self.FD self.τ
The natural transformation describing the unit.
- unit_symm (c : 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 : 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.MonoidalCategoryStruct.tensorUnit (CategoryTheory.Functor (CategoryTheory.Discrete C) (Rep k G)) ⟶ IndexNotation.OverColor.Discrete.pair self.FD
The natural transformation describing the metric.
- contr_metric (c : 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
- S.F_braided = { toMonoidal := S.F_monoidal, braided := ⋯ }
Casts an element of the monoidal unit of Rep k G to the field k.
Equations
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.