Graph Coloring #
This module defines colorings of simple graphs (also known as proper colorings in the literature). A graph coloring is the attribution of "colors" to all of its vertices such that adjacent vertices have different colors. A coloring can be represented as a homomorphism into a complete graph, whose vertices represent the colors.
Main definitions #
G.Coloring α
is the type ofα
-colorings of a simple graphG
, withα
being the set of available colors. The type is defined to be homomorphisms fromG
into the complete graph onα
, and colorings have a coercion toV → α
.G.Colorable n
is the proposition thatG
isn
-colorable, which is whether there exists a coloring with at most n colors.G.chromaticNumber
is the minimaln
such thatG
isn
-colorable, or⊤
if it cannot be colored with finitely many colors. (Cardinal-valued chromatic numbers are more niche, so we stick toℕ∞
.) We writeG.chromaticNumber ≠ ⊤
to mean a graph is colorable with finitely many colors.C.colorClass c
is the set of vertices colored byc : α
in the coloringC : G.Coloring α
.C.colorClasses
is the set containing all color classes.
TODO #
Gather material from:
Trees
Planar graphs
Chromatic polynomials
develop API for partial colorings, likely as colorings of subgraphs (
H.coe.Coloring α
)
An α
-coloring of a simple graph G
is a homomorphism of G
into the complete graph on α
.
This is also known as a proper coloring.
Equations
Instances For
Construct a term of SimpleGraph.Coloring
using a function that
assigns vertices to colors and a proof that it is as proper coloring.
(Note: this is a definitionally the constructor for SimpleGraph.Hom
,
but with a syntactically better proper coloring hypothesis.)
Equations
Instances For
The color class of a given color.
Equations
Instances For
The set containing all color classes.
Equations
Instances For
Equations
Whether a graph can be colored by at most n
colors.
Equations
Instances For
The coloring of an empty graph.
Equations
Instances For
The "tautological" coloring of a graph, using the vertices of the graph as colors.
Equations
Instances For
The chromatic number of a graph is the minimal number of colors needed to color it.
This is ⊤
(infinity) iff G
isn't colorable with finitely many colors.
If G
is colorable, then ENat.toNat G.chromaticNumber
is the ℕ
-valued chromatic number.
Equations
Instances For
Given an embedding, there is an induced embedding of colorings.
Equations
Instances For
Given an equivalence, there is an induced equivalence between colorings.
Equations
Instances For
There is a noncomputable embedding of α
-colorings to β
-colorings if
β
has at least as large a cardinality as α
.
Equations
Instances For
Noncomputably get a coloring from colorability.
Equations
Instances For
The bicoloring of a complete bipartite graph using whether a vertex is on the left or on the right.
Equations
Instances For
Cliques #
Given a colouring α
of G
, and a clique of size at least the number of colours, the clique
contains a vertex of each colour.
The canonical ι
-coloring of a completeMultipartiteGraph
with parts indexed by ι