PhysLean Documentation

PhysLean.Relativity.Tensors.Color.Basic

Color #

In the context of tensors Color is defined as the type of indices of a tensor. For example if A_μ^ν is a real Lorentz tensors, we say it has indicies of color [down, up]. For complex Lorentz Tensors there are six different colors, corresponding to the up and down indices of the Lorentz group, the dotted and undotted Weyl fermion indices.

Note if you only want to work with tensors, and not understand their implementation you can safely ignore these files.

Overview of directory #

This file

Let C be the type of colors for a given species of tensor. In this file we define the category OverColor C. The objects of OverColor C correspond to allowed colorings of indices represented as a map X → C from a type X to C. Usually X will be Fin n for some n : ℕ. The morphisms of OverColor C correspond to color-preserving permutaitons of indices.

We also define here a symmetric-monoidal structure on OverColor C.

Discrete

The file Discrete contains some basic properties of the category Discrete C.

Lift

The file Lift we define the lift of a functor F : Discrete C ⥤ Rep k G to a symmetric monodial functor OverColor C ⥤ Rep k G, given by taking tensor products.

References #

The core of the category of Types over C.

Equations
Instances For
    def IndexNotation.OverColor.mk {X C : Type} (f : XC) :

    Make an object of OverColor C from a map X → C.

    Equations
    Instances For
      @[reducible, inline]

      The underlying morphism in the category of Types of a object f in OverColor C.

      Equations
      Instances For
        @[reducible, inline]

        The underlying object in the category of Types of a object f in OverColor C.

        Equations
        Instances For
          theorem IndexNotation.OverColor.mk_hom {X C : Type} (f : XC) :
          (mk f).hom = f
          theorem IndexNotation.OverColor.mk_left {X C : Type} (f : XC) :
          (mk f).left = X

          Morphisms in the OverColor category. #

          @[reducible, inline]
          abbrev CategoryTheory.CoreHom.hom {C : Type} {f g : IndexNotation.OverColor C} (m : f g) :
          f.of g.of

          The underlying morphism in the category of Types of a morphism m in OverColor C.

          Equations
          Instances For
            @[reducible, inline]
            abbrev CategoryTheory.CoreHom.inv {C : Type} {f g : IndexNotation.OverColor C} (m : f g) :
            g.of f.of

            The underlying inverse-morphism in the category of Types of a morphism m in OverColor C.

            Equations
            Instances For
              @[reducible, inline]
              abbrev CategoryTheory.CoreHom.symm {C : Type} {f g : IndexNotation.OverColor C} (m : f g) :
              g f

              The inverse of a morphism in OverColor C.

              Equations
              Instances For

                If m and n are morphisms in OverColor C, they are equal if their underlying morphisms in Over C are equal.

                Given a hom in OverColor C the underlying equivalence between types.

                Equations
                Instances For
                  @[simp]

                  The equivalence of types underlying the identity morphism is the reflexive equivalence.

                  @[simp]

                  The function toEquiv obeys compositions.

                  theorem IndexNotation.OverColor.Hom.toEquiv_symm_apply {C : Type} {f g : OverColor C} (m : f g) (i : g.left) :
                  f.hom ((toEquiv m).symm i) = g.hom i
                  theorem IndexNotation.OverColor.Hom.toEquiv_comp_inv_apply {C : Type} {f g : OverColor C} (m : f g) (i : g.left) :
                  f.hom ((toEquiv m).symm i) = g.hom i
                  theorem IndexNotation.OverColor.Hom.toEquiv_comp_apply {C : Type} {f g : OverColor C} (m : f g) (i : f.left) :
                  f.hom i = g.hom ((toEquiv m) i)
                  def IndexNotation.OverColor.Hom.toIso {C : Type} {f g : OverColor C} (m : f g) :
                  f g

                  Given a morphism in OverColor C, the corresponding isomorphism.

                  Equations
                  Instances For

                    The monoidal structure on OverColor C. #

                    The category OverColor C can, through the disjoint union, be given the structure of a symmetric monoidal category.

                    The category OverColor C carries an instance of a Monoidal category structure.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    @[simp]
                    theorem IndexNotation.OverColor.tensorHom_iso_hom_left (C : Type) {X₁ Y₁ X₂ Y₂ : OverColor C} (f : X₁ Y₁) (g : X₂ Y₂) (a✝ : ((fun (f g : OverColor C) => mk (Sum.elim f.hom g.hom)) X₁ X₂).of.left) :
                    @[simp]
                    theorem IndexNotation.OverColor.tensorHom_iso_inv_left (C : Type) {X₁ Y₁ X₂ Y₂ : OverColor C} (f : X₁ Y₁) (g : X₂ Y₂) (a✝ : ((fun (f g : OverColor C) => mk (Sum.elim f.hom g.hom)) Y₁ Y₂).of.left) :
                    @[simp]
                    theorem IndexNotation.OverColor.whiskerRight_iso_inv_left (C : Type) {X₁✝ X₂✝ : OverColor C} (m : X₁✝ X₂✝) (X : OverColor C) (a✝ : (mk (Sum.elim X₂✝.hom X.hom)).of.left) :
                    @[simp]
                    theorem IndexNotation.OverColor.whiskerRight_iso_hom_left (C : Type) {X₁✝ X₂✝ : OverColor C} (m : X₁✝ X₂✝) (X : OverColor C) (a✝ : (mk (Sum.elim X₁✝.hom X.hom)).of.left) :

                    The category OverColor C carries an instance of a Monoidal category.

                    Equations
                    • One or more equations did not get rendered due to their size.

                    The category OverColor C carries an instance of a braided category.

                    Equations
                    • One or more equations did not get rendered due to their size.

                    The category OverColor C carries an instance of a symmetric monoidal category.

                    Equations
                    theorem IndexNotation.OverColor.Hom.fin_ext {C : Type} {n : } {f g : Fin nC} (σ σ' : mk f mk g) (h : ∀ (i : Fin n), (CategoryTheory.CoreHom.hom σ).left i = (CategoryTheory.CoreHom.hom σ').left i) :
                    σ = σ'
                    @[simp]
                    theorem IndexNotation.OverColor.β_hom_toEquiv {X C Y : Type} (f : XC) (g : YC) :
                    @[simp]
                    theorem IndexNotation.OverColor.β_inv_toEquiv {X C Y : Type} (f : XC) (g : YC) :
                    @[simp]
                    theorem IndexNotation.OverColor.whiskeringLeft_toEquiv {X C Y Z : Type} (f : XC) (g : YC) (h : ZC) (σ : mk f mk g) :
                    @[simp]
                    theorem IndexNotation.OverColor.whiskeringRight_toEquiv {X C Y Z : Type} (f : XC) (g : YC) (h : ZC) (σ : mk f mk g) :
                    @[simp]
                    theorem IndexNotation.OverColor.α_hom_toEquiv {X C Y Z : Type} (f : XC) (g : YC) (h : ZC) :
                    @[simp]
                    theorem IndexNotation.OverColor.α_inv_toEquiv {X C Y Z : Type} (f : XC) (g : YC) (h : ZC) :

                    Isomorphisms. #

                    def IndexNotation.OverColor.equivToIso {X C Y : Type} {c : XC} (e : X Y) :
                    mk c mk (c e.symm)

                    The isomorphism between c : X → C and c ∘ e.symm as objects in OverColor C for an equivalence e.

                    Equations
                    Instances For
                      @[simp]
                      theorem IndexNotation.OverColor.equivToIso_homToEquiv {X C Y : Type} {c : XC} (e : X Y) :
                      @[simp]
                      def IndexNotation.OverColor.equivToHom {X C Y : Type} {c : XC} (e : X Y) :
                      mk c mk (c e.symm)

                      The homomorphism between c : X → C and c ∘ e.symm as objects in OverColor C for an equivalence e.

                      Equations
                      Instances For

                        Given a map X ⊕ Y → C, the isomorphism mk c ≅ mk (c ∘ Sum.inl) ⊗ mk (c ∘ Sum.inr).

                        Equations
                        Instances For
                          @[simp]
                          def IndexNotation.OverColor.mkIso {X C : Type} {c1 c2 : XC} (h : c1 = c2) :
                          mk c1 mk c2

                          The isomorphism between objects in OverColor C given equality of maps.

                          Equations
                          Instances For
                            @[simp]
                            theorem IndexNotation.OverColor.mkIso_hom_hom_left_apply {X C : Type} {c1 c2 : XC} (h : c1 = c2) (x : X) :
                            @[simp]
                            theorem IndexNotation.OverColor.equivToIso_mkIso_hom {X C : Type} {c1 c2 : XC} (h : c1 = c2) :
                            @[simp]
                            theorem IndexNotation.OverColor.equivToIso_mkIso_inv {X C : Type} {c1 c2 : XC} (h : c1 = c2) :
                            def IndexNotation.OverColor.equivToHomEq {X C Y : Type} {c : XC} {c1 : YC} (e : X Y) (h : ∀ (x : Y), c1 x = (c e.symm) x := by try {simp; decide }; try decide) :
                            mk c mk c1

                            The morphism from mk c to mk c1 obtained by an equivalence and an equality lemma.

                            Equations
                            Instances For
                              @[simp]
                              theorem IndexNotation.OverColor.equivToHomEq_hom_left {X C Y : Type} {c : XC} {c1 : YC} (e : X Y) (h : ∀ (x : Y), c1 x = (c e.symm) x) :
                              @[simp]
                              theorem IndexNotation.OverColor.equivToHomEq_toEquiv {X C Y : Type} {c : XC} {c1 : YC} (e : X Y) (h : ∀ (x : Y), c1 x = (c e.symm) x) :