Interpolation in theorem proving for program checking
Interpolation is a theorem-proving technique that consists in extracting from a proof of inconsistency
an intermediate formula, called interpolant,
between the formulae, say A and B, whose conjunction yields the contradiction.
The interpolant is made only of symbols shared between A and B
and therefore it can be used to capture an intermediate state,
if A and B describe program states.
It has applications in software model checking and invariant generation.
For the latter application it is key to generate interpolants with quantifiers,
since invariants often need them.
We studied in a systematic way interpolation systems for the proofs produced by key inference engines
of state-of-the-art theorem provers:
DPLL for propositional logic,
DPLL(T) and equality sharing for SMT-solving,
superposition-based inference systems
for first-order logic with equality, and
DPLL(Γ+T).
By using a two-stage approach we obtained interpolation systems for general proofs by superposition
and by DPLL(Γ+T), including model-based theory combination:
- Maria Paola Bonacina and Moa Johansson.
On interpolation in automated theorem proving.
Research Report 86/2012, Dipartimento di Informatica,
Università degli Studi di Verona, 1-64,
January 2012, revised and submitted to journal.
(Part of this work was presented at the
Workshop Logic: Between Semantics and Proof Theory,
in Honor of Prof. Arnon Avron's 60th Birthday,
School of Computer Science, Tel Aviv University, Tel Aviv, and at the
Meeting of the COST Action
Rich-model toolkit: an infrastructure for reliable computer systems (IC0901),
Eighth Haifa Verification Conference (HVC),
Haifa, Israel, November 2012.
A preliminary version of part of this work was presented at the
Meeting of the COST Action Rich-model toolkit:
an infrastructure for reliable computer systems (IC0901) as
Third Workshop on System Verification
by Automated Reasoning Methods (SVARM) and
Workshop on Automation in Proof Assistants (AIPA),
European Joint Conferences on Theory and Practice of Software (ETAPS),
Tallinn, Estonia, March-April 2012.)
- Maria Paola Bonacina.
Two-stage interpolation systems (Abstract).
In Notes of the Workshop on Interpolation (iPrA),
Twenty-fifth International Conference on Computer Aided Verification (CAV),
Saint Petersburg, Russia, July 2013.
- Maria Paola Bonacina and Moa Johansson.
Towards interpolation in an SMT solver with integrated superposition.
In Notes of the Ninth International
Workshop on Satisfiability Modulo Theories (SMT),
Twenty-Third International
Conference on Computer Aided Verification (CAV),
Snowbird, Utah, USA, July 2011.
Technical Report No. UCB/EECS-2011-80,
Department of Electrical Engineering and Computer Sciences,
University of California at Berkeley, 9-18, 2011.
(Presented also at the
Z3 Special Interest Group Meeting, Microsoft Research,
Cambridge, UK, November 2011 and at the
Meeting of the COST Action
Rich-model toolkit: an infrastructure for reliable computer systems (IC0901),
Torino, Italy, October 2011.)
- Maria Paola Bonacina and Moa Johansson.
On interpolation in decision procedures.
In Proceedings of the
Twentieth International Conference on Analytic Tableaux and Related Methods (TABLEAUX),
Bern, Switzerland, July 2011.
Springer,
Lecture Notes in Artificial Intelligence 6793:1-16, 2011.

Maria Paola Bonacina