Formalisation of Caro-Wei type lower bounds for graph parameters.
The general definition is as follows: a function
Conceptually, these bounds only depend on the degree distribution of the graph.
The Lean definition provided in this module is:
def IsCaroWeiTypeLowerBound (f : ℕ → ℝ)
(π : {n : ℕ} → FiniteSimpleGraph n → Finset (Fin n) → Prop) :=
∀ {n : ℕ},
∀ G : FiniteSimpleGraph n,
∃ s : Finset (Fin n), π G s
∧ ∑ v, f (G.graph.degree v) ≤ #swhere FiniteSimpleGraph is defined as:
structure FiniteSimpleGraph (n : ℕ) where
graph : SimpleGraph (Fin n)
decAdj : DecidableRel graph.Adj := by aesop_graphThis structure is used instead of SimpleGraph so that SimpleGraph.degree can be used.
Recall that SimpleGraph.degree is defined by:
SimpleGraph.degree.{u_1} {V : Type u_1} (G : SimpleGraph V) (v : V) [Fintype ↑(G.neighborSet v)] : ℕAnd Fintype (G.neighborSet v) can be automatically deduced by Fintype V and DecidableRel G.Adj.
Caro-Wei's theorem (1979, 1981) states that
In Lean, this theorem is formalised by (see IndepSet.lean):
namespace CaroWeiType
-- Conceptually: noncomputable abbrev cw_bound : ℕ → ℝ := fun d ↦ (d + 1 : ℝ)⁻¹
-- but cw_bound is actually definde as `aks_bound 0` (see below)
theorem IndepSet_LowerBound_iff (f : ℕ → ℝ) :
IsCaroWeiTypeLowerBound f (fun {n : ℕ} (G : FiniteSimpleGraph n) s ↦ G.graph.IsIndepSet s)
↔ f ≤ cw_bound := byThe proof in itself just consists in (1) the equivalence of
Caro-Wei's theorem (1987) states that if
This is formalised as follows (see Degenerate.lean):
namespace SimpleGraph
abbrev IsDegenerateSet {V : Type*} [Fintype V] (G : SimpleGraph V) [DecidableRel G.Adj] (k : ℕ)
(s : Finset V) :=
∀ t ⊆ s, t ≠ ∅ → ∃ x ∈ t, {y ∈ t | G.Adj x y}.card ≤ k
namespace CaroWeiType
noncomputable def aks_bound (k : ℕ) (d : ℕ) : ℝ :=
min 1 ((k + 1) * (d + 1 : ℝ)⁻¹)
theorem kDegenerateSet_LowerBound_iff (f : ℕ → ℝ) :
∀ k : ℕ,
IsCaroWeiTypeLowerBound f (fun G s ↦ G.graph.IsDegenerateSet k s)
↔ f ≤ aks_bound k := bySee the LICENSE (copied from https://github.com/non-ai-licenses/non-ai-licenses/tree/main)
- Generic definition
- get rid of
Classical.propDecidable(by definingFiniteSimpleGraph) - proof for independent sets (Caro-Wei)
- proof for
$k$ -degenerate induced subgraphs (Alon-Khhan-Seymour)
- bound for induced caterpillars (5/6 on leaves)
- bound for degree-bounded induced caterpillars
- bound for degree-bounded induced forests of stars