Finite graph predicates admit maximal extensions
Provedfinite_graph_maximal_extension__p2m_0d55c294_ea6d_4f9f_a448_4b66814798e5_a1approximation-algorithmsplanar-graphstreewidth
For any predicate on graphs over a finite vertex type, every graph satisfying the predicate has a predicate-satisfying supergraph that is maximal among such supergraphs and has at least as many edges as the original graph.
Preamble
import Mathlib
Formal statement
theorem finite_graph_maximal_extension__p2m_0d55c294_ea6d_4f9f_a448_4b66814798e5_a1
{V : Type} [Fintype V]
(G : SimpleGraph V) (P : SimpleGraph V → Prop) (hP : P G) :
letI : ∀ H : SimpleGraph V, DecidableRel H.Adj :=
fun H => Classical.decRel H.Adj
∃ H : SimpleGraph V, G ≤ H ∧ P H ∧
(∀ J : SimpleGraph V, P J → H ≤ J → J = H) ∧
G.edgeFinset.card ≤ H.edgeFinset.card := by sorrySource
David P. Williamson and David B. Shmoys, The Design of Approximation Algorithms, Cambridge University Press, 2011, author electronic manuscript, Section 10.2, proof of Theorem 10.11, pp. 270-272. https://doi.org/10.1017/CBO9780511921735. Bounded tree-width of the pieces: Robertson–Seymour (planar graphs of radius r have tree-width at most 3r+1) / Bodlaender (k-outerplanar graphs have tree-width at most 3k-1).