Title :
DRUPing for interpolates
Author :
Gurfinkel, Arie ; Vizel, Yakir
Abstract :
We present a method for interpolation based on DRUP proofs. Interpolants are widely used in model checking, synthesis and other applications. Most interpolation algorithms rely on a resolution proof produced by a SAT-solver for unsatisfaible formulas. The proof is traversed and translated into an interpolant by replacing resolution steps with AND and OR gates. This process is efficient (once there is a proof) and generates interpolants that are linear in the size of the proof. In this paper, we address three known weakness of this approach: (i) performance degradation experienced by the SAT-solver and the extra memory requirements needed when logging a resolution proof; (ii) the proof generated by the solver is not necessarily the "best" proof for interpolantion, and (iii) combining proof logging with pre-processing is complicated. We show that these issues can be remedied by using DRUP proofs. First, we show how to produce an interpolant from a DRUP proof, even when pre-processing is enabled. Second, we give a novel interpolation algorithm that produces interpolants partially in CNF. Third, we show how DRUP proof can be restructured on-the-fly to yield better interpolants. We implemented our DRUP-based interpolation framework in MiniSAT, and evaluated its affect using Avy - a SAT-based model checking algorithm.
Keywords :
computability; formal verification; interpolation; logic gates; theorem proving; AND and OR gates; CNF; DRUP proofs; DRUP-based interpolation framework; DRUPing; MiniSAT; SAT-based model checking algorithm; SAT-solver; interpolants; interpolation algorithm; memory requirement; performance degradation; proof logging; replacing resolution step; resolution proof; unsatisfaible formula; Color; Context; Interpolation; Model checking; Partitioning algorithms; Reactive power; Safety;
Conference_Titel :
Formal Methods in Computer-Aided Design (FMCAD), 2014
Conference_Location :
Lausanne
DOI :
10.1109/FMCAD.2014.6987601