Arc connectivity and vertex strong connectivity of arrow families #
Let Q be an arrow family on a vertex type V. A vertex t is k-arc-reachable from s,
IsArcReachable Q k s t, when t stays reachable from s after deleting any set of fewer than
k arrows; arrows are deleted as identities, so parallel arrows count separately. The family is
k-arc-strong, IsArcStrong Q k, when every vertex is k-arc-reachable from every vertex, and
k-vertex-strong, IsVertexStrong Q k, when it has more than k vertices and any two vertices
outside a set of fewer than k deleted vertices remain reachable from each other. The invariants
arcConnectivity Q and vertexStrongConnectivity Q are the suprema in ℕ∞ of the thresholds at
which these predicates hold. As for undirected graphs, on at most one vertex the arc connectivity
is ⊤ and the vertex strong connectivity is 0.
The threshold 1 for arc strength is strong connectivity in the sense of Mathlib's
Quiver.IsStronglyConnected; for vertex strength it additionally requires at least two vertices.
The predicates are the directed counterparts of the undirected edge and vertex connectivity
predicates. The arrow-disjoint path form of IsArcReachable is obtained by applying
TauCeti.forall_reachableWithout_iff_exists_paths from Menger/Edge through
TauCeti.isArcReachable_def.
Main results #
TauCeti.isVertexStrong_iff_exists_paths: an arrow family on a finite vertex type isk-vertex-strong exactly when it has more thankvertices and any two distinct vertices are joined bykdistinct, pairwise internally vertex-disjoint directed paths. Arrowss → tare allowed, and then contribute one-arrow paths.TauCeti.IsVertexStrong.isArcStrongandTauCeti.vertexStrongConnectivity_le_arcConnectivity: the directed Whitney inequality.TauCeti.arcConnectivity_le_card_outandTauCeti.arcConnectivity_le_card_in: on at least two vertices, arc connectivity is at most every out-degree and every in-degree.TauCeti.isArcStrong_iff_le_arcConnectivityandTauCeti.isVertexStrong_iff_le_vertexStrongConnectivity: the invariants record exactly the thresholds at which the predicates hold, the latter on a nonempty vertex type. On the empty type the vertex strong connectivity is0although no family on it is0-vertex-strong.
Implementation notes #
The Whitney inequality follows the standard argument: if fewer than k arrows leave a set C
containing s but not t, and some u ∈ C has no arrow to some w ∉ C, deleting one endpoint of
each of these arrows, other than u and w, separates w from u. Otherwise every pair in
C × Cᶜ is joined by a leaving arrow, which forces at least |V| - 1 of them.
For global vertex Menger between adjacent vertices s and t, delete the arrows from s to t.
After further deleting fewer than k - 1 vertices, some third vertex w survives, and the
k-vertex-strong family supplies walks from s to w avoiding t and from w to t avoiding
s, neither of which uses an arrow from s to t. Local vertex Menger then gives k - 1 paths,
to which one arrow from s to t is added.
References #
- J. Bang-Jensen, G. Gutin, Digraphs: Theory, Algorithms and Applications, 2nd ed., Springer, 2009, Sections 5.1 and 5.4.
Arc reachability #
Reachability is 1-arc-reachability.
If t is k-arc-reachable from s, then every finite set of arrows containing all arrows
that leave a vertex set C with s ∈ C and t ∉ C has at least k members.
Arc-strong arrow families #
An arrow family is 1-arc-strong exactly when it is strongly connected.
An arrow family on at most one vertex is k-arc-strong for every k.
Vertex-strong arrow families #
On a finite vertex type, a vertex-strong threshold is less than the number of vertices.
An arrow family is 0-vertex-strong exactly when it has a vertex.
An arrow family is 1-vertex-strong exactly when it has two distinct vertices and is
strongly connected.
In a k-vertex-strong arrow family, at least k arrows leave every vertex set C containing
s but not t: every finite set of arrows containing them all has at least k members.
The directed Whitney inequality. A k-vertex-strong arrow family is k-arc-strong.
Menger's theorem for vertex-strong arrow families. An arrow family on a finite vertex type
is k-vertex-strong exactly when it has more than k vertices and any two distinct vertices s
and t are joined by k distinct directed paths pairwise sharing no vertex other than s and
t. When there are arrows from s to t, one of these paths may be a single arrow.
Numerical invariants #
The arc connectivity of an arrow family: the supremum in ℕ∞ of the natural thresholds k at
which it is k-arc-strong. It is ⊤ when there is at most one vertex.
Instances For
The vertex strong connectivity of an arrow family: the supremum in ℕ∞ of the natural
thresholds k at which it is k-vertex-strong. It is 0 when there is at most one vertex.
Instances For
Arc connectivity records exactly the thresholds at which the arrow family is arc-strong.
On a nonempty vertex type, vertex strong connectivity records exactly the thresholds at which the arrow family is vertex-strong.
An arrow family on at most one vertex has arc connectivity ⊤.
An arrow family on at most one vertex has vertex strong connectivity 0.
On a finite nonempty vertex type, the vertex strong connectivity is less than the number of vertices; in particular it is finite.
The directed Whitney inequality, numerical form: the vertex strong connectivity is at most the arc connectivity.
On at least two vertices, the arc connectivity is at most the number of arrows leaving any vertex, loops included.
On at least two vertices, the arc connectivity is at most the number of arrows entering any vertex, loops included.