Vertex reachability and vertex connectivity of simple graphs #
Two vertices u, v of a simple graph G are k-vertex-reachable, G.IsVertexReachable k u v,
when they remain reachable after deleting any set of fewer than k vertices other than u and
v; deletion of a set s is the subgraph G.induce sᶜ induced on the remaining vertices. The
graph is k-vertex-connected, G.IsVertexConnected k, when it has at least k + 1 vertices (more
than k for finite k, infinitely many for k = ⊤) and any two vertices are
k-vertex-reachable. Thus a single vertex is 0- but not 1-vertex-connected,
and the complete graph on n ≥ 1 vertices is (n - 1)- but not n-vertex-connected. The numerical
vertex connectivity G.vertexConnectivity is the supremum in ℕ∞ of the natural thresholds at
which G is vertex-connected; it is 0 on the empty vertex type and finite on a finite one.
Adjacent vertices are k-vertex-reachable for every k, since no deletion of other vertices can
separate them. Vertex reachability is therefore not transitive, and for adjacent vertices it
says nothing beyond the single edge. On a finite vertex type, Menger's theorem identifies
k-vertex-reachability of any two vertices with the existence of k paths pairwise sharing
no vertex other than their ends; both sides hold trivially for equal or adjacent vertices. On a
finite graph with more than k vertices,
k-vertex-connectivity is the existence of k such paths between every two distinct vertices,
adjacent ones included.
Whitney's inequality compares the two connectivity notions: deleting fewer than k edges can
be simulated by deleting fewer than k vertices, one end of each deleted edge, so a
k-vertex-connected graph is k-edge-connected and G.vertexConnectivity ≤ G.edgeConnectivity.
Together with SimpleGraph.edgeConnectivity_le_minDegree, this bounds vertex connectivity by
edge connectivity and edge connectivity by minimum degree on a finite graph with at least two
vertices. The inequality is due to H. Whitney, Congruent
graphs and the connectivity of graphs, Amer. J. Math. 54 (1932), 150–168; the proof follows
R. Diestel, Graph Theory, Proposition 1.4.2, made local to a pair of vertices.
The definitions follow the proposal
mathlib4#33355, and their shape
and API follow Mathlib's SimpleGraph.IsEdgeReachable and SimpleGraph.IsEdgeConnected. The
numerical invariant follows the multigraph Graph.edgeConnectivity in
TauCeti.Combinatorics.Graph.Connectivity.EdgeConnectivity, a supremum in ℕ∞ of natural
thresholds. The vertex count condition is the usual one, as in R. Diestel, Graph Theory, 5th
ed., Graduate Texts in Mathematics 173, Springer, 2017, Section 1.4.
Main definitions #
SimpleGraph.IsVertexReachable G k u v:uandvstay reachable after deleting fewer thankother vertices.SimpleGraph.IsVertexConnected G k:Ghas at leastk + 1vertices, any two of which arek-vertex-reachable.SimpleGraph.vertexConnectivity G: the supremum inℕ∞of the natural thresholds at whichGis vertex-connected.
Main results #
SimpleGraph.isVertexReachable_one,SimpleGraph.isVertexConnected_one: the threshold1is reachability, respectively connectedness on at least two vertices.SimpleGraph.isVertexConnected_two_iff: 2-vertex-connectivity is connectedness on at least three vertices with no cut vertex.SimpleGraph.Iso.isVertexReachable_iff,SimpleGraph.Iso.isVertexConnected_iff: vertex reachability and connectivity are invariant under graph isomorphism.SimpleGraph.isVertexConnected_iff:Gisk-vertex-connected exactly when it has at leastk + 1vertices and stays preconnected after deleting fewer thankvertices.SimpleGraph.isVertexReachable_of_pairwise_internallyDisjoint:kwalks pairwise sharing no vertex other than their ends make their endsk-vertex-reachable.SimpleGraph.isVertexConnected_iff_le_vertexConnectivity: on a nonempty vertex type, the numerical invariant records exactly the thresholds at whichGis vertex-connected.SimpleGraph.vertexConnectivity_add_one_le_card: on a nonempty vertex type,κ + 1is at most the number of vertices, whereκis the vertex connectivity.SimpleGraph.vertexConnectivity_top: the complete graph has vertex connectivityENat.card V - 1.SimpleGraph.IsVertexConnected.isEdgeConnected,SimpleGraph.vertexConnectivity_le_edgeConnectivity: Whitney's inequality: ak-vertex-connected graph isk-edge-connected, so vertex connectivity is at most edge connectivity. No finiteness assumption is needed.SimpleGraph.isVertexReachable_iff_exists_paths: Menger's theorem, predicate form.SimpleGraph.isVertexConnected_iff_forall_exists_paths: the global form of Menger's theorem: on a vertex typeVwithk < Nat.card V(which forcesVto be finite),k-vertex-connectivity is the existence ofkdistinct internally disjoint paths between every two distinct vertices.SimpleGraph.Walk.reachable_induce_coe_of_mem_support,SimpleGraph.Walk.reachable_start_induce_coe: lifting walks inGwithtoSubgraph ≤ Kto reachability in induced subgraphs ofK.coe.SimpleGraph.reachable_induce_compl_of_mem_verts_toSubgraph_of_encard_le_one: after deleting at most one vertex ofK, every remaining vertex of a path inKbetween two vertices of a subgraphL ≤ Kis joined to a remaining vertex ofL.SimpleGraph.Walk.IsCycle.isVertexConnected_two_toSubgraph: the subgraph traced by a cycle is2-vertex-connected, with no finiteness assumption.
Implementation notes #
The Menger statements are derived from the witness forms in
TauCeti.Combinatorics.SimpleGraph.Connectivity.Menger. For adjacent vertices s and t of a
k-vertex-connected graph, SimpleGraph.exists_paths_vertexSeparator_card_add_one_eq gives
#X + 1 paths together with a set X separating s from t after the edge s(s, t) is deleted.
If #X + 1 < k, some vertex w lies outside X ∪ {s, t}, and deleting X together with t, or
with s, leaves w reachable from s, or from t, by walks avoiding the edge s(s, t); so X
does not separate s from t. Hence k ≤ #X + 1.
Vertex reachability #
Two vertices are k-vertex-reachable if they remain reachable after deleting any set of fewer
than k vertices other than themselves.
Instances For
Vertex reachability through walks: after deleting fewer than k vertices other than u and
v, some walk from u to v avoids the deleted vertices.
Vertex reachability at a smaller threshold follows from vertex reachability at a larger one.
Vertex reachability is monotone in the graph.
Reachability is 1-vertex-reachability.
Adjacent vertices are k-vertex-reachable for every k.
Weak duality for vertex reachability. If there are n walks from u to v pairwise
sharing no vertex other than u and v, then u and v are n-vertex-reachable. No finiteness
assumption on V is needed.
Injective graph homomorphisms preserve vertex reachability.
Vertex reachability is invariant under graph isomorphism.
Vertex connectivity #
A graph is k-vertex-connected if it has at least k + 1 vertices and any two vertices are
k-vertex-reachable. For finite k this asks for more than k vertices; for k = ⊤ it asks for
infinitely many.
Instances For
A graph is k-vertex-connected exactly when it has at least k + 1 vertices and stays
preconnected after deleting any set of fewer than k vertices.
A vertex-connected graph on a finite vertex type has more vertices than its finite connectivity threshold.
Vertex connectivity is invariant under graph isomorphism.
Vertex connectivity at a smaller threshold follows from vertex connectivity at a larger one.
Vertex connectivity is monotone in the graph.
A graph is 0-vertex-connected exactly when its vertex type is nonempty.
A graph is 1-vertex-connected exactly when it is connected and has at least two
vertices.
A simple graph is 2-vertex-connected exactly when it has at least three vertices, is connected, and has no cut vertex.
The complete graph is k-vertex-connected exactly when it has at least k + 1 vertices.
Subgraph walks and cycle connectivity #
Any two vertices in s : Set K.verts whose underlying vertices lie on a walk r in G with
r.toSubgraph ≤ K whose support stays in s are mutually reachable in K.coe.induce s.
If a walk r in G has r.toSubgraph ≤ K and every vertex of r in K.verts belongs to
s, then every vertex of r is reachable from r's start in K.coe.induce s.
If a path p with both ends in L lies in K ≥ L and at most one vertex s of K is
deleted, every remaining vertex of p is still joined in K to a remaining vertex of L.
The subgraph traced by any cycle in a simple graph is 2-vertex-connected, with no finiteness
assumption.
The numerical invariant #
The vertex connectivity of a simple graph: the supremum in ℕ∞ of the natural thresholds k
at which it is k-vertex-connected. It is 0 on the empty vertex type.
Instances For
Vertex connectivity is the supremum of the natural connectivity thresholds.
Vertex connectivity is invariant under graph isomorphism.
On a nonempty vertex type, vertex connectivity records exactly the thresholds at which the graph is vertex-connected.
Vertex connectivity is monotone in the graph.
The vertex connectivity of a graph on a finite vertex type is finite.
On a nonempty vertex type, the vertex connectivity plus one is at most the number of
vertices, so the vertex connectivity is strictly less than it when V is finite.
Vertex connectivity is at most the number of vertices minus one.
A graph on at most one vertex has vertex connectivity zero.
The complete graph on V has vertex connectivity ENat.card V - 1.
Menger's theorem #
Menger's theorem for vertex reachability. Two vertices s and t of
a simple graph on a finite vertex type are k-vertex-reachable exactly when there are k paths
from s to t pairwise sharing no vertex other than s and t.
The global form of Menger's theorem. A simple graph on a vertex type V with
k < Nat.card V (which forces V to be finite) is k-vertex-connected exactly when every two
distinct vertices s and t, adjacent or not, are joined by k distinct paths pairwise sharing
no vertex other than s and t.
Whitney's inequality #
Whitney's inequality, predicate form: a k-vertex-connected graph is
k-edge-connected.
Whitney's inequality: the vertex connectivity of a simple graph is at most its edge connectivity.