Partial edge colourings #
Basic definitions and extension operations for the fan-and-Kempe proof of Vizing's theorem.
Partial edge colourings #
Basic framework for Vizing's theorem: a partial proper edge colouring of a simple graph G
is a symmetric partial function on pairs of vertices, defined only on edges, such that two
distinct edges sharing a vertex never receive the same colour.
A partial proper edge colouring of G with colours in C.
- col : V → V → Option C
The colour of the edge
u v, if it is coloured.
Instances For
theorem
LeanPool.Vizing.PEC.Extends.rfl'
{V : Type u_1}
{C : Type u_2}
{G : SimpleGraph V}
(c : PEC G C)
:
c.Extends c
theorem
LeanPool.Vizing.PEC.Extends.trans
{V : Type u_1}
{C : Type u_2}
{G : SimpleGraph V}
{c₁ c₂ c₃ : PEC G C}
(h₁ : c₁.Extends c₂)
(h₂ : c₂.Extends c₃)
:
c₁.Extends c₃
theorem
LeanPool.Vizing.PEC.col_self
{V : Type u_1}
{C : Type u_2}
{G : SimpleGraph V}
(c : PEC G C)
(u : V)
:
theorem
LeanPool.Vizing.PEC.exists_free
{V : Type u_1}
{C : Type u_2}
{G : SimpleGraph V}
[Fintype V]
[Fintype C]
[DecidableRel G.Adj]
(c : PEC G C)
(hcard : G.maxDegree < Fintype.card C)
(v : V)
:
∃ (γ : C), c.IsFree v γ
At every vertex there is a free colour, provided there are more colours than the maximum degree.
Updating a single edge #
def
LeanPool.Vizing.PEC.updFun
{V : Type u_1}
[DecidableEq V]
{C : Type u_2}
(f : V → V → Option C)
(x y : V)
(o : Option C)
:
V → V → Option C
Change the colour of the edge x y (in both directions) to o.
Equations
Instances For
@[simp]
theorem
LeanPool.Vizing.PEC.updFun_left
{V : Type u_1}
[DecidableEq V]
{C : Type u_2}
{f : V → V → Option C}
{x y : V}
(o : Option C)
:
@[simp]
theorem
LeanPool.Vizing.PEC.updFun_right
{V : Type u_1}
[DecidableEq V]
{C : Type u_2}
{f : V → V → Option C}
{x y : V}
(o : Option C)
:
def
LeanPool.Vizing.PEC.setEdge
{V : Type u_1}
[DecidableEq V]
{C : Type u_2}
{G : SimpleGraph V}
(c : PEC G C)
{x y : V}
(γ : C)
(hadj : G.Adj x y)
(hx : c.IsFree x γ)
(hy : c.IsFree y γ)
:
PEC G C
Colour the (possibly already coloured) edge x y with a colour free at both endpoints.
Equations
Instances For
theorem
LeanPool.Vizing.PEC.setEdge_col_of_ne_left
{V : Type u_1}
[DecidableEq V]
{C : Type u_2}
{G : SimpleGraph V}
(c : PEC G C)
{x y : V}
(γ : C)
(hadj : G.Adj x y)
(hx : c.IsFree x γ)
(hy : c.IsFree y γ)
{w : V}
(hwx : w ≠ x)
(hwy : w ≠ y)
(u : V)
:
theorem
LeanPool.Vizing.PEC.isFree_setEdge_of_ne
{V : Type u_1}
[DecidableEq V]
{C : Type u_2}
{G : SimpleGraph V}
(c : PEC G C)
{x y : V}
(γ : C)
(hadj : G.Adj x y)
(hx : c.IsFree x γ)
(hy : c.IsFree y γ)
{w : V}
(hwx : w ≠ x)
(hwy : w ≠ y)
(δ : C)
:
theorem
LeanPool.Vizing.PEC.extends_setEdge
{V : Type u_1}
[DecidableEq V]
{C : Type u_2}
{G : SimpleGraph V}
(c : PEC G C)
{x y : V}
(γ : C)
(hadj : G.Adj x y)
(hx : c.IsFree x γ)
(hy : c.IsFree y γ)
: