PhysLean Documentation

PhysLean.Relativity.Tensors.Tensorial

Tensorial class #

i. Overview #

We define a class called Tensorial. This class is used to enable the use of index notation on a type M via a linear equivalence to a tensor of a TensorSpecies.

We define the class Tensorial here, and provide an API around its use.

ii. Key results #

iii. Table of contents #

iv. References #

There are no known references for this material.

A. Defining the tensorial class #

We first define the Tensorial class.

class TensorSpecies.Tensorial {k : outParam Type} [CommRing k] {C G : outParam Type} [Group G] {n : outParam } (S : outParam (TensorSpecies k C G)) (c : outParam (Fin nC)) (M : Type) [AddCommMonoid M] [Module k M] :

The tensorial class is used to define a tensor structure on a type M through a linear equivalence with a module S.Tensor c for S a tensor species.

  • toTensor : M ≃ₗ[k] S.Tensor c

    The equivalence between M and S.Tensor c in a tensorial instance.

Instances

    A.1. Tensors carry a tensorial instance #

    The module of tensors of a tensor species carries a canonical tensorial instance, through the equivalence.

    noncomputable instance TensorSpecies.Tensorial.self {k : Type} [CommRing k] {C G : Type} [Group G] {n : } (S : TensorSpecies k C G) (c : Fin nC) :
    S.Tensorial c (S.Tensor c)
    Equations
    @[simp]
    theorem TensorSpecies.Tensorial.self_toTensor_apply {k : Type} [CommRing k] {C G : Type} [Group G] {n : } (S : TensorSpecies k C G) (c : Fin nC) (t : S.Tensor c) :

    A.2. The number of indices #

    def TensorSpecies.Tensorial.numIndices {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] (t : M) [S.Tensorial c M] :

    The number of indices of a elements t : M where M carries a tensorial instance.

    Equations
    Instances For

      B. The action of the group on a module with a tensorial instance #

      We now define the action of the group G on a type M carrying a tensorial instance.

      noncomputable instance TensorSpecies.Tensorial.mulAction {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] [S.Tensorial c M] :
      Equations

      B.1. Relation between the action and the equivalence to tensors #

      theorem TensorSpecies.Tensorial.smul_eq {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] {g : G} {t : M} [S.Tensorial c M] :
      theorem TensorSpecies.Tensorial.toTensor_smul {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] {g : G} {t : M} [S.Tensorial c M] :
      theorem TensorSpecies.Tensorial.smul_toTensor_symm {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] {g : G} {t : S.Tensor c} [self : S.Tensorial c M] :

      B.2. Linear properties of the action #

      @[simp]
      theorem TensorSpecies.Tensorial.smul_add {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] {g : G} [S.Tensorial c M] (m m' : M) :
      g (m + m') = g m + g m'
      @[simp]
      theorem TensorSpecies.Tensorial.smul_neg {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommGroup M] [Module k M] [S.Tensorial c M] (g : G) (m : M) :
      g -m = -(g m)
      @[simp]
      theorem TensorSpecies.Tensorial.smul_zero {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] [S.Tensorial c M] {g : G} :
      g 0 = 0

      B.3. The action as a linear map #

      noncomputable def TensorSpecies.Tensorial.smulLinearMap {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] (g : G) [S.Tensorial c M] :

      The action of the group on a Tensorial instance as a linear map.

      Equations
      Instances For
        theorem TensorSpecies.Tensorial.smulLinearMap_apply {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] {g : G} [S.Tensorial c M] (m : M) :
        (smulLinearMap g) m = g m

        C. Properties of the basis #

        We now prove some properties of the basis induced on a Tensorial instance.

        theorem TensorSpecies.Tensorial.basis_toTensor_apply {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] [S.Tensorial c M] (m : M) :

        D. Products of tensorial instances #

        noncomputable instance TensorSpecies.Tensorial.prod {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] [S.Tensorial c M] {n2 : } {c2 : Fin n2C} {M₂ : Type} [AddCommMonoid M₂] [Module k M₂] [S.Tensorial c2 M₂] :
        S.Tensorial (Fin.append c c2) (TensorProduct k M M₂)
        Equations

        D.1. The equivalence to tensors on products #

        theorem TensorSpecies.Tensorial.toTensor_tprod {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] {n2 : } {c2 : Fin n2C} {M₂ : Type} [S.Tensorial c M] [AddCommMonoid M₂] [Module k M₂] [S.Tensorial c2 M₂] (m : M) (m2 : M₂) :

        D.2. The group action on products #

        theorem TensorSpecies.Tensorial.smul_prod {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] {n2 : } {c2 : Fin n2C} {M₂ : Type} [S.Tensorial c M] [AddCommMonoid M₂] [Module k M₂] [S.Tensorial c2 M₂] (g : G) (m : M) (m2 : M₂) :
        g m ⊗ₜ[k] m2 = (g m) ⊗ₜ[k] (g m2)

        D.3. The basis on products #

        theorem TensorSpecies.Tensorial.basis_map_prod {k : Type} [CommRing k] {C G : Type} [Group G] {S : TensorSpecies k C G} {n : } {c : Fin nC} {M : Type} [AddCommMonoid M] [Module k M] {n2 : } {c2 : Fin n2C} {M₂ : Type} [S.Tensorial c M] [AddCommMonoid M₂] [Module k M₂] [S.Tensorial c2 M₂] :