← All papers
First page of Certified Knowledge Compilation with Application to Formally Verified Model Counting

Certified Knowledge Compilation with Application to Formally Verified Model Counting

Randal E. Bryant, Wojciech Nawrocki, Jeremy Avigad, Marijn J. H. Heule

cs.LO Jan 22, 2025 · v1
A CPOG proof checker and model counter for knowledge-compilation outputs are formally verified in the Lean 4 proof assistant.
Computing many useful properties of Boolean formulas, such as their weighted or unweighted model count, is intractable on general representations. It can become tractable when formulas are expressed in a special form, such as the decision decomposable negation normal form (decision-DNNF). Knowledge compilation is the process of converting a formula into such a form. Unfortunately existing knowledge compilers provide no guarantee that their output correctly represents the original formula, and therefore they cannot validate a model count, or any other computed value. We present Partitioned-Operation Graphs (POGs), a form that can encode all of the representations used by existing knowledge compilers. We have designed CPOG, a framework that can express proofs of equivalence between a POG and a Boolean formula in conjunctive normal form (CNF). We have developed a program that generates POG representations from the decision-DNNF graphs produced by the state-of-the-art knowledge compiler D4, as well as checkable CPOG proofs certifying that the output POGs are equivalent to the input CNF formulas. Our toolchain for generating and verifying POGs scales to all but the largest graphs produced by D4 for formulas from a recent model counting competition. Additionally, we have developed a formally verified CPOG checker and model counter for POGs in the Lean 4 proof assistant. In doing so, we proved the soundness of our proof framework. These programs comprise the first formally verified toolchain for weighted and unweighted model counting.

Existing knowledge compilers provide no guarantee that their output correctly represents the original Boolean formula, making it impossible to validate computed model counts or other derived properties.

The authors present Partitioned-Operation Graphs (POGs), a form that can encode all representations used by existing knowledge compilers, and CPOG, a framework for proofs of equivalence between a POG and a CNF formula. They generate POG representations from decision-DNNF graphs produced by the D4 compiler, along with certifiable CPOG proofs. A formally verified CPOG checker and model counter for POGs is developed in the Lean 4 proof assistant, with the soundness of the proof framework proved in Lean.

The toolchain for generating and verifying POGs scales to all but the largest graphs produced by D4 for formulas from a recent model counting competition. The Lean 4 programs comprise the first formally verified model counter.