Single-object quiver #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Single object quiver with a given arrows type.
Main definitions #
Given a type α
, single_obj α
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
to_hom
.
More generally, a list of elements of a
can be reinterpreted as a path from star α
to
itself using path_equiv_list
.
Equations
- quiver.single_obj.quiver α = {hom := λ (_x _x : quiver.single_obj α), α}
The single object in single_obj α
.
Equations
Equations
Equip single_obj α
with a reverse operation.
Equations
- quiver.single_obj.has_reverse rev = {reverse' := λ (_x _x : quiver.single_obj α), rev}
Equip single_obj α
with an involutive reverse operation.
Equations
- quiver.single_obj.has_involutive_reverse rev h = {to_has_reverse := quiver.single_obj.has_reverse rev, inv' := _}
The type of arrows from star α
to itself is equivalent to the original type α
.
Equations
Prefunctors between two single_obj
quivers correspond to functions between the corresponding
arrows types.
Equations
- quiver.single_obj.to_prefunctor = {to_fun := λ (f : α → β), {obj := id (quiver.single_obj α), map := λ (_x _x : quiver.single_obj α), f}, inv_fun := λ (f : quiver.single_obj α ⥤q quiver.single_obj β) (a : α), f.map (⇑quiver.single_obj.to_hom a), left_inv := _, right_inv := _}
Auxiliary definition for quiver.single_obj.path_equiv_list
.
Converts a path in the quiver single_obj α
into a list of elements of type a
.
Auxiliary definition for quiver.single_obj.path_equiv_list
.
Converts a list of elements of type α
into a path in the quiver single_obj α
.
Paths in single_obj α
quiver correspond to lists of elements of type α
.