Paths in quivers #
Given a quiver V
, we define the type of paths from a : V
to b : V
as an inductive
family. We define composition of paths and the action of prefunctors on paths.
Equations
- Quiver.Path.instInhabited = { default := Quiver.Path.nil }
theorem
Quiver.Path.comp_injective_left
{V : Type u}
[Quiver V]
{a b c : V}
(q : Path b c)
:
Function.Injective fun (p : Path a b) => p.comp q
@[simp]
theorem
Quiver.Path.toList_comp
{V : Type u}
[Quiver V]
{a b : V}
(p : Path a b)
{c : V}
(q : Path b c)
:
Quiver.Path.toList
is a contravariant functor. The inversion comes from Quiver.Path
and
List
having different preferred directions for adding elements.
theorem
Quiver.Path.toList_chain_nonempty
{V : Type u}
[Quiver V]
{a b : V}
(p : Path a b)
:
List.Chain (fun (x y : V) => Nonempty (y ⟶ x)) b p.toList
theorem
Quiver.Path.toList_injective
{V : Type u}
[Quiver V]
[∀ (a b : V), Subsingleton (a ⟶ b)]
(a b : V)
:
def
Prefunctor.mapPath
{V : Type u₁}
[Quiver V]
{W : Type u₂}
[Quiver W]
(F : V ⥤q W)
{a b : V}
:
Quiver.Path a b → Quiver.Path (F.obj a) (F.obj b)
The image of a path under a prefunctor.
Equations
- F.mapPath Quiver.Path.nil = Quiver.Path.nil
- F.mapPath (p.cons a_1) = (F.mapPath p).cons (F.map a_1)
Instances For
@[simp]
theorem
Prefunctor.mapPath_comp
{V : Type u₁}
[Quiver V]
{W : Type u₂}
[Quiver W]
(F : V ⥤q W)
{a b : V}
(p : Quiver.Path a b)
{c : V}
(q : Quiver.Path b c)
: