An interpolating sequent calculus for quantifier-free Presburger arithmetic
Craig interpolation has become a versatile tool in formal verification, used for instance to generate program assertions that serve as candidates for loop invariants. In this paper, we consider Craig interpolation for quantifier-free Presburger arithmetic (QFPA). Until recently, quantifier eliminati...
Main Authors: | , , , |
---|---|
Format: | Journal article |
Izdano: |
Springer
2011
|
_version_ | 1826256487664582656 |
---|---|
author | Brillout, A Kroening, D Rümmer, P al., E |
author_facet | Brillout, A Kroening, D Rümmer, P al., E |
author_sort | Brillout, A |
collection | OXFORD |
description | Craig interpolation has become a versatile tool in formal verification, used for instance to generate program assertions that serve as candidates for loop invariants. In this paper, we consider Craig interpolation for quantifier-free Presburger arithmetic (QFPA). Until recently, quantifier elimination was the only available interpolation method for this theory, which is, however, known to be potentially costly and inflexible. We introduce an interpolation approach based on a sequent calculus for QFPA that determines interpolants by annotating the steps of an unsatisfiability proof with partial interpolants. We prove our calculus to be sound and complete. We have extended the Princess theorem prover to generate interpolating proofs, and applied it to a large number of publicly available Presburger arithmetic benchmarks. The results document the robustness and efficiency of our interpolation procedure. Finally, we compare the procedure against alternative interpolation methods, both for QFPA and linear rational arithmetic. |
first_indexed | 2024-03-06T18:03:00Z |
format | Journal article |
id | oxford-uuid:0076e3c3-c779-45fe-95e0-1f390f573e1a |
institution | University of Oxford |
last_indexed | 2024-03-06T18:03:00Z |
publishDate | 2011 |
publisher | Springer |
record_format | dspace |
spelling | oxford-uuid:0076e3c3-c779-45fe-95e0-1f390f573e1a2022-03-26T08:29:39ZAn interpolating sequent calculus for quantifier-free Presburger arithmeticJournal articlehttp://purl.org/coar/resource_type/c_dcae04bcuuid:0076e3c3-c779-45fe-95e0-1f390f573e1aSymplectic Elements at OxfordSpringer2011Brillout, AKroening, DRümmer, Pal., ECraig interpolation has become a versatile tool in formal verification, used for instance to generate program assertions that serve as candidates for loop invariants. In this paper, we consider Craig interpolation for quantifier-free Presburger arithmetic (QFPA). Until recently, quantifier elimination was the only available interpolation method for this theory, which is, however, known to be potentially costly and inflexible. We introduce an interpolation approach based on a sequent calculus for QFPA that determines interpolants by annotating the steps of an unsatisfiability proof with partial interpolants. We prove our calculus to be sound and complete. We have extended the Princess theorem prover to generate interpolating proofs, and applied it to a large number of publicly available Presburger arithmetic benchmarks. The results document the robustness and efficiency of our interpolation procedure. Finally, we compare the procedure against alternative interpolation methods, both for QFPA and linear rational arithmetic. |
spellingShingle | Brillout, A Kroening, D Rümmer, P al., E An interpolating sequent calculus for quantifier-free Presburger arithmetic |
title | An interpolating sequent calculus for quantifier-free Presburger arithmetic |
title_full | An interpolating sequent calculus for quantifier-free Presburger arithmetic |
title_fullStr | An interpolating sequent calculus for quantifier-free Presburger arithmetic |
title_full_unstemmed | An interpolating sequent calculus for quantifier-free Presburger arithmetic |
title_short | An interpolating sequent calculus for quantifier-free Presburger arithmetic |
title_sort | interpolating sequent calculus for quantifier free presburger arithmetic |
work_keys_str_mv | AT brillouta aninterpolatingsequentcalculusforquantifierfreepresburgerarithmetic AT kroeningd aninterpolatingsequentcalculusforquantifierfreepresburgerarithmetic AT rummerp aninterpolatingsequentcalculusforquantifierfreepresburgerarithmetic AT ale aninterpolatingsequentcalculusforquantifierfreepresburgerarithmetic AT brillouta interpolatingsequentcalculusforquantifierfreepresburgerarithmetic AT kroeningd interpolatingsequentcalculusforquantifierfreepresburgerarithmetic AT rummerp interpolatingsequentcalculusforquantifierfreepresburgerarithmetic AT ale interpolatingsequentcalculusforquantifierfreepresburgerarithmetic |