Graph saturation
DefinitionSaturating non-edge#✓fully proved
Let \(F\) and \(G\) be simple graphs. A pair of vertices \(x, y\) of \(G\) is an \(F\)-saturating non-edge of \(G\) if \(x \ne y\), \(x\) and \(y\) are not adjacent in \(G\), and the graph \(G + xy\) obtained from \(G\) by adding the edge \(xy\) contains a copy of \(F\) (a subgraph isomorphic to \(F\), not necessarily induced).
def IsSaturatingNonedge (x y : W) : Prop :=
x ≠ y ∧ ¬G.Adj x y ∧ IsContained F (G ⊔ edge x y)
TheoremA saturating non-edge of an \(F\)-free graph creates a copy of \(F\)#✓fully proved
Let \(F\) and \(G\) be simple graphs, and let \(xy\) be an \(F\)-saturating non-edge of \(G\). If \(G\) is \(F\)-free, that is, \(G\) contains no copy of \(F\), then the graph \(G + xy\) obtained from \(G\) by adding the edge \(xy\) contains a copy of \(F\), and \(G\) does not.
theorem IsSaturatingNonedge.newCopy_of_free {x y : W} (h : IsSaturatingNonedge F G x y)
(hfree : Free F G) :
IsContained F (G ⊔ edge x y) ∧ ¬IsContained F G
def IsSaturatingNonedge (x y : W) : Prop :=
x ≠ y ∧ ¬G.Adj x y ∧ IsContained F (G ⊔ edge x y)
MathlibExt/Combinatorics/SimpleGraph/SaturatingNonedge.lean:44
Uses 1
DefinitionGraph of saturating non-edges#✓fully proved
Let \(F\) and \(G\) be simple graphs. The graph of \(F\)-saturating non-edges of \(G\) is the simple graph on the vertices of \(G\) whose edges are exactly the \(F\)-saturating non-edges of \(G\).
def saturatingNonedgeGraph : SimpleGraph W :=
fromRel (IsSaturatingNonedge F G)
def IsSaturatingNonedge (x y : W) : Prop :=
x ≠ y ∧ ¬G.Adj x y ∧ IsContained F (G ⊔ edge x y)
MathlibExt/Combinatorics/SimpleGraph/SaturatingNonedge.lean:44
Uses 1 · Used by 1
DefinitionNumber of saturating non-edges#✓fully proved
Let \(F\) and \(G\) be simple graphs such that \(G\) has only finitely many \(F\)-saturating non-edges. Then \(f_F(G)\) is the number of \(F\)-saturating non-edges of \(G\), counted as unordered pairs \(\{x, y\}\), that is, the number of edges of the graph of \(F\)-saturating non-edges of \(G\).
def numSaturatingNonedges : ℕ :=
#(saturatingNonedgeGraph F G).edgeFinset
def saturatingNonedgeGraph : SimpleGraph W :=
fromRel (IsSaturatingNonedge F G)
MathlibExt/Combinatorics/SimpleGraph/SaturatingNonedge.lean:74
Uses 1
Definition\(H\)-saturated graphs#✓fully proved
Let \(H\) be a simple graph. A simple graph \(G\) is \(H\)-saturated if \(G\) is \(H\)-free (it contains no copy of \(H\) as a subgraph) and is maximal with this property: every \(H\)-free simple graph \(G'\) on the same vertex set as \(G\) with \(G \subseteq G'\) equals \(G\).
def IsSaturated (G : SimpleGraph W) : Prop :=
Maximal H.Free G
TheoremSaturation via strict supergraphs#✓fully proved
Let \(H\) be a simple graph. A simple graph \(G\) is \(H\)-saturated if and only if \(G\) is \(H\)-free and every simple graph \(G'\) on the same vertex set with \(G \subsetneq G'\) contains a copy of \(H\).
theorem isSaturated_iff_forall_gt (G : SimpleGraph W) :
H.IsSaturated G ↔ H.Free G ∧ ∀ ⦃G' : SimpleGraph W⦄, G < G' → ¬ H.Free G'
Uses 1 · Used by 1
TheoremSaturation via missing edges#✓fully proved
Let \(H\) be a simple graph. A simple graph \(G\) is \(H\)-saturated if and only if \(G\) is \(H\)-free and, for all distinct vertices \(s\) and \(t\) of \(G\) that are not adjacent in \(G\), the graph \(G + st\) obtained from \(G\) by adding the edge \(st\) contains a copy of \(H\).
This is the usual missing-edge definition of \(H\)-saturation.
theorem isSaturated_iff_missing_edge (G : SimpleGraph W) :
H.IsSaturated G ↔
H.Free G ∧ ∀ s t : W, s ≠ t → ¬ G.Adj s t → ¬ H.Free (G ⊔ edge s t)
Uses 2
TheoremSaturation of complete graphs#✓fully proved
Let \(H\) be a simple graph. The complete graph on any vertex set is \(H\)-saturated if and only if it is \(H\)-free.
A complete graph has no missing edge, so only \(H\)-freeness matters. The vertex set of the complete graph is independent of that of \(H\), so this condition is not vacuous: \(H\) need not embed in a complete graph with fewer vertices.
theorem isSaturated_top : H.IsSaturated (⊤ : SimpleGraph W) ↔ H.Free (⊤ : SimpleGraph W)
Uses 1
DefinitionEdge counts of saturated graphs#✓fully proved
Let \(H\) be a simple graph and \(n\) a natural number. The set of saturated edge counts of \(H\) on \(n\) vertices is the set of natural numbers \(m\) such that some \(H\)-saturated simple graph on the vertex set \(\{0, 1, \dots, n - 1\}\) has exactly \(m\) edges.
def satCounts (n : ℕ) : Set ℕ :=
{ m | ∃ G : SimpleGraph (Fin n), ∃ _ : DecidableRel G.Adj, H.IsSaturated G ∧
G.edgeFinset.card = m }
Uses 1 · Used by 4
DefinitionSaturation number#✓fully proved
Let \(H\) be a simple graph and \(n\) a natural number. The saturation number \(\operatorname{sat}(n, H)\) is the minimum number of edges of an \(H\)-saturated simple graph on the vertex set \(\{0, 1, \dots, n - 1\}\), and is \(0\) when no such graph exists.
noncomputable def sat (n : ℕ) : ℕ :=
sInf (H.satCounts n)
Uses 1 · Used by 3
TheoremThe saturation number is zero when no saturated graph exists#✓fully proved
Let \(H\) be a simple graph, \(n\) a natural number, and \(\operatorname{sat}(n, H)\) the saturation number of \(H\) on \(n\) vertices. If the set of saturated edge counts of \(H\) on \(n\) vertices is empty, that is, no \(H\)-saturated simple graph on the vertex set \(\{0, 1, \dots, n - 1\}\) exists, then \(\operatorname{sat}(n, H) = 0\).
theorem sat_eq_zero_of_counts_empty (n : ℕ) (h : H.satCounts n = ∅) : H.sat n = 0
Uses 2
TheoremSaturated graphs bound the saturation number#✓fully proved
Let \(H\) be a simple graph, \(n\) a natural number, and \(\operatorname{sat}(n, H)\) the saturation number of \(H\) on \(n\) vertices. Every \(H\)-saturated simple graph on the vertex set \(\{0, 1, \dots, n - 1\}\) has at least \(\operatorname{sat}(n, H)\) edges.
theorem sat_le_card_of_isSaturated (n : ℕ) (G : SimpleGraph (Fin n))
[DecidableRel G.Adj] (h : H.IsSaturated G) :
H.sat n ≤ G.edgeFinset.card
Uses 3
TheoremSaturation number is attained by a saturated graph#✓fully proved
Attainment: when a saturated graph exists, some saturated graph has exactly
sat(n, H) edges.
theorem exists_isSaturated_card_eq_sat (n : ℕ) (h : (H.satCounts n).Nonempty) :
∃ G : SimpleGraph (Fin n), ∃ _ : DecidableRel G.Adj, H.IsSaturated G ∧
G.edgeFinset.card = H.sat n
Uses 3
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.