Using Predicate Abstraction to Generate Heuristic Functions in UPPAAL

We focus on checking safety properties in networks of extended timed automata, with the well-known UPPAAL system. We show how to use predicate abstraction, in the sense used in model checking, to generate search guidance, in the sense used in Artificial Intelligence (AI). This contributes another family of heuristic functions to the growing body of work on directed model checking. The overall methodology follows the pattern databaseapproach from AI: the abstract state space is exhaustively built in a pre-process, and used as a lookup table during search. While typically pattern databases use rather primitive abstractions ignoring some of the relevant symbols, we use predicate abstraction, dividing the state space into equivalence classes with respect to a list of logical expressions (predicates). We empirically explore the behavior of the resulting family of heuristics, in a meaningful set of benchmarks. In particular, while several challenges remain open, we show that one can easily obtain heuristic functions that are competitive with the state-of-the-art in directed model checking.

[1]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[2]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[3]  Jonathan Schaeffer,et al.  Pattern Databases , 1998, Comput. Intell..

[4]  Andreas Podelski,et al.  ARMC: The Logical Choice for Software Model Checking with Abstraction Refinement , 2007, PADL.

[5]  S. Kupferschmid,et al.  Adapting an AI Planning Heuristic for Directed Model Checking , 2006, SPIN.

[6]  S. Anderson,et al.  Secure Synthesis of Code: A Process Improvement Experiment , 1999, World Congress on Formal Methods.

[7]  Andreas Podelski,et al.  A Model Checker based on Abstraction Refinement , 2002 .

[8]  Jörg Hoffmann,et al.  A New Method to Index and Query Sets , 1999, IJCAI.

[9]  Ernst-Rüdiger Olderog,et al.  The UniForM Workbench, a Universal Development Environment for Formal Methods , 1999, World Congress on Formal Methods.

[10]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[11]  Alex Groce,et al.  Modular verification of software components in C , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[12]  Bernd Finkbeiner,et al.  Directed model checking with distance-preserving abstractions , 2006, International Journal on Software Tools for Technology Transfer.

[13]  John A. Roulier Constrained Interpolation , 1980 .

[14]  Viorica Sofronie-Stokkermans,et al.  Constraint solving for interpolation , 2007, J. Symb. Comput..

[15]  Stefan Edelkamp,et al.  Directed explicit model checking with HSF-SPIN , 2001, SPIN '01.

[16]  Stefan Edelkamp,et al.  Directed explicit-state model checking in the validation of communication protocols , 2004, International Journal on Software Tools for Technology Transfer.

[17]  Kousha Etessami,et al.  Analysis of Recursive Game Graphs Using Data Flow Equations , 2004, VMCAI.

[18]  Alex Groce,et al.  Model checking Java programs using structural heuristics , 2002, ISSTA '02.

[19]  Henning Dierks Comparing model checking and logical reasoning for real-time systems , 2004, Formal Aspects of Computing.

[20]  Albert Nymeyer,et al.  Guided Invariant Model Checking Based on Abstraction and Symbolic Pattern Databases , 2004, TACAS.