Orienting a simple graph and recovering its doubled quiver #
An orientation of a simple graph chooses exactly one dart over every edge. The chosen darts form a quiver with one arrow over each edge, and symmetrifying that quiver recovers the doubled quiver of the graph. This file constructs mutually inverse, reversal-preserving prefunctors which implement that identification.
The definition keeps the choice of orientation separate from the doubled quiver. In particular, the comparison does not impose an ordering on the graph's vertices: a linear order merely supplies one convenient witness that every graph admits an orientation.
Main definitions #
TauCeti.DoubledQuiver.Orientation: a choice of one dart from each reversed pair.TauCeti.DoubledQuiver.Orientation.ofLinearOrder: orient every edge from its smaller endpoint to its larger endpoint.SimpleGraph.Coloring.sourceSink: direct every edge toward thetrueendpoint of a two-colouring.TauCeti.DoubledQuiver.OrientedQuiver: the quiver of the chosen darts.TauCeti.DoubledQuiver.OrientedQuiver.homEquiv: its arrows over a pair of graph vertices are exactly the adjacency proofs whose dart the orientation selects.TauCeti.DoubledQuiver.OrientedQuiver.card_hom_ofLinearOrder,TauCeti.DoubledQuiver.OrientedQuiver.lt_of_path_of_length_pos_ofLinearOrder,TauCeti.DoubledQuiver.OrientedQuiver.le_of_path_ofLinearOrder, andTauCeti.DoubledQuiver.OrientedQuiver.isAcyclic_ofLinearOrder: arrow counts, path monotonicity, and acyclicity for the linear-order orientation.TauCeti.DoubledQuiver.OrientedQuiver.card_symmetrify_hom: symmetrifying an orientation recovers the adjacency counts of the graph.TauCeti.DoubledQuiver.OrientedQuiver.sum_card_hom_add_card_hom_mul: a vertex weight summed against the arrow counts of an orientation in both directions is its neighbour sum, via which a positive superadditive weight on the oriented quiver excludes isolated vertices (TauCeti.DoubledQuiver.OrientedQuiver.exists_adj_of_pos_two_mul_le_sum).TauCeti.DoubledQuiver.symmetrifyMap: the canonical prefunctor from the symmetrification of an oriented graph to its doubled quiver.TauCeti.DoubledQuiver.unsymmetrifyMap: its inverse prefunctor.TauCeti.exists_forall_exists_nonempty_reorient_hom: a neighbour choice without mutual choices gives a reorientation of any orientation with no sinks.
References #
The comparison uses Mathlib's universal property Quiver.Symmetrify.lift.
An orientation of a simple graph is a set of darts containing exactly one dart over each edge. The displayed condition says that a reversed dart is chosen exactly when the original dart is not chosen.
The set of darts belonging to the orientation.
Instances For
A reversed dart is not chosen exactly when the original dart is chosen.
The orientation induced by a linear order, with each edge directed from its smaller endpoint to its larger endpoint.
Instances For
A dart belongs to the linear-order orientation exactly when its source is smaller than its target.
The quiver obtained by retaining only the darts selected by an orientation.
Instances For
Include a graph vertex into the oriented quiver.
Instances For
The graph vertices and the vertices of an oriented quiver are canonically equivalent.
Instances For
The oriented quiver has finitely many vertices when the graph does.
The arrows of an oriented simple graph form a finite type between any two vertices.
The oriented-quiver arrow corresponding to a chosen dart.
Instances For
The arrows of the oriented quiver between two graph vertices are exactly the adjacency proofs
whose dart is selected by the orientation. This is the characteristic description of the quiver
structure, so consumers never need to unfold the Quiver instance.
Instances For
The characteristic description of the oriented-quiver arrows reads off the adjacency proof underlying the arrow of a selected dart.
The characteristic description of the oriented-quiver arrows sends a selected dart back to its arrow.
Every arrow of the oriented quiver comes from a dart selected by the orientation.
For the linear-order orientation, there is one arrow from i to j exactly when i < j
and the vertices are adjacent.
Along any positive-length path in the linear-order orientation, the start vertex is strictly smaller than the end vertex.
Along any path in the linear-order orientation, the start vertex is at most the end vertex.
Orienting every edge of a graph from the smaller vertex to the larger makes an acyclic quiver.
An orientation has one arrow, in total across the two directions, over each edge.
The symmetrification of an oriented graph has one arrow between two vertices exactly when they are adjacent: the chosen arrow over the edge or its formal reverse.
A weight on a graph read on an orientation: for every vertex i, the multigraph sum
∑_j (#(i ⟶ j) + #(j ⟶ i)) δ_j over the vertices of the oriented quiver is the neighbour sum
∑_{j ∼ i} δ_j, since an orientation has exactly one arrow over each edge.
A positive superadditive weight on an oriented graph excludes isolated vertices. Let δ
be a weight on the vertices of an orientation of a finite simple graph over an ordered
semiring, positive at every vertex, with 2 δ_i ≤ ∑_j (#(i ⟶ j) + #(j ⟶ i)) δ_j at every
vertex of the oriented quiver. Then every vertex of the graph has a neighbour.
Forgetting the choice of orientation includes the oriented quiver into the doubled quiver.
Instances For
Symmetrifying an oriented graph and forgetting the orientation maps to the doubled quiver.
Instances For
The comparison sends the positive copy of an oriented arrow to the doubled-quiver arrow of the selected dart.
The comparison sends the negative copy of an oriented arrow to the doubled-quiver arrow of the reversed dart.
The comparison from a symmetrified orientation to the doubled quiver preserves reversal.
The inverse comparison sends a doubled arrow to the positive copy when its dart was chosen, and to the negative copy of the oppositely oriented arrow otherwise.
Instances For
The symmetrification of an oriented simple graph is thin, as it has exactly one arrow in each direction over every graph edge.
On a chosen dart, the inverse comparison returns the positive copy of the corresponding oriented-quiver arrow.
On a dart not selected by the orientation, the inverse comparison returns the negative copy of the oppositely oriented arrow.
Forgetting after restoring an orientation is the identity doubled-quiver prefunctor.
Restoring the orientation after forgetting it is the identity on the symmetrified oriented quiver.
The inverse comparison also preserves arrow reversal.
The comparison from a doubled graph to a symmetrified orientation is a quiver covering. In fact it is an isomorphism of quivers, but the covering interface is the part needed to transport sums over the arrows incident to a vertex.
The inverse comparison from a symmetrified orientation to the doubled graph is also a quiver covering.
If f chooses a neighbour at every vertex of G with no two vertices choosing each other, then
some reorientation of any orientation of G has no sinks: turning around the arrows j ⟶ i with
f i = j leaves every vertex u with the outgoing arrow u ⟶ f u.
The source--sink orientation supplied by a two-colouring: an edge is directed toward its
endpoint of colour true.
Instances For
A dart belongs to the source--sink orientation exactly when its target has colour true.