Horn clause verification with convex polyhedral abstraction and tree automata-based refinement

Bishoksan Kafle, John Patrick Gallagher

Research output: Contribution to journalJournal articleResearchpeer-review

Abstract

In this paper we apply tree-automata techniques to refinement of abstract interpretation in Horn clause verification. We go beyond previous work on refining trace abstractions; firstly we handle tree automata rather than string automata and thereby can capture traces in any Horn clause derivations rather than just transition systems; secondly, we show how algorithms manipulating tree automata interact with abstract interpretations, establishing progress in refinement and generating refined clauses that eliminate causes of imprecision. We show how to derive a refined set of Horn clauses in which given infeasible traces have been eliminated, using a recent optimised algorithm for tree automata determinisation. We also show how we can introduce disjunctive abstractions selectively by splitting states in the tree automaton. The approach is independent of the abstract domain and constraint theory underlying the Horn clauses. Experiments using linear constraint problems and the abstract domain of convex polyhedra show that the refinement technique is practical and that iteration of abstract interpretation with tree automata-based refinement solves many challenging Horn clause verification problems. We compare the results with other state-of-the-art Horn clause verification tools.
Original languageEnglish
JournalComputer Languages, Systems and Structures
Volume47
Issue numberPart 1
Pages (from-to)2-18
Number of pages17
ISSN1477-8424
DOIs
Publication statusPublished - Jan 2017

Keywords

  • Program verification
  • static analysis
  • tree automata

Cite this