Revisiting DRUP-based Interpolants with CaDiCaL 2.0
Basel Khouri, Yakir Vizel
TL;DR
This work implements DRUP-based interpolants inside CaDiCaL 2.0 by leveraging its Tracer API to maintain a separate DRUP proof and perform on-the-fly interpolant construction. The Drup2Itp framework decouples interpolation from solver internals, enabling proof core extraction, minimization, and replay-driven interpolant generation, including an incremental Minimizer variant. Experimental results in Avy on HWMCC benchmarks show that CaDiCaL with Drup2Itp improves runtime and solved-instance counts compared to Glucose-based configurations, and can even solve instances that were previously unsolved within a one-hour limit. The implementation is public and designed to be extendable to other proof formats, offering a flexible path to stronger interpolation-driven model checking with modern SAT solvers.
Abstract
We present our implementation of DRUP-based interpolants in CaDiCaL 2.0, and evaluate performance in the bit-level model checker Avy using the Hardware Model Checking Competition benchmarks. CaDiCaL is a state-of-the-art, open-source SAT solver known for its efficiency and flexibility. In its latest release, version 2.0, CaDiCaL introduces a new proof tracer API. This paper presents a tool that leverages this API to implement the DRUP-based algorithm for generating interpolants. By integrating this algorithm into CaDiCaL, we enable its use in model-checking workflows that require interpolants. Our experimental evaluation shows that integrating CaDiCaL with DRUP-based interpolants in Avy results in better performance (both runtime and number of solved instances) when compared to Avy with Glucose as the main SAT solver. Our implementation is publicly available and can be used by the formal methods community to further develop interpolation-based algorithms using the state-of-the-art SAT solver CaDiCaL. Since our implementation uses the Tracer API, it should be maintainable and applicable to future releases of CaDiCaL.
