Transformation-enabled precondition inference

Bishoksan Kafle, Graeme Gange, Peter J. Stuckey, Peter Schachte, Harald SØndergaard

Research output: Contribution to journalArticleResearchpeer-review

1 Citation (Scopus)

Abstract

Precondition inference is a non-trivial problem with important applications in program analysis and verification. We present a novel iterative method for automatically deriving preconditions for the safety and unsafety of programs. Each iteration maintains over-approximations of the set of safe and unsafe initial states, which are used to partition the program's initial states into those known to be safe, known to be unsafe and unknown. We then construct revised programs with those unknown initial states and iterate the procedure until the approximations are disjoint or some termination criteria are met. An experimental evaluation of the method on a set of software verification benchmarks shows that it can infer precise preconditions (sometimes optimal) that are not possible using previous methods.

Original languageEnglish
Number of pages17
JournalTheory and Practice of Logic Programming
Volume21
Issue number6
DOIs
Publication statusPublished - 23 Sep 2021

Keywords

  • abstract interpretation
  • optimal precondition
  • precondition inference
  • program transformation

Cite this