Covering #
This file defines coverings of quivers as prefunctors that are bijective on the so-called stars and costars at each vertex of the domain.
Main definitions #
quiver.star u
is the type of all arrows with sourceu
;quiver.costar u
is the type of all arrows with targetu
;prefunctor.star φ u
is the obvious functionstar u → star (φ.obj u)
;prefunctor.costar φ u
is the obvious functioncostar u → costar (φ.obj u)
;prefunctor.is_covering φ
means thatφ.star u
andφ.costar u
are bijections for allu
;quiver.star_path u
is the type of all paths with sourceu
;prefunctor.star_path u
is the obvious functionstar_path u → star_path (φ.obj u)
.
Main statements #
prefunctor.is_covering.path_star_bijective
states that ifφ
is a covering, thenφ.star_path u
is a bijection for allu
. In other words, every path in the codomain ofφ
lifts uniquely to its domain.
TODO #
Clean up the namespaces by renaming prefunctor
to quiver.prefunctor
.
Tags #
Cover, covering, quiver, path, lift
The quiver.star
at a vertex is the collection of arrows whose source is the vertex.
The type quiver.star u
is defined to be Σ (v : U), (u ⟶ v)
.
Equations
- quiver.star u = Σ (v : U), u ⟶ v
Constructor for quiver.star
. Defined to be sigma.mk
.
Equations
- quiver.star.mk f = ⟨v, f⟩
The quiver.costar
at a vertex is the collection of arrows whose target is the vertex.
The type quiver.costar v
is defined to be Σ (u : U), (u ⟶ v)
.
Equations
- quiver.costar v = Σ (u : U), u ⟶ v
Constructor for quiver.costar
. Defined to be sigma.mk
.
Equations
- quiver.costar.mk f = ⟨u, f⟩
A prefunctor induces a map of quiver.star
at every vertex.
Equations
- φ.star u = λ (F : quiver.star u), quiver.star.mk (φ.map F.snd)
A prefunctor induces a map of quiver.costar
at every vertex.
Equations
- φ.costar u = λ (F : quiver.costar u), quiver.costar.mk (φ.map F.snd)
- star_bijective : ∀ (u : U), function.bijective (φ.star u)
- costar_bijective : ∀ (u : U), function.bijective (φ.costar u)
A prefunctor is a covering of quivers if it defines bijections on all stars and costars.
The star of the symmetrification of a quiver at a vertex u
is equivalent to the sum of the
star and the costar at u
in the original quiver.
Equations
- quiver.symmetrify_star u = equiv.sigma_sum_distrib (λ (v : quiver.symmetrify U), quiver.symmetrify.of.obj u ⟶ v) (λ (v : quiver.symmetrify U), v ⟶ quiver.symmetrify.of.obj u)
The costar of the symmetrification of a quiver at a vertex u
is equivalent to the sum of the
costar and the star at u
in the original quiver.
Equations
- quiver.symmetrify_costar u = equiv.sigma_sum_distrib (λ (u_1 : quiver.symmetrify U), u_1 ⟶ quiver.symmetrify.of.obj u) (λ (u_1 : quiver.symmetrify U), quiver.symmetrify.of.obj u ⟶ u_1)
The path star at a vertex u
is the type of all paths starting at u
.
The type quiver.path_star u
is defined to be Σ v : U, path u v
.
Equations
- quiver.path_star u = Σ (v : U), quiver.path u v
Constructor for quiver.path_star
. Defined to be sigma.mk
.
Equations
- quiver.path_star.mk p = ⟨v, p⟩
A prefunctor induces a map of path stars.
Equations
- φ.path_star u = λ (p : quiver.path_star u), quiver.path_star.mk (φ.map_path p.snd)
In a quiver with involutive inverses, the star and costar at every vertex are equivalent.
This map is induced by quiver.reverse
.
Equations
- quiver.star_equiv_costar u = {to_fun := λ (e : quiver.star u), ⟨e.fst, quiver.reverse e.snd⟩, inv_fun := λ (e : quiver.costar u), ⟨e.fst, quiver.reverse e.snd⟩, left_inv := _, right_inv := _}