Documentation

Mathlib.Combinatorics.Quiver.SingleObj

Single-object quiver #

Single object quiver with a given arrows type.

Main definitions #

Given a type α, SingleObj α is the Unit type, whose single object is called star α, with Quiver structure such that star α ⟶ star α is the type α. An element x : α can be reinterpreted as an element of star α ⟶ star α using toHom. More generally, a list of elements of a can be reinterpreted as a path from star α to itself using pathEquivList.

Type tag on Unit used to define single-object quivers.

Equations
Instances For
    Equations
    instance Quiver.SingleObj.inst (α : Type u_1) :
    Equations

    The single object in SingleObj α.

    Equations
    Instances For
      theorem Quiver.SingleObj.ext {α : Type u_1} {x y : SingleObj α} :
      x = y
      @[reducible, inline]
      abbrev Quiver.SingleObj.hasReverse {α : Type u_1} (rev : αα) :

      Equip SingleObj α with a reverse operation.

      Equations
      Instances For
        @[reducible, inline]

        Equip SingleObj α with an involutive reverse operation.

        Equations
        Instances For
          def Quiver.SingleObj.toHom {α : Type u_1} :
          α (star α star α)

          The type of arrows from star α to itself is equivalent to the original type α.

          Equations
          Instances For
            @[simp]
            theorem Quiver.SingleObj.toHom_apply {α : Type u_1} (a : α) :
            toHom a = a
            @[simp]
            theorem Quiver.SingleObj.toHom_symm_apply {α : Type u_1} (a : α) :
            toHom.symm a = a
            def Quiver.SingleObj.toPrefunctor {α : Type u_1} {β : Type u_2} :
            (αβ) SingleObj α ⥤q SingleObj β

            Prefunctors between two SingleObj quivers correspond to functions between the corresponding arrows types.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem Quiver.SingleObj.toPrefunctor_apply_obj {α : Type u_1} {β : Type u_2} (f : αβ) (a : SingleObj α) :
              (toPrefunctor f).obj a = id a
              @[simp]
              theorem Quiver.SingleObj.toPrefunctor_symm_apply {α : Type u_1} {β : Type u_2} (f : SingleObj α ⥤q SingleObj β) (a : α) :
              toPrefunctor.symm f a = f.map (toHom a)
              @[simp]
              theorem Quiver.SingleObj.toPrefunctor_apply_map {α : Type u_1} {β : Type u_2} (f : αβ) {X✝ Y✝ : SingleObj α} (a✝ : α) :
              (toPrefunctor f).map a✝ = f a✝
              theorem Quiver.SingleObj.toPrefunctor_id {α : Type u_1} :
              toPrefunctor id = 𝟭q (SingleObj α)
              theorem Quiver.SingleObj.toPrefunctor_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} (f : αβ) (g : βγ) :
              toPrefunctor (g f) = toPrefunctor f ⋙q toPrefunctor g
              @[simp]
              theorem Quiver.SingleObj.toPrefunctor_symm_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} (f : SingleObj α ⥤q SingleObj β) (g : SingleObj β ⥤q SingleObj γ) :
              toPrefunctor.symm (f ⋙q g) = toPrefunctor.symm g toPrefunctor.symm f
              def Quiver.SingleObj.pathToList {α : Type u_1} {x : SingleObj α} :
              Path (star α) xList α

              Auxiliary definition for quiver.SingleObj.pathEquivList. Converts a path in the quiver single_obj α into a list of elements of type a.

              Instances For
                def Quiver.SingleObj.listToPath {α : Type u_1} :
                List αPath (star α) (star α)

                Auxiliary definition for quiver.SingleObj.pathEquivList. Converts a list of elements of type α into a path in the quiver SingleObj α.

                Equations
                Instances For
                  theorem Quiver.SingleObj.listToPath_pathToList {α : Type u_1} {x : SingleObj α} (p : Path (star α) x) :

                  Paths in SingleObj α quiver correspond to lists of elements of type α.

                  Equations
                  Instances For
                    @[simp]
                    theorem Quiver.SingleObj.pathEquivList_nil {α : Type u_1} :
                    pathEquivList Path.nil = []
                    @[simp]
                    theorem Quiver.SingleObj.pathEquivList_cons {α : Type u_1} (p : Path (star α) (star α)) (a : star α star α) :
                    pathEquivList (p.cons a) = a :: pathToList p
                    @[simp]
                    theorem Quiver.SingleObj.pathEquivList_symm_cons {α : Type u_1} (l : List α) (a : α) :
                    pathEquivList.symm (a :: l) = (pathEquivList.symm l).cons a