Symmetric quivers and arrow reversal #
This file contains constructions related to symmetric quivers:
- Symmetrify Vadds formal inverses to each arrow of- V.
- HasReverseis the class of quivers where each arrow has an assigned formal inverse.
- HasInvolutiveReverseextends- HasReverseby requiring that the reverse of the reverse is equal to the original arrow.
- Prefunctor.PreserveReverseis the class of prefunctors mapping reverses to reverses.
- Symmetrify.of,- Symmetrify.lift, and the associated lemmas witness the universal property of- Symmetrify.
A type synonym for the symmetrized quiver (with an arrow both ways for each original arrow).
NB: this does not work for Prop-valued quivers. It requires [Quiver.{v+1} V].
Equations
- Quiver.Symmetrify V = V
Instances For
A quiver HasReverse if we can reverse an arrow p from a to b to get an arrow
p.reverse from b to a.
- the map which sends an arrow to its reverse 
Instances
Reverse the direction of an arrow.
Equations
Instances For
A quiver HasInvolutiveReverse if reversing twice is the identity.
- reverseis involutive
Instances
A prefunctor preserving reversal of arrows
- The image of a reverse is the reverse of the image. 
Instances
Equations
- Quiver.instHasReverseSymmetrify = { reverse' := fun {a b : Quiver.Symmetrify V} (e : a ⟶ b) => Sum.swap e }
Equations
- Quiver.instHasInvolutiveReverseSymmetrify = { reverse' := fun {a b : Quiver.Symmetrify V} (e : a ⟶ b) => Sum.swap e, inv' := ⋯ }
Shorthand for the "forward" arrow corresponding to f in symmetrify V
Instances For
Shorthand for the "backward" arrow corresponding to f in symmetrify V
Instances For
Reverse the direction of a path.
Equations
- Quiver.Path.nil.reverse = Quiver.Path.nil
- (p.cons e).reverse = (Quiver.reverse e).toPath.comp p.reverse
Instances For
The inclusion of a quiver in its symmetrification
Instances For
Given a quiver V' with reversible arrows, a prefunctor to V' can be lifted to one from
Symmetrify V to V'
Equations
- Quiver.Symmetrify.lift φ = { obj := φ.obj, map := fun {X Y : Quiver.Symmetrify V} (x : X ⟶ Y) => match x with | Sum.inl g => φ.map g | Sum.inr g => Quiver.reverse (φ.map g) }
Instances For
lift φ is the only prefunctor extending φ and preserving reverses.
A prefunctor canonically defines a prefunctor of the symmetrifications.
Equations
- φ.symmetrify = { obj := φ.obj, map := fun {X Y : Quiver.Symmetrify U} => Sum.map φ.map φ.map }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.