Model-Checking Circus State-Rich Specifications

Throughout the past decades two schools have been developing formal techniques for correct software development, taking complementary approaches: the model-based approach and the behavioural approach. Combinations of languages from both approaches have also been proposed. The lack of support for refinement of state-rich reactive systems in a calculational style has motivated the creation of Circus, a combination of Z, CSP, and Djikstra’s commmand language. In this paper, we foster the reuse of theoretical results underpinned on CSP to Circus by providing a sound mapping for processes and refinement from Circus to CSP. This mapping is proved sound from an existing link between these languages, established in the Unifying Theories of Programming (UTP). Our results allow analysing Circus specifications with techniques and tools, like FDR2 and PAT, originally developed for CSP. We illustrate the overall approach with a running example.

[1]  Steve A. Schneider,et al.  Using a Process Algebra to Control B Operations , 1999, IFM.

[2]  Augusto Sampaio,et al.  Systematic Development of Trustworthy Component Systems , 2009, FM.

[3]  Jun Sun,et al.  PAT: Towards Flexible Verification under Fairness , 2009, CAV.

[4]  Jonathan P. Bowen,et al.  ZUM '98: The Z Formal Specification Notation , 1998 .

[5]  Jim Woodcock,et al.  A UTP semantics for Circus , 2009, Formal Aspects of Computing.

[6]  Augusto Sampaio,et al.  A Refinement Strategy for Circus , 2003, Formal Aspects of Computing.

[7]  Augusto Sampaio,et al.  Test generation from state based use case models , 2012, Formal Aspects of Computing.

[8]  Marcel Vinícius Medeiros Oliveira,et al.  Implementing Tactics of Refinement in CRefine , 2012, SEFM.

[9]  Ana Cavalcanti,et al.  FM 2009: Formal Methods, Second World Congress, Eindhoven, The Netherlands, November 2-6, 2009. Proceedings , 2009, FM.

[10]  Marcel Oliveira,et al.  JCircus 2.0: an Extension of an Automatic Translator from Circus to Java , 2012, CPA.

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

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

[13]  Peter H. Welch,et al.  Communicating Process Architectures 2012 , 2000 .

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

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

[16]  Andrew Butterfield,et al.  Linking a state-rich process algebra to a state-free algebra to verify software/hardware implementation , 2010, FIT.

[17]  C. A. R. Hoare,et al.  Unifying theories of programming , 1998, RelMiCS.

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

[19]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[20]  Ana Cavalcanti,et al.  A Note on Traces Refinement and the conf Relation in the Unifying Theories of Programming , 2008, UTP.

[21]  Augusto Sampaio,et al.  Model-checking CSP-Z: strategy, tool support and industrial application , 2001, Sci. Comput. Program..

[22]  Ana Cavalcanti,et al.  Testing for Refinement in CSP , 2007, ICFEM.

[23]  Anne Elisabeth Haxthausen,et al.  The Raise Specification Language , 1992 .

[24]  Clemens Fischer,et al.  How to Combine Z with Process Algebra , 1998, ZUM.