Craig interpolation is a technique known to logicians since the 1950s [1]. Given two formulae A andC such that A impliesC , written A ⇒ C , an interpolant is a formula I such that A ⇒ I , I ⇒ C , and all of I ’s symbolic constants occur in both A and C . Interpolants exist for any two first-order formulae A and C such that A ⇒ C . The formula I can be viewed as a minimal explanation for the given implication. This property has made Craig inerpolation a core component of numerous algorithmic methods for formal verification. Its primary application is approximation, accelerating convergence of fixpoint calculations for finite-state or infinite-state systems. A key goal is frequently the generation of assertions at intermediate program points that serve as candidates for loop invariants and thus assist the safety analysis of programs. In program verification, we typically consider the special case C = ¬B of the above formulation, so that the validity of A ⇒ C is tantamount to the unsatisfiability of A ∧ B. This latter formula is used to encode the reachability of an error condition along a lengthbounded path of the program; its unsatisfiability thus proves the program correct along paths up to that length. In order to support expressive programming languages,much effort has been invested in algorithms that compute interpolants for various theories. As a result, efficient interpolation methods are known for propositional logic, linear arithmetic over the reals with uninterpreted functions [2–4], linear arithmetic over the integers [5–7] and datastructures like arrays and sets [8]. This special issue of the Journal ofAutomatedReasoning features three contributions to the body of work on algorithms for interpolation. In the first paper, titled Labelled Interpolation Systems for Hyper-Resolution, Clausal, and Local Proofs, Schlaipfer and Weissenbacher address the problem that many applications require interpolants with additional properties, say to obtain an inductive argument. It is well-known that resolution proofs can be used to derive more than one interpolant, and that this process can be parameterised [9]. Schlaipfer
[1]
Christopher Lynch,et al.
Interpolants for Linear Arithmetic in SMT
,
2008,
ATVA.
[2]
Daniel Kroening,et al.
An Interpolating Sequent Calculus for Quantifier-Free Presburger Arithmetic
,
2010,
IJCAR.
[3]
Agostino Cortesi,et al.
Verification, Model Checking, and Abstract Interpretation
,
2002,
Lecture Notes in Computer Science.
[4]
William Craig,et al.
Linear reasoning. A new form of the Herbrand-Gentzen theorem
,
1957,
Journal of Symbolic Logic.
[5]
Kenneth L. McMillan,et al.
An interpolating theorem prover
,
2005,
Theor. Comput. Sci..
[6]
Daniel Kroening,et al.
Interpolant Strength
,
2010,
VMCAI.
[7]
Calogero G. Zarba,et al.
Interpolation for data structures
,
2006,
SIGSOFT '06/FSE-14.
[8]
Rupak Majumdar,et al.
CSIsat: Interpolation for LA+EUF
,
2008,
CAV.
[9]
Viorica Sofronie-Stokkermans,et al.
Constraint solving for interpolation
,
2007,
J. Symb. Comput..