Program Complexity in Hierarchical Module Checking

Module checking is a well investigated technique for verifying the correctness of open systems, which are systems characterized by an ongoing interaction with an external environment. In the classical module checking framework, in order to check whether an open system satisfies a required property, we first translate the entire system into an open model (module ) that collects all possible behaviors of the environment and then check it with respect to a formal specification of the property. Recently, in the case of closed system, Alur and Yannakakis have considered hierarchical structure models in order to have models exponentially more succinct. A hierarchical model uses as nodes both ordinary nodes and supernodes, which are hierarchical models themselves. For CTL specifications, it has been shown that for the simple case of models having only single-exit supernodes, the hierarchical model checking problem is not harder than the classical one. On the contrary, for the more general multiple-exit case, the problem becomes Pspace -complete. In this paper, we investigate the program complexity of the CTL hierarchical module checking problem , that is, we consider the module checking problem for a fixed CTL formula and modules having also supernodes that are modules themselves. By exploiting an automata-theoretic approach through the introduction of hierarchical Buchi tree automata, we show that, in the single-exit case, the addressed problem remains in Ptime , while in the multiple-exit case, it becomes Pspace -complete.

[1]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[2]  Aniello Murano,et al.  Pushdown module checking with imperfect information , 2007, Inf. Comput..

[3]  Kim G. Larsen,et al.  On Modal Refinement and Consistency , 2007, CONCUR.

[4]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

[5]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[6]  Ugo Montanari,et al.  International Symposium on Programming , 1982, Lecture Notes in Computer Science.

[7]  Jerzy Tiuryn,et al.  Logics of Programs , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[8]  Pierre Wolper,et al.  Automata theoretic techniques for modal logics of programs: (Extended abstract) , 1984, STOC '84.

[9]  Stephan Merz,et al.  Model Checking , 2000 .

[10]  Pierre Wolper,et al.  An automata-theoretic approach to branching-time model checking , 2000, JACM.

[11]  Margherita Napoli,et al.  Verification of scope-dependent hierarchical state machines , 2008, Inf. Comput..

[12]  Rajeev Alur,et al.  Model checking of hierarchical state machines , 1998, TOPL.

[13]  Rajeev Alur,et al.  Analysis of recursive state machines , 2001, TOPL.

[14]  Moshe Y. Vardi Reasoning about The Past with Two-Way Automata , 1998, ICALP.

[15]  M. Rabin Weakly Definable Relations and Special Automata , 1970 .

[16]  Aniello Murano,et al.  Pushdown module checking , 2010, Formal Methods Syst. Des..

[17]  Jørgen Staunstrup Specification and Verification of Concurrent Programs , 1979 .

[18]  Joseph Sifakis,et al.  Specification and verification of concurrent systems in CESAR , 1982, Symposium on Programming.