While this submission is a draft, it cannot be used by other submissions.

Descending target search in Solve

Lax263307.TargetSearch · concepts/Lax263307/TargetSearch.lean · lax-263307

proven

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Theorem

    SolveSolve tries targets in descending order. A failed target kk is accompanied by a proof that every independent set has size less than kk. A successful target returns an independent set of size at least ρk\rho k. The first successful target is therefore a certified upper bound on the independence number, and the returned set retains the factor ρ\rho of that bound. The zero target provides the terminating empty-set case.

    Concept map
    2 concepts; 3 descendants hidden
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A
    Evidence

    Each proof establishes this claim relative to its assumptions.

    Lean source view on GitHub

    1import Lax263307.LinearRelaxation
    2import Mathlib.Data.Rat.Defs
    3
    4/-!
    5---
    6title: Descending target search in Solve
    7type: theorem
    8---
    9`Solve` tries targets in descending order. A failed target kk is accompanied
    10by a proof that every independent set has size less than kk. A successful
    11target returns an independent set of size at least ρk\rho k.
    12The first successful target is therefore a certified upper bound on the
    13independence number, and the returned set retains the factor ρ\rho of that
    14bound. The zero target provides the terminating empty-set case.
    15
    16# Attribution
    17
    18Bonnet–Chang, Algorithm 1 and the last paragraph of the proof of Lemma 14.
    19-/
    20
    21namespace Lax263307.TargetSearch
    22
    23/-- Try positive targets in decreasing order, falling back to the empty set. -/
    24def search {n : ℕ} (attempt : ℕ → Option (Finset (Fin n))) :
    25 ℕ → Finset (Fin n) × ℕ
    26 | 0 => (∅, 0)
    27 | k + 1 => match attempt (k + 1) with
    28 | some I => (I, k + 1)
    29 | none => search attempt k
    30
    31/-- The target loop preserves the upper-bound and approximation invariants. -/
    32axiom search_correct {n : ℕ} (G : SimpleGraph (Fin n)) (ρ : ℝ)
    33 (attempt : ℕ → Option (Finset (Fin n)))
    34 (success : ∀ k, k ≤ n → ∀ I, attempt k = some I →
    35 G.IsIndepSet (I : Set (Fin n)) ∧ ρ * k ≤ I.card)
    36 (failure : ∀ k, 0 < k → k ≤ n → attempt k = none →
    37 ∀ J : Finset (Fin n), G.IsIndepSet (J : Set (Fin n)) → J.card < k) :
    38 let result := search attempt n
    39 G.IsIndepSet (result.1 : Set (Fin n)) ∧
    40 (∀ J : Finset (Fin n), G.IsIndepSet (J : Set (Fin n)) → J.card ≤ result.2) ∧
    41 result.2 ≤ n ∧ ρ * result.2 ≤ result.1.card
    42
    43end Lax263307.TargetSearch
    44
    Show Proof

    Attribution

    Bonnet–Chang, Algorithm 1 and the last paragraph of the proof of Lemma 14.

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…