The fan lemma #
Let G be a simple graph, x a vertex and U a finite set of vertices not containing x. A
fan from x to U is a family of paths, the i-th from x to a vertex u i ∈ U, whose other
vertices lie outside U, and any two of which share only the vertex x; in particular their ends
u i are distinct. This file proves the fan form of Menger's theorem on a finite vertex type: the
largest fan from x to U has as many paths as the least number of vertices other than x that
meet every walk from x to a vertex of U.
The fan lemma follows: in a k-vertex-connected graph on a finite vertex type, a vertex x
outside a set U of at least k vertices is joined to U by a fan of k paths. More generally,
it suffices that x be k-vertex-reachable from every vertex of U. Fans are the tool by which
cycles through prescribed vertices and open ears are built in highly connected graphs.
Main results #
SimpleGraph.card_le_card_of_fan: weak duality: a fan fromxtoUhas at most as many paths as any set of vertices other thanxmeeting every walk fromxtoU. No finiteness is needed.SimpleGraph.exists_fan_separator_card_eq: the fan form of Menger's theorem, in witness form: some fan and some such separator have the same size.SimpleGraph.forall_exists_walk_iff_exists_fan: its predicate form: deleting fewer thankvertices other thanxalways leaves a walk fromxtoUexactly when there is a fan ofkpaths fromxtoU.SimpleGraph.exists_fan_of_forall_isVertexReachableandSimpleGraph.IsVertexConnected.exists_fan: the fan lemma.SimpleGraph.IsVertexConnected.exists_open_ear_of_sup_edgeandSimpleGraph.IsVertexConnected.exists_open_ear_through: existence of an open ear inGthroughx ∉ Ubetween two distinct vertices ofUwhenG ⊔ SimpleGraph.edge s t(for distincts, t ∈ U) orGitself is2-vertex-connected.
Implementation notes #
The witness form is derived from the vertex-capacitated set-to-set form of Menger's theorem,
SimpleGraph.exists_paths_setSeparator_sum_eq, between the neighbours of x and U, with
capacity 0 at x and 1 at every other vertex. The capacities make the paths pairwise
vertex-disjoint and keep them away from x, so prefixing each with its first edge from x
gives a fan; a path that already starts in U is replaced by that single edge. A separator of
this capacitated problem, with x removed, meets every walk from x to U: such a walk contains
a path from x to U, whose part after its first edge is a walk from a neighbour of x to U
avoiding x.
References #
- R. Diestel, Graph Theory, 5th ed., Graduate Texts in Mathematics 173, Springer, 2017, Corollary 3.3.4.
Weak duality for fans. A family of walks, the i-th from x to u i ∈ U, any two of which
share only the vertex x, has at most #X members, for every set X of vertices not containing
x that meets every walk from x to a vertex of U. No finiteness assumption on V is
needed.
Menger's theorem for fans. Let x be a vertex outside a set U of vertices of a simple
graph on a finite vertex type. Some family of k paths, the i-th from x to u i ∈ U with its
other vertices outside U, any two of which share only the vertex x, and some set of k
vertices other than x meeting every walk from x to a vertex of U exist. By
SimpleGraph.card_le_card_of_fan, the fan is then largest and the separator smallest.
Menger's theorem for fans, predicate form. Let x be a vertex outside a set U of vertices
of a simple graph on a finite vertex type. For every set X of fewer than k vertices other than
x, some walk from x to a vertex of U avoids X, exactly when there are k paths, the i-th
from x to u i ∈ U with its other vertices outside U, any two of which share only the vertex
x.
The fan lemma. Let x be a vertex outside a set U of at least k vertices of a simple
graph on a finite vertex type, and suppose that x is k-vertex-reachable from every vertex of
U. Then there are k paths, the i-th from x to u i ∈ U with its other vertices outside
U, any two of which share only the vertex x.
The fan lemma. In a k-vertex-connected simple graph on a finite vertex type, a vertex x
outside a set U of at least k vertices is joined to U by k paths, the i-th from x to
u i ∈ U with its other vertices outside U, any two of which share only the vertex x.
Given distinct vertices s ≠ t in U and a vertex x ∉ U on a finite vertex type,
2-vertex-connectivity of G ⊔ SimpleGraph.edge s t produces an open ear in G itself passing
through x between two distinct endpoints in U, with all internal vertices outside U.
In a 2-vertex-connected simple graph on a finite vertex type, any vertex x outside a set U
of at least two vertices lies on an open ear in G between two distinct endpoints in U, with all
internal vertices outside U.