Skip to main content


Swipe to navigate through the chapters of this book

Published in:
Cover of the book

Open Access 2021 | OriginalPaper | Chapter

cake_lpr: Verified Propagation Redundancy Checking in CakeML

Authors : Yong Kiam Tan, Marijn J. H. Heule, Magnus O. Myreen

Published in: Tools and Algorithms for the Construction and Analysis of Systems

Publisher: Springer International Publishing

Modern SAT solvers can emit independently checkable proof certificates to validate their results. The state-of-the-art proof system that allows for compact proof certificates is propagation redundancy (PR). However, the only existing method to validate proofs in this system with a formally verified tool requires a transformation to a weaker proof system, which can result in a significant blowup in the size of the proof and increased proof validation time. This paper describes the first approach to formally verify PR proofs on a succinct representation; we present (i) a new Linear PR (LPR) proof format, (ii) a tool to efficiently convert PR proofs into LPR format, and (iii) cake_lpr, a verified LPR proof checker developed in CakeML. The LPR format is backwards compatible with the existing LRAT format, but extends the latter with support for the addition of PR clauses. Moreover, cake_lpr is verified using CakeML ’s binary code extraction toolchain, which yields correctness guarantees for its machine code (binary) implementation. This further distinguishes our clausal proof checker from existing ones because unverified extraction and compilation tools are removed from its trusted computing base. We experimentally show that LPR provides efficiency gains over existing proof formats and that the strong correctness guarantees are obtained without significant sacrifice in the performance of the verified executable.

cake_lpr: Verified Propagation Redundancy Checking in CakeML
Yong Kiam Tan
Marijn J. H. Heule
Magnus O. Myreen
Copyright Year