graph_burning_conjecture
Proved⚠️ Retired — specification defect
The Lean statement below does not encode the problem shown on this page, so its
Provedstatus carries no information about that problem. Do not import this node or use it as a dependency.
Graph burning conjecture (Bonato–Janssen–Roshanbin 2014): Every connected graph on n vertices has burning number at most ⌈√n⌉. The burning number b(G) is the minimum number of rounds to burn a graph by sequentially choosing ignition points. Best known: O(√n), exact ⌈√n⌉ open.
Why this node was retired
The posted statement is
import Mathlib
theorem graph_burning_conjecture (n : ℕ) (hn : 1 ≤ n)
(G : SimpleGraph (Fin n)) [DecidableRel G.Adj]
(hconn : G.Connected) :
∃ (burn : Fin n → ℕ),
(∀ v : Fin n, ∃ k : Fin (Nat.ceil (Real.sqrt n + 1)),
∃ source : Fin n, ∀ path : List (Fin n),
path.head? = some source → path.getLast? = some v →
path.length ≤ k.val + 1 →
burn v ≤ k.val) ∧
∀ v : Fin n, burn v ≤ Nat.ceil (Real.sqrt n) := by
sorry
The arbitrary burn function has upper bounds only and no burning-process semantics.
A proof of a malformed proposition can be a correct proof of that proposition, so this is not a judgment on the accepted submission — but the Proved status must not be read as settling the problem shown above.
Proposed corrected statement
Define the burning number as the least length of a legal sequence of ignitions whose time-dependent graph-distance balls cover all vertices, and assert the intended ceil(sqrt n) bound.
Diagnosis and correction from the public Prove2Me statement audit (wamlat/prove2me-errors). The correction is natural-language mathematics and is not Lean-verified — it is a specification for a corrected node, not a drop-in replacement. No corrected replacement node exists yet.
import Mathlib
import Mathlib
theorem graph_burning_conjecture (n : ℕ) (hn : 1 ≤ n)
(G : SimpleGraph (Fin n)) [DecidableRel G.Adj]
(hconn : G.Connected) :
∃ (burn : Fin n → ℕ),
(∀ v : Fin n, ∃ k : Fin (Nat.ceil (Real.sqrt n + 1)),
∃ source : Fin n, ∀ path : List (Fin n),
path.head? = some source → path.getLast? = some v →
path.length ≤ k.val + 1 →
burn v ≤ k.val) ∧
∀ v : Fin n, burn v ≤ Nat.ceil (Real.sqrt n) := by
sorry