Road coloring theorem
TheoremRoad coloring theorem for a finite vertex type#✓fully proved
Let \(V\) be a finite nonempty set and let \(\to\) be a relation on \(V\), viewed as a directed graph on \(V\) without parallel edges (loops allowed). Suppose that the graph is strongly connected (for all \(u, v \in V\) there is a directed walk, possibly of length \(0\), from \(u\) to \(v\)), aperiodic (for every integer \(d > 1\) there is a closed directed walk of positive length not divisible by \(d\)), and of constant positive out-degree (there is \(k > 0\) such that every vertex has exactly \(k\) out-neighbours). Then there exist a natural number \(\ell\) and a map \(\delta : V \times \{0, \dots, \ell - 1\} \to V\) such that for every \(v \in V\) the map \(c \mapsto \delta(v, c)\) is a bijection from \(\{0, \dots, \ell - 1\}\) onto the out-neighbours of \(v\), together with a word \(c_1 \cdots c_m\) over \(\{0, \dots, \ell - 1\}\) and a vertex \(r\) such that following the labels \(c_1, \dots, c_m\) in order from any vertex \(v\) ends at \(r\).
This form only assumes that \(V\) is finite, as a property, rather than being given a finite set of all its elements as data.
theorem roadColoring' :
∀ {V : Type*} [Finite V] [Nonempty V]
(Adj : V → V → Prop),
(∀ u v : V, Relation.ReflTransGen Adj u v) →
(∀ d : ℕ, 1 < d → ∃ (u : V) (w : List V),
List.IsChain Adj (u :: w) ∧ w.getLast? = some u ∧ ¬ (d ∣ w.length)) →
(∃ k : ℕ, 0 < k ∧ ∀ v : V, Nonempty ({ w : V // Adj v w } ≃ Fin k)) →
∃ (k : ℕ) (trans : V → Fin k → V),
(∀ v : V, ∀ c : Fin k, Adj v (trans v c)) ∧
(∀ v : V, Function.Injective (trans v)) ∧
(∀ (v w : V), Adj v w → ∃ c : Fin k, trans v c = w) ∧
∃ (word : List (Fin k)) (r : V), ∀ v : V, List.foldl trans v word = r
Used by 1
TheoremRoad coloring theorem#✓fully proved
Let \(V\) be a finite nonempty set and let \(\to\) be a relation on \(V\), viewed as a directed graph on \(V\) without parallel edges (loops allowed). Suppose that the graph is strongly connected (for all \(u, v \in V\) there is a directed walk, possibly of length \(0\), from \(u\) to \(v\)), aperiodic (for every integer \(d > 1\) there is a closed directed walk of positive length not divisible by \(d\)), and of constant positive out-degree (there is \(k > 0\) such that every vertex has exactly \(k\) out-neighbours). Then there exist a natural number \(\ell\) and a map \(\delta : V \times \{0, \dots, \ell - 1\} \to V\) such that for every \(v \in V\) the map \(c \mapsto \delta(v, c)\) is a bijection from \(\{0, \dots, \ell - 1\}\) onto the out-neighbours of \(v\), together with a word \(c_1 \cdots c_m\) over \(\{0, \dots, \ell - 1\}\) and a vertex \(r\) such that following the labels \(c_1, \dots, c_m\) in order from any vertex \(v\) ends at \(r\).
theorem roadColoring :
∀ {V : Type*} [Fintype V] [Nonempty V]
(Adj : V → V → Prop),
(∀ u v : V, Relation.ReflTransGen Adj u v) →
(∀ d : ℕ, 1 < d → ∃ (u : V) (w : List V),
List.IsChain Adj (u :: w) ∧ w.getLast? = some u ∧ ¬ (d ∣ w.length)) →
(∃ k : ℕ, 0 < k ∧ ∀ v : V, Nonempty ({ w : V // Adj v w } ≃ Fin k)) →
∃ (k : ℕ) (trans : V → Fin k → V),
(∀ v : V, ∀ c : Fin k, Adj v (trans v c)) ∧
(∀ v : V, Function.Injective (trans v)) ∧
(∀ (v w : V), Adj v w → ∃ c : Fin k, trans v c = w) ∧
∃ (word : List (Fin k)) (r : V), ∀ v : V, List.foldl trans v word = r
Sources
- https://en.wikipedia.org/wiki/Road_coloring_theorem
Uses 1
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.