Modular SMT proofs for fast reflexive checking inside coq

  • Authors:
  • Frédéric Besson;Pierre-Emmanuel Cornilleau;David Pichardie

  • Affiliations:
  • INRIA Rennes – Bretagne Atlantique, France;INRIA Rennes – Bretagne Atlantique, France;INRIA Rennes – Bretagne Atlantique, France

  • Venue:
  • CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a new methodology for exchanging unsatisfiability proofs between an untrusted SMT solver and a sceptical proof assistant with computation capabilities like Coq. We advocate modular SMT proofs that separate boolean reasoning and theory reasoning; and structure the communication between theories using Nelson-Oppen combination scheme. We present the design and implementation of a Coq reflexive verifier that is modular and allows for fine-tuned theory-specific verifiers. The current verifier is able to verify proofs for quantifier-free formulae mixing linear arithmetic and uninterpreted functions. Our proof generation scheme benefits from the efficiency of state-of-the-art SMT solvers while being independent from a specific SMT solver proof format. Our only requirement for the SMT solver is the ability to extract unsat cores and generate boolean models. In practice, unsat cores are relatively small and their proof is obtained with a modest overhead by our proof-producing prover. We present experiments assessing the feasibility of the approach for benchmarks obtained from the SMT competition.