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.
- k : Type
The commutative ring over which we want to consider the tensors to live in, usually
ℝ
orℂ
. An instance of
k
as a commutative ring.- G : Type
The symmetry group acting on these tensor e.g. the Lorentz group or SL(2,ℂ).
An instance of
G
as a group.- C : Type
The colors of indices e.g. up or down.
- FD : CategoryTheory.Functor (CategoryTheory.Discrete self.C) (Rep self.k self.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 self.k self.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 ⊗ₜ[self.k] y) = (CategoryTheory.ConcreteCategory.hom (self.contr.app { as := self.τ c }).hom) (y ⊗ₜ[self.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 self.k self.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.
- 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 ⊗ₜ[self.k] (CategoryTheory.ConcreteCategory.hom (self.unit.app { as := c }).hom) 1))) = x
Contraction with unit leaves invariant.
- metric : 𝟙_ (CategoryTheory.Functor (CategoryTheory.Discrete self.C) (Rep self.k self.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 ⊗ₜ[self.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.
Instances For
The field k
of a TensorSpecies
has the instance of a commutative ring.
Equations
- S.instCommRingK = S.k_commRing
The field G
of a TensorSpecies
has the instance of a group.
Equations
- S.instGroupG = S.G_group
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 S.k S.G
to the field S.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
Evalutation of indices. #
The isomorphism of objects in Rep S.k S.G
given an i
in Fin n.succ
allowing us to undertake evaluation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The linear map giving the coordinate of a vector with respect to the given basis. Important Note: This is not a morphism in the category of representations. In general, it cannot be lifted thereto.
Equations
Instances For
The evaluation map, used to evaluate indices of tensors. Important Note: The evaluation map is in general, not equivariant with respect to group actions. It is a morphism in the underlying module category, not the category of representations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence turning vecs into tensors #
The equivalence between tensors based on ![c]
and vectors in S.FD.obj (Discrete.mk c)
.
Equations
Instances For
Lift #
The lift of a linear map (S.F.obj (OverColor.mk c) →ₗ[S.k] E)
to a
multi-linear map from fun i => S.FD.obj (Discrete.mk (c i))
(i.e. pure tensors) to E
.
Equations
Instances For
The number of indices n
from a tensor.