Robbins' theorem
TheoremRobbins' theorem#✓fully proved
Let \(G\) be a simple graph on a finite nonempty vertex set \(V\). Then \(G\) is connected and, after deleting any single edge of \(G\), every vertex is still reachable from every vertex (that is, \(G\) is 2-edge-connected) if and only if \(G\) has a strongly connected orientation: a relation \(D\) on \(V\) such that \(D(u, v)\) holds only when \(u\) and \(v\) are adjacent, for every edge \(uv\) exactly one of \(D(u, v)\) and \(D(v, u)\) holds, and every vertex \(v\) can be reached from every vertex \(u\) by a finite, possibly empty, sequence of \(D\)-steps.
theorem robbins_theorem_connected {V : Type*} [Finite V] [Nonempty V] (G : SimpleGraph V) :
(G.Connected ∧
∀ u v, G.Adj u v →
∀ a b, Relation.ReflTransGen
(fun x y => G.Adj x y ∧ ¬ ((x = u ∧ y = v) ∨ (x = v ∧ y = u))) a b) ↔
∃ D : V → V → Prop, (∀ u v, D u v → G.Adj u v) ∧
(∀ u v, G.Adj u v → Xor (D u v) (D v u)) ∧
(∀ u v, Relation.ReflTransGen D u v)
Sources
- H. E. Robbins, "A Theorem on Graphs, with an Application to a Problem of Traffic Control," American Mathematical Monthly 46 (1939), 281–283; https://en.wikipedia.org/wiki/Robbins%27_theorem
Used by 1
TheoremRobbins' theorem, allowing the empty graph#✓fully proved
Let \(G\) be a simple graph on a finite, possibly empty, vertex set \(V\). Then every vertex of \(G\) is reachable from every vertex and, after deleting any single edge of \(G\), every vertex is still reachable from every vertex, if and only if \(G\) has a strongly connected orientation: a relation \(D\) on \(V\) such that \(D(u, v)\) holds only when \(u\) and \(v\) are adjacent, for every edge \(uv\) exactly one of \(D(u, v)\) and \(D(v, u)\) holds, and every vertex \(v\) can be reached from every vertex \(u\) by a finite, possibly empty, sequence of \(D\)-steps.
For nonempty \(V\) the left-hand condition says that \(G\) is 2-edge-connected; for empty \(V\) both sides hold.
theorem robbins_theorem {V : Type*} [Finite V] (G : SimpleGraph V) :
((∀ u v, G.Reachable u v) ∧
∀ u v, G.Adj u v →
∀ a b, Relation.ReflTransGen
(fun x y => G.Adj x y ∧ ¬ ((x = u ∧ y = v) ∨ (x = v ∧ y = u))) a b) ↔
∃ D : V → V → Prop, (∀ u v, D u v → G.Adj u v) ∧
(∀ u v, G.Adj u v → Xor (D u v) (D v u)) ∧
(∀ u v, Relation.ReflTransGen D u v)
Sources
- https://en.wikipedia.org/wiki/Robbins%27_theorem
Uses 1
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.