Rocket-Fast Proof Checking for SMT Solvers [chapter]

Michał Moskal
Tools and Algorithms for the Construction and Analysis of Systems  
Modern Satisfiability Modulo Theories (SMT) solvers are used in a wide variety of software and hardware verification applications. Proof producing SMT solvers are very desirable as they increase confidence in the solver and ease debugging/profiling, while allowing for scenarios like Proof-Carrying Code (PCC). However, the size of typical proofs generated by SMT solvers poses a problem for the existing systems, up to the point where proof checking consumes orders of magnitude more computer
more » ... ces than proof generation. In this paper we show how this problem can be addressed using a simple term rewriting formalism, which is used to encode proofs in a natural deduction style. We formally prove soundness of our rules and evaluate an implementation of the term rewriting engine on a set of proofs generated from industrial benchmarks. The modest memory and CPU time requirements of the implementation allow for proof checking even on a small PDA device, paving a way for PCC on such devices.
doi:10.1007/978-3-540-78800-3_38 dblp:conf/tacas/Moskal08 fatcat:6znamvq5cfhnxc6bmkmkk2clsi