Probing the Depths of CSP-M: A New fdr-Compliant Validation Tool

We present a new animation and model checking tool for CSP. The tool covers the CSP-M language, as supported by existing tools such as fdr and probe . Compared to those tools, it provides visual feedback in the source code, has an LTL model checker and can be used for combined CSP || B specifications. During the development of the tool some intricate issues were uncovered with the CSP-M language. We discuss those issues, and provide suggestions for improvement. We also explain how we have ensured conformance with fdr , by using fdr itself to validate our tool's output. We also provide empirical evidence on the performance of our tool compared to fdr , showing that it can be used on industrial-strength specifications.

[1]  Steve A. Schneider,et al.  Concurrent and Real-time Systems: The CSP Approach , 1999 .

[2]  Michael J. Butler,et al.  Symmetry Reduction for B by Permutation Flooding , 2007, B.

[3]  Michael J. Butler csp2B: A Practical Approach to Combining CSP and B , 1999, World Congress on Formal Methods.

[4]  Harvey Abramson,et al.  Meta-programming in logic programming , 1989 .

[5]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[6]  Michael Butler,et al.  Rigorous Development of Complex Fault-Tolerant Systems , 2006 .

[7]  C. R. Ramakrishnan,et al.  Efficient Model Checking Using Tabled Resolution , 1997, CAV.

[8]  Jacques Julliand,et al.  B 2007: Formal Specification and Development in B, 7th International Conference of B Users, Besançon, France, January 17-19, 2007, Proceedings , 2006, B.

[9]  Ajitha Rajan,et al.  Requirements Coverage as an Adequacy Measure for Conformance Testing , 2008, ICFEM.

[10]  Steve A. Schneider,et al.  How to Drive a B Machine , 2000, ZB.

[11]  Michael Leuschel,et al.  Seven at one stroke: LTL model checking for high-level specifications in B, Z, CSP, and more , 2009, International Journal on Software Tools for Technology Transfer.

[12]  Michael Leuschel,et al.  Design and Implementation of the High-Level Specification Language CSP(LP) in Prolog , 2001, PADL.

[13]  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.

[14]  Michael Leuschel,et al.  Efficient Approximate Verification of B via Symmetry Markers , 2007 .

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

[16]  Michael J. Butler,et al.  Combining CSP and B for Specification and Property Verification , 2005, FM.

[17]  Ernst-Rüdiger Olderog,et al.  Specifying and analyzing security automata using CSP-OZ , 2007, ASIACCS '07.

[18]  Yoshinao Isobe,et al.  A Generic Theorem Prover of CSP Refinement , 2005, TACAS.

[19]  Michael J. Butler,et al.  An Open Extensible Tool Environment for Event-B , 2006, ICFEM.

[20]  Michael Leuschel Design and Implementation of the High-Level Specification Language CSP(LP) , 2001 .

[21]  Gavin Lowe,et al.  Casper: a compiler for the analysis of security protocols , 1997, Proceedings 10th Computer Security Foundations Workshop.

[22]  Michael Goldsmith,et al.  Hierarchical Compression for Model-Checking CSP or How to Check 1020 Dining Philosophers for Deadlock , 1995, TACAS.

[23]  Thomas Johnsson,et al.  Lambda Lifting: Treansforming Programs to Recursive Equations , 1985, FPCA.

[24]  Jonathan P. Bowen,et al.  ZB 2003: Formal Specification and Development in Z and B , 2003, Lecture Notes in Computer Science.

[25]  E. Meijer,et al.  Monadic parser combinators , 1996 .

[26]  Gerhard Goos,et al.  ZB 2000: Formal Specification and Development in Z and B , 2000 .

[27]  Michael J. Butler,et al.  Automatic Refinement Checking for B , 2005, ICFEM.

[28]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[29]  Cliff B. Jones,et al.  Rigorous Development of Complex Fault-Tolerant Systems [FP6 IST-511599 RODIN project] , 2006, RODIN Book.

[30]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

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

[32]  Steve A. Schneider,et al.  Composing Specifications Using Communication , 2003, ZB.

[33]  Jim Woodcock,et al.  Operational Semantics for Model Checking Circus , 2005, FM.

[34]  Ian J. Hayes,et al.  FM 2005: Formal Methods, International Symposium of Formal Methods Europe, Newcastle, UK, July 18-22, 2005, Proceedings , 2005, FM.

[35]  Dov M. Gabbay,et al.  Handbook of logic in artificial intelligence and logic programming (vol. 1) , 1993 .

[36]  P. M. Hill,et al.  Meta-Programming in Logic Progamming , 1998 .