st-numberings and bipolar acyclic orientations of simple graphs #
An st-numbering of a finite simple graph G on V with chosen source s and sink t is a
bijection V ≃ Fin (Fintype.card V) assigning 0 to s and Fintype.card V - 1 to t such that
every vertex other than s and t has both a lower-numbered neighbour and a higher-numbered
neighbour. Directing each edge from its lower-numbered endpoint to its higher-numbered endpoint
yields a bipolar acyclic orientation of G: it has no positive-length directed closed paths, and
whenever G is preconnected (in particular whenever s and t are adjacent or V has at least
three vertices), s is the unique source, t is the unique sink, and every vertex lies on a
directed path from s to t.
On a finite vertex type with at least three vertices and s ≠ t, Lempel, Even, and Cederbaum
characterized the existence of an st-numbering by 2-vertex-connectivity of G ⊔ edge s t
(and hence of G itself when G.Adj s t). The existence direction is proved here by iteratively
attaching open ears to a partial vertex list starting at [s, t] via the fan lemma
(SimpleGraph.IsVertexConnected.exists_fan), inserting the internal vertices of each new ear
between its two attachment vertices.
Main definitions #
SimpleGraph.STNumbering G s t: a bijective numberingV ≃ Fin (Fintype.card V)placingsfirst,tlast, and giving every other vertex both a lower-numbered and a higher-numbered neighbour.SimpleGraph.STNumbering.symm,SimpleGraph.STNumbering.symmEquiv: order reversal onFin (Fintype.card V), exchangingsandt.SimpleGraph.STNumbering.map,SimpleGraph.Iso.stNumberingEquiv: transport ofst-numberings along graph isomorphisms.SimpleGraph.STNumbering.mapLe: transport of anst-numbering to a supergraph on the same vertex type.SimpleGraph.STNumbering.toOrientation: theTauCeti.DoubledQuiver.Orientationdirecting each edge toward its higher-numbered endpoint.SimpleGraph.STNumbering.arrow,SimpleGraph.STNumbering.homEquiv: arrow transport betweenOrientedQuiver G n.toOrientationand adjacency with strict numbering inequality.
Main results #
SimpleGraph.STNumbering.isAcyclic_toOrientation: the induced orientation is acyclic.SimpleGraph.STNumbering.preconnected_of_reachable,SimpleGraph.STNumbering.connected_of_reachable: whentis reachable froms(in particular whenG.Adj s tor3 ≤ Fintype.card V),Gis preconnected and connected.SimpleGraph.STNumbering.isSource_source,SimpleGraph.STNumbering.isSink_sink,SimpleGraph.STNumbering.nonempty_path_from_source,SimpleGraph.STNumbering.nonempty_path_to_sink,SimpleGraph.STNumbering.isSource_iff,SimpleGraph.STNumbering.isSink_iff:sis a source andtis a sink ofOrientedQuiver G n.toOrientation; whenGis preconnected, every vertex is reachable fromsand can reacht,sis the unique source, andtis the unique sink (together with the graph-level neighbour characterizationsforall_not_adj_and_numbering_lt_iffandforall_not_adj_and_lt_numbering_iff).SimpleGraph.nonempty_stNumbering_iff_isVertexConnected_two_sup_edge,SimpleGraph.nonempty_stNumbering_iff_isVertexConnected_two,SimpleGraph.IsVertexConnected.nonempty_stNumbering: Lempel–Even–Cederbaum theorem: on at least three vertices withs ≠ t,Gadmits anst-numbering if and only ifG ⊔ SimpleGraph.edge s tis2-vertex-connected.
References #
- A. Lempel, S. Even, and I. Cederbaum, An algorithm for planarity testing of graphs, in Theory of Graphs: International Symposium (Rome, 1966), Gordon and Breach, New York, 1967, 215–232.
- S. Even and R. E. Tarjan, Computing an st-numbering, Theor. Comput. Sci. 2 (1976), 339–344, Theorem 1.
- R. Diestel, Graph Theory, 5th ed., Graduate Texts in Mathematics 173, Springer, 2017.
An st-numbering of a finite simple graph G with source s and sink t is a bijection
V ≃ Fin (Fintype.card V) sending s to 0 and t to Fintype.card V - 1 such that every
vertex other than s and t has both a lower-numbered neighbour and a higher-numbered
neighbour.
The bijective numbering of the vertices by
Fin (Fintype.card V).The source
sreceives number0.The sink
treceives numberFintype.card V - 1.Every vertex other than
sandthas a lower-numbered neighbour.- higher_neighbor ⦃v : V⦄ : v ≠ s → v ≠ t → ∃ (w : V), G.Adj v w ∧ self.numbering v < self.numbering w
Every vertex other than
sandthas a higher-numbered neighbour.
Instances For
Basic numbering API #
Two st-numberings are equal when they assign the same index to every vertex.
Two st-numberings are equal when they assign the same natural number to every vertex.
The natural-number values of an st-numbering are injective.
A graph admitting an st-numbering has a nonempty vertex type.
A graph admitting an st-numbering has positive vertex count.
Explicit Fin value of the source in an st-numbering.
Explicit Fin value of the sink in an st-numbering.
A vertex receives number 0 if and only if it is the source s.
A vertex receives number Fintype.card V - 1 if and only if it is the sink t.
In an st-numbering, s = t holds exactly when the graph has a single vertex.
On a nontrivial vertex type, the source and sink of an st-numbering are distinct.
The source s has the minimum number among all vertices.
A vertex has strictly larger number than s if and only if it is distinct from s.
The sink t has the maximum number among all vertices.
A vertex has strictly smaller number than t if and only if it is distinct from t.
Endpoint copy, reversal, supergraph transport, and isomorphism transport #
Copy an st-numbering across equalities of its source and sink vertices.
Instances For
Reverse an st-numbering via Fin.revPerm, exchanging the source s and the sink t.
Instances For
Explicit natural-number formula for the reversed st-numbering.
Reversing the order on Fin (Fintype.card V) identifies st-numberings with
ts-numberings.
Instances For
Transport an st-numbering to a supergraph on the same vertex type.
Instances For
Supergraph transport of st-numberings composes transitively.
Transport an st-numbering along a graph isomorphism.
Instances For
Evaluating n.map e at e v recovers the natural-number index of v.
Transport of st-numberings along graph isomorphisms composes functorially.
A graph isomorphism induces an equivalence of st-numberings.
Instances For
Induced bipolar orientation and quiver transport #
The orientation induced by an st-numbering, directing every edge from its lower-numbered
endpoint to its higher-numbered endpoint.
Instances For
A dart belongs to n.toOrientation exactly when its first endpoint has a strictly smaller
number than its second endpoint.
Reversing an st-numbering reverses every dart of its induced orientation.
Construct the oriented-quiver arrow over an edge directed toward its higher-numbered endpoint.
Instances For
Transport arrows of OrientedQuiver G n.toOrientation across OrientedQuiver.homEquiv to
pairs of an adjacency proof and a strict numbering inequality.
Instances For
An arrow from u to v exists in OrientedQuiver G n.toOrientation if and only if u and
v are adjacent with n.numbering u < n.numbering v.
There is no arrow from u to v in OrientedQuiver G n.toOrientation if and only if u and
v are not adjacent with n.numbering u < n.numbering v.
The orientation induced by an st-numbering is acyclic.
Along any directed path in OrientedQuiver G n.toOrientation, vertex numbers are monotone.
Along any positive-length directed path in OrientedQuiver G n.toOrientation, the endpoint
number is strictly greater than the start number.
Monotone walks, source, sink, and directed reachability #
Every vertex v ≠ t is joined from s by a walk in G whose vertices all have numbers at
most n.numbering v.
Every vertex v ≠ s is joined to t by a walk in G whose vertices all have numbers at
least n.numbering v.
If t is reachable from s, any graph admitting an st-numbering is preconnected.
If t is reachable from s, any graph admitting an st-numbering is connected.
If s and t are adjacent, any graph admitting an st-numbering is preconnected.
If s and t are adjacent, any graph admitting an st-numbering is connected.
On at least three vertices, any graph admitting an st-numbering is preconnected, even if s
and t are not adjacent.
On at least three vertices, any graph admitting an st-numbering is connected.
The vertex s is a quiver source of OrientedQuiver G n.toOrientation.
The vertex t is a quiver sink of OrientedQuiver G n.toOrientation.
Every vertex v ≠ t is reachable from s in OrientedQuiver G n.toOrientation (with no
connectedness hypothesis on G).
Every vertex v ≠ s can reach t in OrientedQuiver G n.toOrientation (with no
connectedness hypothesis on G).
When G is preconnected, OrientedQuiver G n.toOrientation has a directed path from s to
t.
When G is preconnected, every vertex of OrientedQuiver G n.toOrientation is reachable from
s.
When G is preconnected, every vertex of OrientedQuiver G n.toOrientation can reach t.
When G is preconnected, s is the unique source of OrientedQuiver G n.toOrientation.
When G is preconnected, t is the unique sink of OrientedQuiver G n.toOrientation.
When G is preconnected, s is the unique vertex with no lower-numbered neighbour.
When G is preconnected, t is the unique vertex with no higher-numbered neighbour.
2-vertex-connectivity from an st-numbering #
On at least three vertices, admitting an st-numbering makes G ⊔ SimpleGraph.edge s t
2-vertex-connected.
On at least three vertices with G.Adj s t, admitting an st-numbering makes G itself
2-vertex-connected.
Existence of st-numberings via open-ear insertion #
Lempel–Even–Cederbaum theorem (existence). Let s ≠ t be distinct vertices of a finite
simple graph G such that G ⊔ SimpleGraph.edge s t is 2-vertex-connected. Then G admits an
st-numbering.
Any 2-vertex-connected finite simple graph admits an st-numbering between any two distinct
vertices s ≠ t.
Any 2-vertex-connected finite simple graph admits an st-numbering across any chosen edge
G.Adj s t.
Lempel–Even–Cederbaum theorem. On a finite vertex type with at least three vertices, a
simple graph G admits an st-numbering for distinct vertices s ≠ t if and only if
G ⊔ SimpleGraph.edge s t is 2-vertex-connected.
Lempel–Even–Cederbaum theorem for adjacent endpoints. On a finite vertex type with at least
three vertices, a simple graph G with G.Adj s t admits an st-numbering if and only if G is
2-vertex-connected.