FDR Explorer

We describe: (1) the internal structures of FDR, the refinement model checker for Hoare’s Communicating Sequential Processes (CSP); and (2) an application-programming interface (API) that allows users to interact more closely with FDR and to have finer-grain control over its behaviour and data structures. This API makes it possible to create optimised CSP code to perform refinement checks that are more space or time efficient, enabling the analysis of more complex and data-intensive specifications. The API can be used either by those constructing CSP models or by tools that automatically generate CSP code. We present examples of using our tool, including handling advanced FDR features such as transparent functions, which compress state spaces before checking. We also show how to transform FDR’s graph format into a graph notation such as JGraph, enabling visualisation of labelled transition systems of CSP specifications.

[1]  Jeremy M. R. Martin,et al.  Parallel algorithms for dead-lock and livelock analysis of concurrent systems , 2000 .

[2]  A classical mind: essays in honour of C. A. R. Hoare , 1994 .

[3]  J. Bryan Scattergood The semantics and implementation of machine-readable CSP , 1998 .

[4]  Leo Freitas,et al.  Model checking Circus , 2005 .

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

[6]  Antti Valmari,et al.  A stubborn attack on state explosion , 1990, Formal Methods Syst. Des..

[7]  Rance Cleaveland,et al.  Testing equivalence as a bisimulation equivalence , 1989, Formal Aspects of Computing.

[8]  Jim Woodcock,et al.  The verified software repository: a step towards the verifying compiler , 2006, Formal Aspects of Computing.

[9]  Michael Goldsmith Operational Semantics for Fun and Profit , 2004, 25 Years Communicating Sequential Processes.

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

[11]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[12]  Augusto Sampaio,et al.  Formal Specification Generation from Requirement Documents , 2006, SBMF.

[13]  Michael Goldsmith,et al.  Watchdog Transformations for Property-Oriented Model-Checking , 2003, FME.

[14]  Jonathan Lawrence Practical Application of CSP and FDR to Software Design , 2004, 25 Years Communicating Sequential Processes.

[15]  Jeremy Malcolm Randolph Martin,et al.  The design and construction of deadlock-free concurrent systems , 1996 .

[16]  William McCune,et al.  Experiments with discrimination-tree indexing and path indexing for term retrieval , 1992, Journal of Automated Reasoning.

[17]  Michael Goldsmith,et al.  Modelling and analysis of security protocols , 2001 .

[18]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[19]  Thitima Srivatanakul,et al.  Security Analysis with Deviational Techniques , 2005 .

[20]  Jim Woodcock,et al.  Taking Our Own Medicine: Applying the Refinement Calculus to State-Rich Refinement Model Checking , 2006, ICFEM.

[21]  Jim Woodcock,et al.  State-rich model checking , 2006, Innovations in Systems and Software Engineering.