Lovász Local Lemma for -SAT: bounded variable occurrence implies satisfiability
ProvedQLLL.SAT.sat_of_degree_leA clause is a disjunction of literals over boolean variables, and an assignment satisfies it if at least one literal evaluates to true. Let be a CNF formula over the variables in which every clause involves exactly distinct variables, where . Let be an integer such that every variable occurs in at most clauses of , and suppose
Then is satisfiable.
This is Corollary 2 of Ambainis, Kempe and Sattath: a -CNF formula in which every variable appears in at most clauses is satisfiable. It is the classical model for the -QSAT corollary QLLL.QSAT.satisfiable_of_degree_le.
Formalization Note Formulas are Std.Sat.CNF (Fin V) from the Lean core library and satisfiability is Std.Sat.CNF.Sat. The paper's bound "at most clauses" is written as for an integer . The hypotheses and are explicit; with the case only covers the empty formula.
import Definitions.Def_QLLL_LocalLemma_Basic
import Definitions.Def_QLLL_Classical_KSAT
import Mathlib
import Std.Sat.CNF
open QLLL
open QLLL.SAT
open Finset Std.Sat
variable (Ω : Type*) [Fintype Ω] [DecidableEq Ω] [Nonempty Ω]
variable {V : ℕ}theorem QLLL.SAT.sat_of_degree_le {V : ℕ} (f : CNF (Fin V)) (k D : ℕ) (hk : 1 ≤ k) (hD1 : 1 ≤ D)
(hvars : ∀ i : Fin f.clauses.size, (clauseVars (f.clauses[i.1]'i.2)).card = k)
(hdeg : ∀ v : Fin V, (univ.filter fun i : Fin f.clauses.size =>
v ∈ clauseVars (f.clauses[i.1]'i.2)).card ≤ D)
(hDk : (D : ℝ) * (Real.exp 1 * k) ≤ 2 ^ k) :
∃ a, CNF.Sat a f := by sorry