Visualising Larger State Spaces in Pro B

ProB is an animator and model checker for the B method. It also allows to visualise the state space of a B machine in graphical way. This is often very useful and allows users to quickly spot whether the machine behaves as expected. However, for larger state spaces the visualisation quickly becomes difficult to grasp by users (and the computation of the graph layout takes considerable time). In this paper we present two relatively simple algorithms to often considerably reduce the complexity of the graphs, while still keeping relevant information. This makes it possible to visualise much larger state spaces and gives the user immediate feedback about the overall behaviour of a machine. The algorithms have been implemented within the ProB toolset and we highlight their potential on several examples. We also conduct a thorough experimentation of the algorithm on 47 B machines and analyse the results.

[1]  Nancy G. Leveson,et al.  On the use of visualization in formal requirements specification , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[2]  Fabrice Bouquet,et al.  BZ-testing-tools: A tool-set for test generation from Z and B using constraint logic programming , 2002 .

[3]  Frank Waters,et al.  The B Book , 1971 .

[4]  Michael J. Butler,et al.  ProB: A Model Checker for B , 2003, FME.

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

[6]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[7]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[8]  Fabrice Bouquet,et al.  CLPS-B - A Constraint Solver for B , 2002, TACAS.

[9]  Vlad Rusu,et al.  On Proving Safety Properties by Integrating Static Analysis, Theorem Proving and Abstraction , 1999, TACAS.

[10]  Grzegorz Rozenberg,et al.  Developments in Language Theory II , 2002 .

[11]  Tao Jiang,et al.  Minimal NFA Problems are Hard , 1991, SIAM J. Comput..

[12]  Jill H. Larkin,et al.  Cognitive Efficiency Considerations for Good Graphic Design , 1989 .

[13]  Thomas R. G. Green,et al.  When do diagrams make good computer languages , 1979 .

[14]  Jan Friso Groote,et al.  Large State Space Visualization , 2003, TACAS.

[15]  Andreas Malcher,et al.  Minimizing finite automata is computationally hard , 2004, Theor. Comput. Sci..

[16]  Patrícia Duarte de Lima Machado,et al.  Unit Testing for CASL Architectural Specifications , 2002, MFCS.

[17]  Lucian Ilie,et al.  Algorithms for Computing Small NFAs , 2002, MFCS.

[18]  Ivan Herman,et al.  Graph Visualization and Navigation in Information Visualization: A Survey , 2000, IEEE Trans. Vis. Comput. Graph..

[19]  Yassine Lakhnech,et al.  Computing Abstractions of Infinite State Systems Compositionally and Automatically , 1998, CAV.

[20]  Natarajan Shankar,et al.  Abstract and Model Check While You Prove , 1999, CAV.

[21]  守屋 悦朗,et al.  J.E.Hopcroft, J.D. Ullman 著, "Introduction to Automata Theory, Languages, and Computation", Addison-Wesley, A5変形版, X+418, \6,670, 1979 , 1980 .

[22]  Stefania Gnesi,et al.  FME 2003: Formal Methods: International Symposium of Formal Methods Europe, Pisa, Italy, September 8-14, 2003. Proceedings , 2003, Lecture Notes in Computer Science.

[23]  Jarke J. van Wijk,et al.  Visualization of State Transition Graphs , 2001, INFOVIS.

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

[25]  Sebastian John,et al.  Minimal Unambiguous eNFA , 2004, CIAA.

[26]  Borivoj Melichar,et al.  Finding Common Motifs with Gaps Using Finite Automata , 2006, CIAA.