The two sides of an edge #
For a simple graph G and vertices u, v, the side G.edgeSide u v is the finite set of
vertices still reachable from u after deleting the edge s(u, v). Every vertex reachable from
u in G lies on the side of u or on the side of v, and the two sides are disjoint exactly
when s(u, v) is a bridge. In a tree, deleting an edge therefore splits the vertices into the two
sides of that edge: its fundamental partition.
In an acyclic graph the unique path between two vertices uses an edge exactly when that edge
separates them, so a path from a vertex on the side of u crosses s(u, v) exactly when it ends
off that side. These are the facts used to read off minimum cuts from weighted trees.
The side of u can also be recognized without walks: in a preconnected graph it is the unique set
containing u but not v that no other edge leaves (SimpleGraph.edgeSide_eq_of_forall_adj).
This identifies the sides of a tree after local changes to its edges. In a tree, the bipartitions
given by the sides of two edges never cross (SimpleGraph.IsTree.not_crosses_edgeSide), so the
edges of a tree determine a non-crossing family of cuts.
In an acyclic graph, a path uses an edge exactly when deleting that edge separates the endpoints of the path.
The side of u for the edge s(u, v): the vertices still reachable from u after deleting
that edge. For a tree edge, G.edgeSide u v and G.edgeSide v u partition the vertices.
Instances For
A vertex is on the side of u exactly when it is reachable from u without s(u, v).
The side of u is the vertex set of the connected component of u after deleting
s(u, v).
Each end of an edge lies on its own side.
The far end of a bridge is not on the near side.
In a preconnected graph, the side of v for a bridge s(u, v) is the complement of the side
of u.
The side of u for s(u, v) is contained in every set that contains u and that no edge
other than s(u, v) leaves.
In a preconnected graph, a set containing u but not v, such that no edge other than
s(u, v) has exactly one end in it, is the side of u for s(u, v).
In a tree, the sides of two edges never cross: the bipartitions obtained by deleting tree edges form a non-crossing family.
In an acyclic graph, a path starting on the side of u uses the edge s(u, v) exactly when
it ends off that side.