Color-critical graphs
DefinitionCritical edge sets#✓fully proved
Let \(G\) be a graph and \(S\) a set of unordered pairs of its vertices. Then \(S\) is critical for \(G\) if deleting the edges of \(G\) that lie in \(S\) strictly lowers the chromatic number, as an element of \(\mathbb{N} \cup \{\infty\}\).
def IsCriticalEdges (edges : Set (Sym2 V)) : Prop :=
(G.deleteEdges edges).chromaticNumber < G.chromaticNumber
Used by 1
DefinitionCritical edge#✓fully proved
For a graph \(G\) and an unordered pair \(e\) of vertices, \(e\) is a critical edge of \(G\) if removing \(e\) from the edge set of \(G\) strictly lowers the chromatic number of \(G\), taken in \(\mathbb{N} \cup \{\infty\}\).
Only edges of \(G\) can be critical.
Uses 1
DefinitionCritical vertex sets of a subgraph#✓fully proved
Let \(G'\) be a subgraph of a graph \(G\). A set \(S\) of vertices is critical for \(G'\) if deleting the vertices in \(S\) from \(G'\) strictly lowers the chromatic number of \(G'\), viewed as a graph on its own vertex set, with chromatic numbers taken in \(\mathbb{N} \cup \{\infty\}\).
def Subgraph.IsCriticalVerts (verts : Set V) (G' : G.Subgraph) : Prop :=
(G'.deleteVerts verts).coe.chromaticNumber < G'.coe.chromaticNumber
Used by 1
DefinitionCritical vertices of a subgraph#✓fully proved
Let \(G'\) be a subgraph of a graph \(G\). A vertex \(v\) is critical for \(G'\) if \(\{v\}\) is a critical vertex set of \(G'\), that is, deleting \(v\) from \(G'\) strictly lowers the chromatic number of \(G'\), viewed as a graph on its own vertex set, with chromatic numbers taken in \(\mathbb{N} \cup \{\infty\}\).
def Subgraph.IsCriticalVertex (v : V) (G' : G.Subgraph) : Prop := G'.IsCriticalVerts {v}
Uses 1 · Used by 1
DefinitionVertex-critical graphs#✓fully proved
Let \(k\) be a natural number. A graph \(G\) is \(k\)-critical (or vertex-critical) if its chromatic number equals \(k\) and every vertex \(v\) of \(G\) is critical, that is, deleting \(v\) from \(G\) strictly lowers the chromatic number.
def IsCritical (k : ℕ) : Prop := G.chromaticNumber = k ∧ ∀ v, (⊤ : G.Subgraph).IsCriticalVertex v
Uses 1
DefinitionCocolorable graphs#✓fully proved
A graph \(G\) is cocolorable with \(n\) colors if there is a map from its vertices to the colors \(\{0, \dots, n-1\}\) such that each color class induces either an independent set or a complete graph in \(G\).
def Cocolorable (G : SimpleGraph V) (n : ℕ) : Prop := ∃ coloring : V → Fin n,
∀ i, G.induce {v | coloring v = i} = ⊥ ∨ G.induce {v | coloring v = i} = ⊤
TheoremColorable graphs are cocolorable#✓fully proved
For every natural number \(n\), if a graph \(G\) has a proper coloring with \(n\) colors, then \(G\) is cocolorable with \(n\) colors.
Each color class of a proper coloring induces an independent set.
theorem Colorable.cocolorable {n : ℕ} (hc : G.Colorable n) : G.Cocolorable n
Uses 1 · Used by 1
TheoremFinite graphs are cocolorable#✓fully proved
Every graph \(G\) on a finite vertex set \(V\) is cocolorable with \(|V|\) colors.
Giving every vertex its own color is a proper coloring.
theorem cocolorable_of_fintype [Fintype V] (G : SimpleGraph V) :
G.Cocolorable (Fintype.card V)
Uses 2 · Used by 1
DefinitionCochromatic number#✓fully proved
The cochromatic number of a graph \(G\), an element of \(\mathbb{N} \cup \{\infty\}\), is the least natural number \(n\) such that \(G\) is cocolorable with \(n\) colors, that is, the least number of colors in a coloring of the vertices of \(G\) in which each color class induces either an independent set or a complete graph. It is \(\infty\) exactly when \(G\) is not cocolorable with any finite number of colors.
noncomputable def cochromaticNumber (G : SimpleGraph V) : ℕ∞ := ⨅ n ∈ Set.ofPred G.Cocolorable,
(n : ℕ∞)
Uses 1 · Used by 4
TheoremCochromatic number as a minimum#✓fully proved
If a graph \(G\) is cocolorable with \(n\) colors for some natural number \(n\), then the cochromatic number of \(G\) equals the least natural number \(m\) such that \(G\) is cocolorable with \(m\) colors.
theorem Cocolorable.cochromaticNumber_eq_sInf {n : ℕ} (h : G.Cocolorable n) :
G.cochromaticNumber = sInf {n' : ℕ | G.Cocolorable n'}
Uses 2 · Used by 1
TheoremCochromatic number of a finite graph#✓fully proved
For every graph \(G\) on a finite vertex set, the cochromatic number of \(G\), converted from \(\mathbb{N} \cup \{\infty\}\) to \(\mathbb{N}\) by sending \(\infty\) to \(0\), equals the least natural number \(m\) such that \(G\) is cocolorable with \(m\) colors.
theorem cochromaticNumber_toNat_eq_sInf [Fintype V] (G : SimpleGraph V) :
G.cochromaticNumber.toNat = sInf {n : ℕ | G.Cocolorable n}
Uses 4
DefinitionChromatic cardinal of a graph#✓fully proved
The chromatic cardinal is the minimal number of colors need to color it. In contrast to
chromaticNumber, which assigns ⊤ : ℕ∞ to all non-finitely colorable graphs, this definition
returns a Cardinal and can therefore distinguish between different infinite chromatic numbers.
noncomputable def chromaticCardinal.{u} {V : Type u} (G : SimpleGraph V) : Cardinal :=
sInf {κ : Cardinal | ∃ (C : Type u) (_ : Cardinal.mk C = κ), Nonempty (G.Coloring C)}
DefinitionLargest union of independent sets#✓fully proved
For a graph \(G\) on a finite vertex set and a natural number \(k\), this is the maximum number of vertices in a union of \(k\) (possibly empty, possibly overlapping) independent sets of \(G\).
noncomputable def indepNumK (G : SimpleGraph V) [Fintype V] (k : ℕ) : ℕ :=
sSup {n | ∃ f : Fin k → Set V, (∀ i, G.IsIndepSet (f i)) ∧ (⋃ i, f i).ncard = n}
Used by 1
DefinitionCDS-colorable graphs#✓fully proved
A graph \(G\) on a finite vertex set is CDS-colorable if it has a proper coloring \(C\) with colors in \(\mathbb{N}\) such that for every \(k \in \mathbb{N}\), the number of vertices whose color under \(C\) is less than \(k\) equals the maximum size of a union of \(k\) independent sets of \(G\).
def CDSColorable [Fintype α] (G : SimpleGraph α) : Prop :=
∃ (C : G.Coloring Nat), ∀ k : Nat,
∑ i < k, (C.colorClass i).ncard = indepNumK G k
noncomputable def indepNumK (G : SimpleGraph V) [Fintype V] (k : ℕ) : ℕ :=
sSup {n | ∃ f : Fin k → Set V, (∀ i, G.IsIndepSet (f i)) ∧ (⋃ i, f i).ncard = n}
MathlibExt/Combinatorics/SimpleGraph/Coloring/Vertex.lean:154
Uses 1
DefinitionRainbow homomorphisms#✓fully proved
Let \(f\) be a graph homomorphism from \(H\) to \(G\) and let \(c\) be a labeling of the edges of \(G\) by elements of a type \(K\). Then \(f\) is rainbow for \(c\) if distinct edges of \(H\) are mapped to edges of \(G\) with distinct labels, that is, the labeling \(e \mapsto c(f(e))\) of the edges of \(H\) is injective.
def IsRainbow {α V K : Type*} {H : SimpleGraph α} {G : SimpleGraph V} (f : H →g G)
(c : G.EdgeLabeling K) : Prop :=
Function.Injective (c.pullback f)
Used by 1
DefinitionAnti-Ramsey number#✓fully proved
For a graph \(H\) on a finite vertex type and a natural number \(n\), the anti-Ramsey number \(\mathrm{AR}(n, H)\) is the largest \(k\) for which there is a coloring of the edges of the complete graph \(K_n\) on \(\{0, \dots, n-1\}\) with colors \(\{0, \dots, k-1\}\), every color used, that contains no rainbow copy of \(H\). Here a copy of \(H\) is an injective homomorphism from \(H\) to \(K_n\), and it is rainbow when distinct edges of \(H\) are sent to edges of distinct colors. If no such \(k\) exists, \(\mathrm{AR}(n, H) = 0\).
noncomputable def antiRamseyNum {α : Type*} [Fintype α] (H : SimpleGraph α) (n : ℕ) : ℕ :=
sSup {k | ∃ c : TopEdgeLabeling (Fin n) (Fin k), Function.Surjective c ∧
∀ f : H.Copy ⊤, ¬IsRainbow f.toHom c}
def IsRainbow {α V K : Type*} {H : SimpleGraph α} {G : SimpleGraph V} (f : H →g G)
(c : G.EdgeLabeling K) : Prop :=
Function.Injective (c.pullback f)
MathlibExt/Combinatorics/SimpleGraph/Coloring/Vertex.lean:173
Uses 1
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.