Cut vertices of multigraphs #
A vertex of a multigraph is a cut vertex when deleting it separates two other vertices that were
previously reachable. This definition is insensitive to loops and parallel edges, but is phrased
in the native walk-based connectivity API for Graph.
The map Graph.deleteVertexComponentMap sends each component after deleting a vertex to its
original component. A vertex is a cut vertex exactly when this map is not injective. With the
relevant component types finite, this gives the component-count characterization
Graph.isCutVertex_iff_componentCount_lt_componentCount_deleteVerts: deleting a cut vertex
increases the number of connected components, while deleting a non-cut vertex does not increase
it.
The definition follows R. Diestel, Graph Theory, 5th ed., Graduate Texts in Mathematics 173, Springer, 2017, Section 1.4; the other characterizations are proved here.
Definition and component map #
The map from components after deleting v to components of the original graph.
Instances For
The component of a vertex after deletion maps to its component in the original graph.
A component containing a vertex other than v lies in the range of the component map after
deleting v.
A vertex is a cut vertex exactly when two components created by its deletion map to the same original component.
A cut vertex is reachable from one of the two vertices it separates.
A cut vertex is an actual vertex of the graph.
A vertex is not a cut vertex when all other actual vertices form a subsingleton set.
Component counts #
Cut vertices by component counts. If deletion leaves finitely many components, a vertex is a cut vertex exactly when deleting it strictly increases the number of connected components.
Deleting a non-cut vertex cannot increase the number of connected components.