THEOREM 1 — one round of Algorithm A (B) eliminates at least ⅛·|E′| − 1/16 (⅛·|E′|) edges in expectation
ProvedLubyMIS.MonteCarlo.theorem1Let be the current graph before the -th execution of the body of the while loop of Luby's MIS algorithm, and let be the number of vertices of the input graph, so . Write and for the number of edges after that execution, i.e. after removing where is produced by the select step.
- For Algorithm A (independent uniform priorities in ; the strict local minima),
- For Algorithm B (independent coins with , and if ; the marked vertices whose marked neighbours all have smaller degree),
Each round thus removes a constant fraction of the remaining edges in expectation, which is what makes the expected number of rounds of both algorithms .
Formalization Note The expectation is taken for a fixed current graph , i.e. conditionally on the history of the first rounds, as in the paper's proof ("Let be the graph before the th execution"); the unconditional statement follows by averaging. is a parameter with and , not itself. Expectations are finite sums over the priority vectors and the coin vectors.
import Mathlib import Definitions.Def_LubyMIS_MonteCarlo_Basic
namespace LubyMIS.MonteCarlo
/-- THEOREM 1 (Luby 1986, §3.4, p. 1040). For the current graph `H = G′` and `n ≥ max(1, |V′|)` the
number of vertices of the input graph, one execution of the loop body eliminates in expectation
(1) at least `⅛ · |E′| − 1/16` edges under Algorithm A, and
(2) at least `⅛ · |E′|` edges under Algorithm B. -/
theorem theorem1 {V : Type*} [Fintype V] [DecidableEq V] (n : ℕ) (hn : 1 ≤ n)
(hV : Fintype.card V ≤ n) (H : SimpleGraph V) [DecidableRel H.Adj] :
expA n (fun π => (eliminated H (selectA H π) : ℝ)) ≥
1 / 8 * (H.edgeFinset.card : ℝ) - 1 / 16 ∧
expB H (fun c => (eliminated H (selectB H c) : ℝ)) ≥ 1 / 8 * (H.edgeFinset.card : ℝ) := by sorry
end LubyMIS.MonteCarlo
Read-back
What the Lean code literally says, in plain math · claude-opus-5-5
Throughout, is an arbitrary finite type of vertices with decidable equality. is a natural number and is a simple graph on with a decidable adjacency relation. The statement uses five objects from the imported module Definitions.Def_LubyMIS_MonteCarlo_Basic: expA, expB, selectA, selectB and eliminated. Their definitions are not part of the code under audit. This read-back therefore cannot unfold them, and it describes them only by how the statement uses them:
- is a real number built from and a real-valued function of some argument , whose type is fixed by that module (it may depend on ).
- is a real number built from the graph and a real-valued function of some argument , whose type is also fixed by that module (it may depend on ).
- and are objects built from and , or from and .
- is a quantity built from and such an object , then converted into a real number. It is most likely a natural-number count, but that is not visible here.
The statement's names and its doc comment suggest that these are expectations, random selection rules and an eliminated-edge count. The code shown does not establish any of that.
Hypotheses. Both of the following hold:
- ;
- , where is the number of vertices.
Conclusion. Let be the number of edges of . Both inequalities hold together:
Both bounds are non-strict () and are compared as real numbers. The number appears only in the first inequality, as the parameter of . The second inequality does not mention at all, so the hypotheses on restrict it only through the requirement that some satisfying them exists; one always does, namely . The integer must be at least but may be arbitrarily larger than , and the first inequality is claimed for every such .
Degenerate cases. The hypotheses allow to be empty, since holds for every . They also allow to have one vertex, or to have no edges at all. In every such case , and the statement reduces to:
- ;
- .
The hypotheses and can always be satisfied, so the statement is not vacuous. Whether these degenerate cases hold trivially depends on the imported definitions, which are not shown. For example, it depends on what and return when their domain is empty, or when a normalisation involves dividing by zero, which Lean evaluates to . It also depends on whether can be negative. None of this can be determined from the code given. The statement contains no subtraction in : the is taken in .
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.