Documentation

Mathlib.CategoryTheory.PathCategory.Basic

The category paths on a quiver. #

When C is a quiver, paths C is the category of paths.

When the quiver is itself a category #

We provide path_composition : paths C ⥤ C.

We check that the quotient of the path category of a category by the canonical relation (paths are related if they compose to the same path) is equivalent to the original category.

def CategoryTheory.Paths (V : Type u₁) :
Type u₁

A type synonym for the category of paths in a quiver.

Instances For
    @[implicit_reducible]
    @[implicit_reducible]
    def CategoryTheory.Paths.of (V : Type u₁) [Quiver V] :

    The inclusion of a quiver V into its path category, as a prefunctor.

    Instances For
      @[simp]
      theorem CategoryTheory.Paths.of_map (V : Type u₁) [Quiver V] {X✝ Y✝ : V} (f : X✝ Y✝) :
      (of V).map f = f.toPath
      @[simp]
      theorem CategoryTheory.Paths.of_obj (V : Type u₁) [Quiver V] (X : V) :
      (of V).obj X = X
      theorem CategoryTheory.Paths.induction_fixed_source {V : Type u₁} [Quiver V] {a : Paths V} (P : {b : Paths V} → (a b) → Prop) (id : P (CategoryStruct.id a)) (comp : ∀ {u v : V} (p : a (of V).obj u) (q : u v), P pP (CategoryStruct.comp p ((of V).map q))) {b : Paths V} (f : a b) :
      P f

      To prove a property on morphisms of a path category with given source a, it suffices to prove it for the identity and prove that the property is preserved under composition on the right with length 1 paths.

      theorem CategoryTheory.Paths.induction_fixed_target {V : Type u₁} [Quiver V] {b : Paths V} (P : {a : Paths V} → (a b) → Prop) (id : P (CategoryStruct.id b)) (comp : ∀ {u v : V} (p : (of V).obj v b) (q : u v), P pP (CategoryStruct.comp ((of V).map q) p)) {a : Paths V} (f : a b) :
      P f

      To prove a property on morphisms of a path category with given target b, it suffices to prove it for the identity and prove that the property is preserved under composition on the left with length 1 paths.

      theorem CategoryTheory.Paths.induction {V : Type u₁} [Quiver V] (P : {a b : Paths V} → (a b) → Prop) (id : ∀ {v : V}, P (CategoryStruct.id ((of V).obj v))) (comp : ∀ {u v w : V} (p : (of V).obj u (of V).obj v) (q : v w), P pP (CategoryStruct.comp p ((of V).map q))) {a b : Paths V} (f : a b) :
      P f

      To prove a property on morphisms of a path category, it suffices to prove it for the identity and prove that the property is preserved under composition on the right with length 1 paths.

      theorem CategoryTheory.Paths.induction' {V : Type u₁} [Quiver V] (P : {a b : Paths V} → (a b) → Prop) (id : ∀ {v : V}, P (CategoryStruct.id ((of V).obj v))) (comp : ∀ {u v w : V} (p : u v) (q : (of V).obj v (of V).obj w), P qP (CategoryStruct.comp ((of V).map p) q)) {a b : Paths V} (f : a b) :
      P f

      To prove a property on morphisms of a path category, it suffices to prove it for the identity and prove that the property is preserved under composition on the left with length 1 paths.

      def CategoryTheory.Paths.lift {V : Type u₁} [Quiver V] {C : Type u_1} [Category.{v_1, u_1} C] (φ : V ⥤q C) :

      Any prefunctor from V lifts to a functor from paths V

      Instances For
        @[simp]
        theorem CategoryTheory.Paths.lift_nil {V : Type u₁} [Quiver V] {C : Type u_1} [Category.{v_1, u_1} C] (φ : V ⥤q C) (X : V) :
        @[simp]
        theorem CategoryTheory.Paths.lift_cons {V : Type u₁} [Quiver V] {C : Type u_1} [Category.{v_1, u_1} C] (φ : V ⥤q C) {X Y Z : V} (p : Quiver.Path X Y) (f : Y Z) :
        (lift φ).map (p.cons f) = CategoryStruct.comp ((lift φ).map p) (φ.map f)
        @[simp]
        theorem CategoryTheory.Paths.lift_toPath {V : Type u₁} [Quiver V] {C : Type u_1} [Category.{v_1, u_1} C] (φ : V ⥤q C) {X Y : V} (f : X Y) :
        (lift φ).map f.toPath = φ.map f
        theorem CategoryTheory.Paths.lift_spec {V : Type u₁} [Quiver V] {C : Type u_1} [Category.{v_1, u_1} C] (φ : V ⥤q C) :
        theorem CategoryTheory.Paths.lift_unique {V : Type u₁} [Quiver V] {C : Type u_1} [Category.{v_1, u_1} C] (φ : V ⥤q C) (Φ : Functor (Paths V) C) ( : of V ⋙q Φ.toPrefunctor = φ) :
        Φ = lift φ
        theorem CategoryTheory.Paths.ext_functor {V : Type u₁} [Quiver V] {C : Type u_1} [Category.{v_1, u_1} C] {F G : Functor (Paths V) C} (h_obj : F.obj = G.obj) (h : ∀ (a b : V) (e : a b), F.map e.toPath = CategoryStruct.comp (eqToHom ) (CategoryStruct.comp (G.map e.toPath) (eqToHom ))) :
        F = G

        Two functors out of a path category are equal when they agree on singleton paths.

        @[simp]
        theorem CategoryTheory.Prefunctor.mapPath_comp' (V : Type u₁) [Quiver V] (W : Type u₂) [Quiver W] (F : V ⥤q W) {X Y Z : Paths V} (f : X Y) (g : Y Z) :
        def CategoryTheory.composePath {C : Type u₁} [Category.{v₁, u₁} C] {X Y : C} :
        Quiver.Path X Y → (X Y)

        A path in a category can be composed to a single morphism.

        Instances For
          @[simp]
          theorem CategoryTheory.composePath_toPath {C : Type u₁} [Category.{v₁, u₁} C] {X Y : C} (f : X Y) :
          @[simp]

          Composition of paths as functor from the path category of a category to the category.

          Instances For
            @[simp]
            theorem CategoryTheory.pathComposition_map (C : Type u₁) [Category.{v₁, u₁} C] {X✝ Y✝ : Paths C} (f : X✝ Y✝) :

            The canonical relation on the path category of a category: two paths are related if they compose to the same morphism.

            Instances For

              The functor from a category to the canonical quotient of its path category.

              Instances For
                @[simp]

                The functor from the canonical quotient of a path category of a category to the original category.

                Instances For
                  @[simp]
                  theorem CategoryTheory.quotientPathsTo_map (C : Type u₁) [Category.{v₁, u₁} C] {X✝ Y✝ : Quotient (pathsHomRel C)} (hf : X✝ Y✝) :
                  (quotientPathsTo C).map hf = Quot.liftOn hf (fun (f : X✝.as Y✝.as) => composePath f)

                  The canonical quotient of the path category of a category is equivalent to the original category.

                  Instances For