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
      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. #

      theorem IndexNotation.OverColor.Hom.ext {C : Type} {f g : OverColor C} (m n : f g) (h : m.hom = n.hom) :
      m = n

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

      theorem IndexNotation.OverColor.Hom.ext_iff {C : Type} {f g : OverColor C} (m n : f g) :
      (∀ (x : f.left), m.hom.left x = n.hom.left x) m = n

      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.instMonoidalCategoryStruct_whiskerRight_inv_left (C : Type) {X₁✝ X₂✝ : OverColor C} (m : X₁✝ X₂✝) (X : OverColor C) (a✝ : ((fun (f g : OverColor C) => CategoryTheory.Over.mk (Sum.elim f.hom g.hom)) X₂✝ X).left) :
          @[simp]
          theorem IndexNotation.OverColor.instMonoidalCategoryStruct_tensorHom_inv_left (C : Type) {X₁ Y₁ X₂ Y₂ : OverColor C} (f : X₁ Y₁) (g : X₂ Y₂) (a✝ : (CategoryTheory.Over.mk (Sum.elim Y₁.hom Y₂.hom)).left) :
          @[simp]
          theorem IndexNotation.OverColor.instMonoidalCategoryStruct_whiskerRight_hom_left (C : Type) {X₁✝ X₂✝ : OverColor C} (m : X₁✝ X₂✝) (X : OverColor C) (a✝ : ((fun (f g : OverColor C) => CategoryTheory.Over.mk (Sum.elim f.hom g.hom)) X₁✝ X).left) :
          @[simp]
          theorem IndexNotation.OverColor.instMonoidalCategoryStruct_tensorHom_hom_left (C : Type) {X₁ Y₁ X₂ Y₂ : OverColor C} (f : X₁ Y₁) (g : X₂ Y₂) (a✝ : (CategoryTheory.Over.mk (Sum.elim X₁.hom X₂.hom)).left) :

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

          Equations

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

          Equations
          • One or more equations did not get rendered due to their size.
          theorem IndexNotation.OverColor.Hom.fin_ext {C : Type} {n : } {f g : Fin nC} (σ σ' : mk f mk g) (h : ∀ (i : Fin n), σ.hom.left i = σ'.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
                  theorem IndexNotation.OverColor.mkIso_hom_hom_left {X C : Type} {c1 c2 : XC} (h : c1 = c2) :
                  @[simp]
                  theorem IndexNotation.OverColor.mkIso_hom_hom_left_apply {X C : Type} {c1 c2 : XC} (h : c1 = c2) (x : X) :
                  (mkIso h).hom.hom.left 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) :