zbMATH — the first resource for mathematics

Automatic verification of Golog programs via predicate abstraction. (English) Zbl 1403.68129
Kaminka, Gal A. (ed.) et al., ECAI 2016. 22nd European conference on artificial intelligence, The Hague, Netherlands, August 29 – September 2, 2016. Proceedings. Including proceedings of the accompanied conference on prestigious applications of intelligent systems (PAIS 2016). In 2 volumes. Amsterdam: IOS Press (ISBN 978-1-61499-671-2/pbk; 978-1-61499-672-9/ebook). Frontiers in Artificial Intelligence and Applications 285, 760-768 (2016).
Summary: Golog is a logic programming language for high-level agent control. In a recent paper, we proposed a sound but incomplete method for automatic verification of partial correctness of Golog programs where we give a number of heuristic methods to strengthen given formulas in order to discover loop invariants. However, our method does not work on arithmetic domains. On the other hand, the method of predicate abstraction is widely used in the software engineering community for model checking and partial correctness verification of programs. Intuitively, the predicate abstraction task is to find a formula consisting of a given set of predicates to approximate a given first-order formula. In this paper, we propose a method for automatic verification of partial correctness of Golog programs which use predicate abstraction as a uniform method to strengthen given formulas. We implement a system based on the proposed method, conduct experiments on arithmetical domains and examples from the paper by Li and Liu. Also, we apply our method to the verification of winning strategies for combinatorial games.
For the entire collection see [Zbl 1352.68013].
68Q60 Specification and verification (program logics, model checking, etc.)
68N17 Logic programming
Full Text: DOI