Multigraph walks as directed walks of the bidirected arrow family #
The bidirected arrow family Graph.BidirectedHom G of a multigraph G : Graph α β lives on its
actual vertices V(G): the arrows from x to y are the edges e with G.IsLink e x y. A
nonloop edge therefore gives one arrow in each direction, a loop gives a single loop arrow, and
parallel edges give distinct parallel arrows. Directed walks along this family
(TauCeti.ArrowWalk) are the objects on which the network theory runs: flows, residual
reachability, and the directed forms of Menger's theorem.
This file identifies the edge-labelled walks of G between actual vertices with the directed
walks of its bidirected arrow family (Graph.Walk.bidirectedEquiv). The identification preserves
the length, the vertex sequence, and the edge sequence, hence paths. A directed cycle of the
bidirected family corresponds to an undirected cycle exactly when it traverses no edge twice: the
directed cycle x → y → x using the two opposite arrows of a single edge is not an undirected
cycle. In particular, reachability in G is reachability along the bidirected arrow family, and
reachability after deleting a set of vertices of G is reachability avoiding that set.
Main definitions #
Graph.BidirectedHom G: the bidirected arrow family ofG, on its actual vertices.Graph.Walk.toBidirected: a walk ofGfrom an actual vertex as a directed walk.TauCeti.ArrowWalk.toGraphWalk: a directed walk of the bidirected family as a walk ofG.Graph.Walk.bidirectedEquiv: these maps are inverse equivalences.
Main results #
Graph.Walk.vertices_toBidirectedandGraph.Walk.edges_toBidirected: the identification preserves vertex and edge sequences.Graph.Walk.isPath_toBidirected_iff: it preserves and reflects paths.TauCeti.ArrowWalk.mem_support_toGraphWalk_iff: the points on the walk of a directed walk are the vertices it visits.Graph.Walk.isCycle_iff_isCycle_toBidirected_and_isTrail: an undirected cycle is a directed cycle that is a trail.Graph.reachable_iff_nonempty_arrowWalk: reachability between actual vertices is reachability along the bidirected arrow family.Graph.reachableAvoiding_bidirectedHom_iff: reachability after deleting a set of vertices is reachability along the bidirected arrow family avoiding that set.Graph.reachableWithout_bidirectedHom_iff: reachability after deleting a set of edges is reachability along the bidirected arrow family without the arrows those edges give.TauCeti.ArrowWalk.internallyDisjoint_toGraphWalk_iff: the identification preserves and reflects internal disjointness.
The bidirected arrow family of a multigraph on its actual vertices: the arrows from x to y
are the edges linking x to y. A nonloop edge gives one arrow in each direction and a loop gives
a single loop arrow.
Instances For
A multigraph with finitely many actual edges has finitely many arrows between any two vertices of its bidirected arrow family.
Changing the endpoints of a bidirected arrow does not change its underlying edge.
A walk of G from an actual vertex, as a directed walk of the bidirected arrow family that
traverses the arrows given by the same edges in the same order.
Instances For
A directed walk of the bidirected arrow family of G, as a walk of G traversing the edges
of its arrows in the same order.
Instances For
The walk of a composite directed walk is the concatenation of the walks.
Every directed walk of the bidirected arrow family is the directed walk of its walk in G.
The walks of G between two actual vertices are the directed walks of the bidirected arrow
family between them, with the same vertex and edge sequences.
Instances For
Changing the endpoints of a directed walk before forgetting directions changes the endpoints of the resulting graph walk by the underlying equalities.
Transport of lengths, vertices, edges, paths, and cycles #
The arrows of the directed walk are the edges of the walk, in the same order.
The walk of a directed walk has the same length as the directed walk.
The walk of a directed walk visits its vertices in the same order.
The edges of the walk of a directed walk are the edges of its arrows, in the same order.
A point lies on the walk of a directed walk exactly when it is an actual vertex visited by the directed walk.
The walks in G of two directed walks are internally disjoint exactly when the directed walks
are.
A directed walk is determined by its walk in G.
The walk of a directed walk is a path exactly when the directed walk is a directed path.
A directed cycle of the bidirected arrow family is an undirected cycle exactly when no two of its arrows come from the same edge.
Two actual vertices are reachable in G exactly when a directed walk of the bidirected arrow
family joins them.
Two actual vertices are reachable after deleting a set Y of vertices of G exactly when a
directed walk of the bidirected arrow family joins them avoiding Y.
Two actual vertices are reachable after deleting a set E of edges of G exactly when a
directed walk of the bidirected arrow family joins them using no arrow given by an edge of E.
A set of actual vertices that the bidirected arrow family cannot avoid on its way from x to
y separates x from y in G.