PhysLean Documentation

PhysLean.Relativity.Tensors.Basic

Products of tensors. #

@[reducible, inline]
noncomputable abbrev TensorSpecies.Tensor {k : Type} [CommRing k] {G : Type} [Group G] (S : TensorSpecies k G) {n : } (c : Fin nS.C) :

The tensors associated with a list of indicies of a given color c : Fin n → S.C.

Equations
Instances For
    @[reducible, inline]
    abbrev TensorSpecies.Tensor.ComponentIdx {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) :

    Given a list of indices c : Fin n → S.C e.g. ![.up, .down], the type ComponentIdx c is the type of components indexes of a tensor with those indices e.g. ⟨0, 2⟩ corresponding to T⁰₂.

    Equations
    Instances For
      theorem TensorSpecies.Tensor.ComponentIdx.congr_right {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} (b : ComponentIdx c) (i j : Fin n) (h : i = j) :
      b i = Fin.cast (b j)

      Pure tensors #

      @[reducible, inline]
      abbrev TensorSpecies.Tensor.Pure {k : Type} [CommRing k] {G : Type} [Group G] {n : } (S : TensorSpecies k G) (c : Fin nS.C) :

      The type of pure tensors associated to a list of indices c : OverColor S.C. A pure tensor is a tensor which can be written in the form v1 ⊗ₜ v2 ⊗ₜ v3 ….

      Equations
      Instances For
        @[simp]
        theorem TensorSpecies.Tensor.Pure.congr_right {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} (p : Pure S c) (i j : Fin n) (h : i = j) :
        theorem TensorSpecies.Tensor.Pure.congr_mid {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} (c' : S.C) (p : Pure S c) (i j : Fin n) (h : i = j) (hi : c i = c') (hj : c j = c') :
        theorem TensorSpecies.Tensor.Pure.map_mid_move_left {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n n1 : } {c : Fin nS.C} {c1 : Fin n1S.C} (p : Pure S c) (p' : Pure S c1) {c' : S.C} (i : Fin n) (j : Fin n1) (hi : c i = c') (hj : c1 j = c') :
        theorem TensorSpecies.Tensor.Pure.map_map_apply {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} (c1 c2 : S.C) (p : Pure S c) (i : Fin n) (f : { as := c i } { as := c1 }) (g : { as := c1 } { as := c2 }) :
        noncomputable def TensorSpecies.Tensor.Pure.toTensor {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} (p : Pure S c) :
        S.Tensor c

        The tensor correpsonding to a pure tensor.

        Equations
        Instances For
          theorem TensorSpecies.Tensor.Pure.toTensor_apply {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) (p : Pure S c) :
          def TensorSpecies.Tensor.Pure.update {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} [inst : DecidableEq (Fin n)] (p : Pure S c) (i : Fin n) (x : (S.FD.obj { as := c i }).V) :
          Pure S c

          Given a list of indices c of n indices, a pure tensor p, an element i : Fin n and a x in S.FD.obj (Discrete.mk (c i)) then update p i x corresponds to p where the ith part of p is replaced with x.

          E.g. if n = 2 and p = v₀ ⊗ₜ v₁ then update p 0 x = x ⊗ₜ v₁.

          Equations
          Instances For
            @[simp]
            theorem TensorSpecies.Tensor.Pure.update_same {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} [inst : DecidableEq (Fin n)] (p : Pure S c) (i : Fin n) (x : (S.FD.obj { as := c i }).V) :
            p.update i x i = x
            @[simp]
            theorem TensorSpecies.Tensor.Pure.update_succAbove_apply {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin (n + 1)S.C} [inst : DecidableEq (Fin (n + 1))] (p : Pure S c) (i : Fin (n + 1)) (j : Fin n) (x : (S.FD.obj { as := c (i.succAbove j) }).V) :
            p.update (i.succAbove j) x i = p i
            @[simp]
            theorem TensorSpecies.Tensor.Pure.toTensor_update_add {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} [inst : DecidableEq (Fin n)] (p : Pure S c) (i : Fin n) (x y : (S.FD.obj { as := c i }).V) :
            (p.update i (x + y)).toTensor = (p.update i x).toTensor + (p.update i y).toTensor
            @[simp]
            theorem TensorSpecies.Tensor.Pure.toTensor_update_smul {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} [inst : DecidableEq (Fin n)] (p : Pure S c) (i : Fin n) (r : k) (y : (S.FD.obj { as := c i }).V) :
            (p.update i (r y)).toTensor = r (p.update i y).toTensor
            def TensorSpecies.Tensor.Pure.drop {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin (n + 1)S.C} (p : Pure S c) (i : Fin (n + 1)) :

            Given a list of indices c of length n + 1, a pure tensor p and an i : Fin (n + 1), then drop p i is the tensor p with it's ith part dropped.

            For example, if n = 2 and p = v₀ ⊗ₜ v₁ ⊗ₜ v₂ then drop p 1 = v₀ ⊗ₜ v₂.

            Equations
            Instances For
              @[simp]
              theorem TensorSpecies.Tensor.Pure.update_succAbove_drop {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin (n + 1)S.C} [inst : DecidableEq (Fin (n + 1))] (p : Pure S c) (i : Fin (n + 1)) (k✝ : Fin n) (x : (S.FD.obj { as := c (i.succAbove k✝) }).V) :
              (p.update (i.succAbove k✝) x).drop i = (p.drop i).update k✝ x
              @[simp]
              theorem TensorSpecies.Tensor.Pure.update_drop_self {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin (n + 1)S.C} [inst : DecidableEq (Fin (n + 1))] (p : Pure S c) (i : Fin (n + 1)) (x : (S.FD.obj { as := c i }).V) :
              (p.update i x).drop i = p.drop i

              Components #

              def TensorSpecies.Tensor.Pure.component {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} (p : Pure S c) (b : ComponentIdx c) :
              k

              Given an element b of ComponentIdx c and a pure tensor p then component p b is the element of the ring k correpsonding to the component of p in the direction b.

              For example, if p = v ⊗ₜ w and b = ⟨0, 1⟩ then component p b = v⁰ ⊗ₜ w¹.

              Equations
              Instances For
                theorem TensorSpecies.Tensor.Pure.component_eq {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} (p : Pure S c) (b : ComponentIdx c) :
                p.component b = i : Fin n, ((S.basis (c i)).repr (p i)) (b i)
                theorem TensorSpecies.Tensor.Pure.component_eq_drop {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin (n + 1)S.C} (p : Pure S c) (i : Fin (n + 1)) (b : ComponentIdx c) :
                p.component b = ((S.basis (c i)).repr (p i)) (b i) * (p.drop i).component fun (j : Fin n) => b (i.succAbove j)
                @[simp]
                theorem TensorSpecies.Tensor.Pure.component_update_add {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } [inst : DecidableEq (Fin n)] {c : Fin nS.C} (p : Pure S c) (i : Fin n) (x y : (S.FD.obj { as := c i }).V) (b : ComponentIdx c) :
                (p.update i (x + y)).component b = (p.update i x).component b + (p.update i y).component b
                @[simp]
                theorem TensorSpecies.Tensor.Pure.component_update_smul {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } [inst : DecidableEq (Fin n)] {c : Fin nS.C} (p : Pure S c) (i : Fin n) (x : k) (y : (S.FD.obj { as := c i }).V) (b : ComponentIdx c) :
                (p.update i (x y)).component b = x * (p.update i y).component b
                noncomputable def TensorSpecies.Tensor.Pure.componentMap {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) :
                MultilinearMap k (fun (i : Fin n) => (S.FD.obj { as := c i }).V) (ComponentIdx ck)

                The multilinear map taking pure tensors p to a map ComponentIdx c → k which when evaluated returns the components of p.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem TensorSpecies.Tensor.Pure.componentMap_apply {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) (p : Pure S c) :
                  noncomputable def TensorSpecies.Tensor.Pure.basisVector {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) (b : ComponentIdx c) :
                  Pure S c

                  Given an component idx b in ComponentIdx c, basisVector c b is the pure tensor formed by S.basis (c i) (b i).

                  Equations
                  Instances For
                    @[simp]
                    theorem TensorSpecies.Tensor.Pure.component_basisVector {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) (b1 b2 : ComponentIdx c) :
                    (basisVector c b1).component b2 = if b1 = b2 then 1 else 0
                    theorem TensorSpecies.Tensor.induction_on_pure {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} {P : S.Tensor cProp} (h : ∀ (p : Pure S c), P p.toTensor) (hsmul : ∀ (r : k) (t : S.Tensor c), P tP (r t)) (hadd : ∀ (t1 t2 : S.Tensor c), P t1P t2P (t1 + t2)) (t : S.Tensor c) :
                    P t

                    The basis #

                    def TensorSpecies.Tensor.componentMap {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) :

                    The linear map from tensors to its components.

                    Equations
                    Instances For
                      @[simp]
                      theorem TensorSpecies.Tensor.componentMap_pure {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) (p : Pure S c) :
                      def TensorSpecies.Tensor.ofComponents {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) :

                      The tensor created from it's components.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem TensorSpecies.Tensor.componentMap_ofComponents {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) (f : ComponentIdx ck) :
                        @[simp]
                        theorem TensorSpecies.Tensor.ofComponents_componentMap {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) (t : S.Tensor c) :
                        def TensorSpecies.Tensor.basis {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) :

                        The basis of tensors.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          theorem TensorSpecies.Tensor.basis_apply {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) (b : ComponentIdx c) :
                          @[simp]
                          theorem TensorSpecies.Tensor.basis_repr_pure {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } (c : Fin nS.C) (p : Pure S c) :
                          theorem TensorSpecies.Tensor.induction_on_basis {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} {P : S.Tensor cProp} (h : ∀ (b : ComponentIdx c), P ((basis c) b)) (hzero : P 0) (hsmul : ∀ (r : k) (t : S.Tensor c), P tP (r t)) (hadd : ∀ (t1 t2 : S.Tensor c), P t1P t2P (t1 + t2)) (t : S.Tensor c) :
                          P t

                          The rank #

                          theorem TensorSpecies.Tensor.finrank_tensor_eq {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } [StrongRankCondition k] (c : Fin nS.C) :
                          Module.finrank k (S.Tensor c) = x : Fin n, S.repDim (c x)

                          The action #

                          noncomputable instance TensorSpecies.Tensor.Pure.actionP {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} :
                          MulAction G (Pure S c)
                          Equations
                          noncomputable instance TensorSpecies.Tensor.Pure.instSMul {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} :
                          SMul G (Pure S c)
                          Equations
                          theorem TensorSpecies.Tensor.Pure.actionP_eq {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} {g : G} {p : Pure S c} :
                          g p = fun (i : Fin n) => ((S.FD.obj { as := c i }).ρ g) (p i)
                          @[simp]
                          theorem TensorSpecies.Tensor.Pure.drop_actionP {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin (n + 1)S.C} {i : Fin (n + 1)} {p : Pure S c} (g : G) :
                          (g p).drop i = g p.drop i
                          noncomputable instance TensorSpecies.Tensor.actionT {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} :
                          Equations
                          theorem TensorSpecies.Tensor.actionT_eq {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} {g : G} {t : S.Tensor c} :
                          theorem TensorSpecies.Tensor.actionT_pure {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} {g : G} {p : Pure S c} :
                          @[simp]
                          theorem TensorSpecies.Tensor.actionT_add {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} {g : G} {t1 t2 : S.Tensor c} :
                          g (t1 + t2) = g t1 + g t2
                          @[simp]
                          theorem TensorSpecies.Tensor.actionT_smul {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} {g : G} {r : k} {t : S.Tensor c} :
                          g r t = r g t
                          @[simp]
                          theorem TensorSpecies.Tensor.actionT_zero {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} {g : G} :
                          g 0 = 0

                          Permutations #

                          And their interactions with

                          def TensorSpecies.Tensor.PermCond {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } (c : Fin nS.C) (c1 : Fin mS.C) (σ : Fin mFin n) :

                          Given two lists of indices c : Fin n → S.C and c1 : Fin m → S.C a map σ : Fin m → Fin n satisfies the condition PermCond c c1 σ if it is:

                          • A bijection
                          • Forms a commutative triangle with c and c1.
                          Equations
                          Instances For
                            theorem TensorSpecies.Tensor.PermCond.auto {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} {σ : Fin mFin n} (h : PermCond c c1 σ := by {simp [PermCond]; try decide }) :
                            PermCond c c1 σ
                            @[simp]
                            theorem TensorSpecies.Tensor.PermCond.on_id {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c c1 : Fin nS.C} :
                            PermCond c c1 id ∀ (i : Fin n), c i = c1 i
                            theorem TensorSpecies.Tensor.PermCond.on_id_symm {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c c1 : Fin nS.C} (h : PermCond c1 c id) :
                            def TensorSpecies.Tensor.PermCond.inv {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} (σ : Fin mFin n) (h : PermCond c c1 σ) :
                            Fin nFin m

                            For a map σ satisfying PermCond c c1 σ, the inverse of that map.

                            Equations
                            Instances For
                              def TensorSpecies.Tensor.PermCond.toEquiv {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} {σ : Fin mFin n} (h : PermCond c c1 σ) :
                              Fin n Fin m

                              For a map σ : Fin m → Fin n satisfying PermCond c c1 σ, that map lifted to an equivalence between Fin n and Fin m.

                              Equations
                              Instances For
                                theorem TensorSpecies.Tensor.PermCond.apply_inv_apply {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} (σ : Fin mFin n) (h : PermCond c c1 σ) (x : Fin m) :
                                inv σ h (σ x) = x
                                theorem TensorSpecies.Tensor.PermCond.inv_apply_apply {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} (σ : Fin mFin n) (h : PermCond c c1 σ) (x : Fin n) :
                                σ (inv σ h x) = x
                                theorem TensorSpecies.Tensor.PermCond.preserve_color {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} {σ : Fin mFin n} (h : PermCond c c1 σ) (x : Fin m) :
                                c1 x = (c σ) x
                                theorem TensorSpecies.Tensor.PermCond.inv_perserve_color {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} {σ : Fin mFin n} (h : PermCond c c1 σ) (x : Fin n) :
                                c1 (inv σ h x) = c x
                                def TensorSpecies.Tensor.PermCond.toHom {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} {σ : Fin mFin n} (h : PermCond c c1 σ) :

                                For a map σ : Fin m → Fin n satisfying PermCond c c1 σ, that map lifted to a morphism in the OverColor C category.

                                Equations
                                Instances For

                                  Given a morphism in the OverColor C between c and c1 category the corresponding morphism (Hom.toEquiv σ).symm satisfies the PermCond.

                                  theorem TensorSpecies.Tensor.PermCond.comp {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n n1 n2 : } {c : Fin nS.C} {c1 : Fin n1S.C} {c2 : Fin n2S.C} {σ : Fin n1Fin n} {σ2 : Fin n2Fin n1} (h : PermCond c c1 σ) (h2 : PermCond c1 c2 σ2) :
                                  PermCond c c2 (σ σ2)

                                  The composition of two maps satisfying PermCond also satifies the PermCond.

                                  theorem TensorSpecies.Tensor.fin_cast_permCond {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} (n n1 : ) {c : Fin nS.C} (h : n1 = n) :

                                  Permutations #

                                  def TensorSpecies.Tensor.Pure.permP {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} (σ : Fin mFin n) (h : PermCond c c1 σ) (p : Pure S c) :
                                  Pure S c1

                                  Given a permutation σ : Fin m → Fin n of indices satisfying PermCond through h, and a pure tensor p, permP σ h p is the pure tensor permuted accordinge to σ.

                                  For example if m = n = 2 and σ = ![1, 0], and p = v ⊗ₜ w then permP σ _ p = w ⊗ₜ v.

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem TensorSpecies.Tensor.Pure.permP_basisVector {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} (σ : Fin mFin n) (h : PermCond c c1 σ) (b : ComponentIdx c) :
                                    permP σ h (basisVector c b) = basisVector c1 fun (i : Fin m) => Fin.cast (b (σ i))
                                    noncomputable def TensorSpecies.Tensor.permT {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} (σ : Fin mFin n) (h : PermCond c c1 σ) :

                                    Given a permutation σ : Fin m → Fin n of indices satisfying PermCond through h, and a tensor t, permT σ h t is the tensor tensor permuted accordinge to σ.

                                    Equations
                                    Instances For
                                      theorem TensorSpecies.Tensor.permT_pure {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} {σ : Fin mFin n} (h : PermCond c c1 σ) (p : Pure S c) :
                                      (permT σ h) p.toTensor = (Pure.permP σ h p).toTensor
                                      @[simp]
                                      theorem TensorSpecies.Tensor.Pure.permP_id_self {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} (p : Pure S c) :
                                      permP id p = p
                                      @[simp]
                                      theorem TensorSpecies.Tensor.permT_id_self {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} (t : S.Tensor c) :
                                      (permT id ) t = t
                                      theorem TensorSpecies.Tensor.permT_congr_eq_id {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} (t : S.Tensor c) (σ : Fin nFin n) ( : PermCond c c σ) (h : σ = id) :
                                      (permT σ ) t = t
                                      theorem TensorSpecies.Tensor.permT_congr_eq_id' {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n : } {c : Fin nS.C} (t t1 : S.Tensor c) (σ : Fin nFin n) ( : PermCond c c σ) (h : σ = id) (ht : t = t1) :
                                      (permT σ ) t = t1
                                      @[simp]
                                      theorem TensorSpecies.Tensor.permT_equivariant {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} {σ : Fin mFin n} (h : PermCond c c1 σ) (g : G) (t : S.Tensor c) :
                                      (permT σ h) (g t) = g (permT σ h) t
                                      theorem TensorSpecies.Tensor.Pure.permP_congr {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} {σ σ1 : Fin mFin n} {h : PermCond c c1 σ} {h1 : PermCond c c1 σ1} {p p1 : Pure S c} (hmap : σ = σ1) (hpure : p = p1) :
                                      permP σ h p = permP σ1 h1 p1
                                      theorem TensorSpecies.Tensor.permT_congr {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} {σ σ1 : Fin mFin n} {h : PermCond c c1 σ} {h1 : PermCond c c1 σ1} (hmap : σ = σ1) {t t1 : S.Tensor c} (htensor : t = t1) :
                                      (permT σ h) t = (permT σ1 h1) t1
                                      @[simp]
                                      theorem TensorSpecies.Tensor.Pure.permP_permP {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m1 m2 : } {c : Fin nS.C} {c1 : Fin m1S.C} {c2 : Fin m2S.C} {σ : Fin m1Fin n} {σ2 : Fin m2Fin m1} (h : PermCond c c1 σ) (h2 : PermCond c1 c2 σ2) (p : Pure S c) :
                                      permP σ2 h2 (permP σ h p) = permP (σ σ2) p
                                      @[simp]
                                      theorem TensorSpecies.Tensor.permT_permT {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m1 m2 : } {c : Fin nS.C} {c1 : Fin m1S.C} {c2 : Fin m2S.C} {σ : Fin m1Fin n} {σ2 : Fin m2Fin m1} (h : PermCond c c1 σ) (h2 : PermCond c1 c2 σ2) (t : S.Tensor c) :
                                      (permT σ2 h2) ((permT σ h) t) = (permT (σ σ2) ) t
                                      theorem TensorSpecies.Tensor.permT_basis_repr_symm_apply {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {n m : } {c : Fin nS.C} {c1 : Fin mS.C} {σ : Fin mFin n} (h : PermCond c c1 σ) (t : S.Tensor c) (b : ComponentIdx c1) :
                                      ((basis c1).repr ((permT σ h) t)) b = ((basis c).repr t) fun (i : Fin n) => Fin.cast (b (PermCond.inv σ h i))

                                      field #

                                      noncomputable def TensorSpecies.Tensor.toField {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {c : Fin 0S.C} :

                                      The linear map between tensors with zero indices and the underlying field k.

                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem TensorSpecies.Tensor.toField_pure {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {c : Fin 0S.C} (p : Pure S c) :
                                        @[simp]
                                        theorem TensorSpecies.Tensor.toField_basis_default {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {c : Fin 0S.C} :
                                        theorem TensorSpecies.Tensor.toField_eq_repr {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {c : Fin 0S.C} (t : S.Tensor c) :
                                        toField t = ((basis c).repr t) fun (j : Fin 0) => j.elim0
                                        @[simp]
                                        theorem TensorSpecies.Tensor.toField_equivariant {k : Type} [CommRing k] {G : Type} [Group G] {S : TensorSpecies k G} {c : Fin 0S.C} (g : G) (t : S.Tensor c) :