The Omega test: a fast and practical integer programming algorithm for dependence analysis
Proceedings of the 1991 ACM/IEEE conference on Supercomputing
Simplification by Cooperating Decision Procedures
ACM Transactions on Programming Languages and Systems (TOPLAS)
A compiled implementation of strong reduction
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
TPHOLs '99 Proceedings of the 12th International Conference on Theorem Proving in Higher Order Logics
Lazy Theorem Proving for Bounded Model Checking over Infinite Domains
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
Proof Generation in the Touchstone Theorem Prover
CADE-17 Proceedings of the 17th International Conference on Automated Deduction
Compiling with proofs
Simplify: a theorem prover for program checking
Journal of the ACM (JACM)
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
veriT: An Open, Trustable and Efficient SMT-Solver
CADE-22 Proceedings of the 22nd International Conference on Automated Deduction
Electronic Notes in Theoretical Computer Science (ENTCS)
Cooperating Theorem Provers: A Case Study Combining HOL-Light and CVC Lite
Electronic Notes in Theoretical Computer Science (ENTCS)
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Fast reflexive arithmetic tactics the linear case and beyond
TYPES'06 Proceedings of the 2006 international conference on Types for proofs and programs
Source-level proof reconstruction for interactive theorem proving
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Proving equalities in a commutative ring done right in coq
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
Reflecting proofs in first-order logic with equality
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
Proof-producing congruence closure
RTA'05 Proceedings of the 16th international conference on Term Rewriting and Applications
Extending coq with imperative features and its application to SAT verification
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Fast LCF-Style proof reconstruction for z3
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
A modular integration of SAT/SMT solvers to coq through proof witnesses
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Verified heap theorem prover by paramodulation
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
A bisimulation between DPLL(T) and a proof-search strategy for the focused sequent calculus
Proceedings of the Eighth ACM SIGPLAN international workshop on Logical frameworks & meta-languages: theory & practice
Hi-index | 0.00 |
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.