Documentation

LeanPool.Polylean.Complexes.Structures.Quiver

class LeanPool.Polylean.Quiver (V : Sort u) :
Sort (max u (v + 1))

A Quiver G on a type V of vertices assigns to every pair a b : V of vertices a type a ⟶ b of arrows from a to b.

It is a common generalisation of multigraphs and categories. This definition is taken from mathlib: https://leanprover-community.github.io/mathlib_docs/combinatorics/quiver/basic.html#quiver.

  • hom : VVSort v

    The type of arrows from one vertex to another.

Instances

    Arrow notation for the hom type of a quiver.

    Equations
    Instances For
      structure LeanPool.Polylean.Quiver.PreFunctor {V : Sort u_1} {V' : Sort u_2} (Q : Quiver V) (Q' : Quiver V') :
      Sort (max (max (max (max 1 u_1) u_2) u_3) u_4)

      A pre-functor is a morphism of quivers.

      • obj : VV'

        The map on vertices.

      • map {X Y : V} : (X Y) → (self.obj X self.obj Y)

        The map on arrows.

      Instances For

        The identity morphism between quivers.

        Equations
        Instances For
          def LeanPool.Polylean.Quiver.PreFunctor.comp {U : Sort u_1} {V : Sort u_2} {W : Sort u_3} {QU : Quiver U} {QV : Quiver V} {QW : Quiver W} (F : QU.PreFunctor QV) (G : QV.PreFunctor QW) :

          Composition of morphisms between quivers.

          Equations
          Instances For
            inductive LeanPool.Polylean.Path {V : Sort u_1} [Quiver V] :
            VVSort (max (max 1 u_1) u_2)

            Paths in a quiver.

            Instances For
              def LeanPool.Polylean.Quiver.toPath {V : Sort u_1} [Quiver V] {A B : V} (e : A B) :
              Path A B

              Convert a single quiver arrow to a path.

              Equations
              Instances For
                @[reducible, match_pattern, inline]
                abbrev LeanPool.Polylean.Path.nil' {V : Sort u_1} [Quiver V] (A : V) :
                Path A A

                The empty path at a vertex, with its vertex explicit for pattern matching.

                Equations
                Instances For
                  @[reducible, match_pattern, inline]
                  abbrev LeanPool.Polylean.Path.cons' {V : Sort u_1} [Quiver V] (A B C : V) :
                  (A B) → Path B CPath A C

                  A path formed by adding an edge to the front, with endpoints explicit for matching.

                  Equations
                  Instances For
                    @[reducible, match_pattern, inline]
                    abbrev LeanPool.Polylean.Path.snoc {V : Sort u_1} [Quiver V] {A B C : V} :
                    Path A B(B C) → Path A C

                    Concatenate an edge to the end of a path.

                    Equations
                    Instances For
                      @[reducible, match_pattern, inline]
                      abbrev LeanPool.Polylean.Path.snoc' {V : Sort u_1} [Quiver V] (A B C : V) :
                      Path A B(B C) → Path A C

                      Append an edge to the end of a path, with endpoints explicit for matching.

                      Equations
                      Instances For
                        def LeanPool.Polylean.Path.append {V : Sort u_1} [Quiver V] {A B C : V} :
                        Path A BPath B CPath A C

                        Concatenation of paths.

                        Equations
                        Instances For
                          def LeanPool.Polylean.Path.length {V : Sort u_1} [Quiver V] {A B : V} :
                          Path A BNat

                          The length of a path.

                          Equations
                          Instances For
                            @[simp]
                            theorem LeanPool.Polylean.Path.nil_append {V : Sort u_1} [Quiver V] {A B : V} (p : Path A B) :
                            @[simp]
                            theorem LeanPool.Polylean.Path.append_nil {V : Sort u_1} [Quiver V] {A B : V} (p : Path A B) :
                            theorem LeanPool.Polylean.Path.snoc_cons {V : Sort u_1} [Quiver V] {A B C D : V} (e : A B) (p : Path B C) (e' : C D) :
                            (cons e p).snoc e' = cons e (p.snoc e')
                            theorem LeanPool.Polylean.Path.append_snoc {V : Sort u_1} [Quiver V] {A B C D : V} (p : Path A B) (p' : Path B C) (e : C D) :
                            p.append (p'.snoc e) = (p.append p').snoc e
                            theorem LeanPool.Polylean.Path.append_cons {V : Sort u_1} [Quiver V] {A B C D : V} (p : Path A B) (e : B C) (p' : Path C D) :
                            p.append (cons e p') = (p.snoc e).append p'
                            theorem LeanPool.Polylean.Path.append_assoc {V : Sort u_1} [Quiver V] {A B C D : V} (p : Path A B) (q : Path B C) (r : Path C D) :
                            (p.append q).append r = p.append (q.append r)
                            theorem LeanPool.Polylean.Path.nil_length {V : Sort u_1} [Quiver V] {A : V} (p : Path A A) :
                            theorem LeanPool.Polylean.Path.snoc_length {V : Sort u_1} [Quiver V] {A B C : V} (p : Path A B) (e : B C) :
                            theorem LeanPool.Polylean.Path.length_append {V : Sort u_1} [Quiver V] {A B C : V} (p : Path A B) (q : Path B C) :
                            def LeanPool.Polylean.Path.first {V : Sort u_1} [Quiver V] {A B : V} :
                            Path A BV

                            The end-point of the first edge in the path.

                            Equations
                            Instances For
                              theorem LeanPool.Polylean.Path.first_cons {V : Sort u_1} [Quiver V] (A B C : V) (e : A B) (p : Path B C) :
                              (cons e p).first = B
                              theorem LeanPool.Polylean.Path.last_snoc {V : Sort u_1} [Quiver V] (A B C : V) (p : Path A B) (e : B C) :
                              (p.snoc e).last = B
                              @[reducible, inline]
                              abbrev LeanPool.Polylean.Loop {V : Sort u_1} [Quiver V] (A : V) :
                              Sort (max (max 1 u_1) u_2)

                              A loop is a path whose source and target are the same vertex.

                              Equations
                              Instances For
                                def LeanPool.Polylean.Loop.toPath {V : Sort u_1} [Quiver V] (A : V) :
                                Loop APath A A

                                Regard a loop as a path.

                                Equations
                                Instances For
                                  @[reducible, inline]
                                  abbrev LeanPool.Polylean.Loop.nil {V : Sort u_1} [Quiver V] (A : V) :

                                  The empty loop.

                                  Equations
                                  Instances For
                                    @[reducible, inline]
                                    abbrev LeanPool.Polylean.Loop.next {V : Sort u_1} [Quiver V] (A : V) :
                                    Loop AV

                                    The next vertex reached by the first edge of a loop.

                                    Equations
                                    Instances For
                                      @[reducible, inline]
                                      abbrev LeanPool.Polylean.Loop.concat {V : Sort u_1} [Quiver V] (A : V) :
                                      Loop ALoop ALoop A

                                      Concatenate two loops.

                                      Equations
                                      Instances For