Proceedings

Automatic Verification of Partial Correctness of Golog Programs

Download BibTeX Cite

Proceedings of the Twenty-Fourth International Joint Conference on Artificial Intelligence. Special Track on Knowledge Representation and Reasoning. Pages 3113-3118.

Abstract

When Golog programs are used to control agents' behaviour in a high-level manner, their partial correctness naturally becomes an important concern. In this paper we propose a sound but incomplete method for automatic verification of partial correctness of Golog programs. We introduce the notion of extended regression, which reduces partial correctness of Golog programs to first-order entailment problems. During the process loop invariants are automatically discovered by heuristic methods. We propose progression of small models wrt Golog programs, which are used to filter out too strong heuristic candidates. In this way we combine the methods of static and dynamic analysis from the software engineering community. Furthermore, our method can also be adapted to verify state constraints. Experiments show that our method can not only handle sequential and nested loops uniformly in a reasonable among of time, but also be used to discover succinct and comprehensible loop invariants and state constraints.

  1. [Eén and Sörensson, 2003] Niklas Eén and Niklas Sörensson. An extensible sat-solver. In Proc. of SAT-03, pages 502-518, 2003.
  2. [Flanagan and Qadeer, 2002] Cormac Flanagan and Shaz Qadeer. Predicate abstraction for software verification. In Conference Record of POPL-02, pages 191-202, 2002.
  3. [Hu, 2012] Yuxiao Hu. Generation and Verification of Plans with Loops. PhD thesis, Department of Computer Science, University of Toronto, 2012.
  4. [Levesque et al., 1997] Hector J. Levesque, Raymond Re- iter, Yves Lespérance, Fangzhen Lin, and Richard B. Scherl. GOLOG: A logic programming language for dy- namic domains. Journal of Logic Programming, 31:59- 83, 1997.
  5. [Li et al., 2013] Naiqi Li, Yi Fan, and Yongmei Liu. Rea- soning about state constraints in the situation calculus. In Proc. IJCAI-13, 2013. IJCAI
  6. [Lin and Reiter, 1997] Fangzhen Lin and Raymond Reiter. How to progress a database. Artificial Intelligence, 92(1- 2):131-167, 1997.
  7. [Liu, 2002] Yongmei Liu. A hoare-style proof system for robot programs. In Proc. AAAI-02, pages 74-79, 2002.
  8. [Nguyen et al., 2012] ThanhVu Nguyen, Deepak Kapur, Westley Weimer, and Stephanie Forrest. Using dynamic analysis to discover polynomial and array invariants. In Proc. of ICSE-12, pages 683-693, 2012.
  9. [Pasareanu and Visser, 2004] Corina S. Pasareanu and Willem Visser. Verification of java programs using symbolic execution and invariant generation. In Proc. of 11th SPIN Workshop, pages 164-181, 2004.
  10. [Reiter, 2001] Raymond Reiter. Knowledge in Action: Logi- cal Foundations for Specifying and Implementing Dynam- ical Systems. MIT Press, 2001.
  11. [Rintanen, 2000] Jussi Rintanen. An iterative algorithm for synthesizing invariants. In Proc. of AAAI-00, pages 806- 811, 2000.
  12. [Schulz, 2013] Stephan Schulz. System description: E 1.8. In Proc. of 19th LPAR, pages 735-743, 2013.

References were extracted automatically from the PDF and may contain errors.

Welcome Future Conferences AI Journal Division IJCAI Proceedings About IJCAI IJCAI Awards