Synthesis of circular compositional program proofs via abduction

Isil Dillig, Thomas Dillig, Boyang Li, Ken McMillan, Mooly Sagiv

Research output: Contribution to journalArticlepeer-review

Abstract

This paper presents a new technique for synthesizing circular compositional proofs of program correctness. Our technique uses abductive inference to decompose the proof into small lemmas (i.e., compositionality) and proves that each lemma is not the first one to fail (i.e., circularity). Our approach represents lemmas as small program fragments annotated with pre and post-conditions and uses different tools to discharge each different lemma. This approach allows us to combine the strengths of different verifiers and addresses scalability concerns, as each lemma concerns the correctness of small syntactic fragments of the program. We have implemented our proposed technique for generating circular compositional proofs and used four different program analysis tools to discharge the proof subgoals. We evaluate our approach on a collection of synthetic and real-world benchmarks and show that our technique can successfully verify applications that cannot be verified by any individual technique.

Original languageEnglish
Pages (from-to)535-547
Number of pages13
JournalInternational Journal on Software Tools for Technology Transfer
Volume19
Issue number5
DOIs
StatePublished - 1 Oct 2017

Keywords

  • Abductive inference
  • Circular compositional reasoning
  • Program verification

All Science Journal Classification (ASJC) codes

  • Software
  • Information Systems

Fingerprint

Dive into the research topics of 'Synthesis of circular compositional program proofs via abduction'. Together they form a unique fingerprint.

Cite this