Isabelle/Circus: A Process Specification and Verification Environment

The Circus specification language combines elements for complex data and behavior specifications, using an integration of Z and CSP with a refinement calculus. Its semantics is based on Hoare and He's unifying theories of programming (UTP). We develop a machine-checked, formal semantics based on a "shallow embedding" of Circus in Isabelle/UTP (our semantic theory of UTP based on Isabelle/HOL). We derive proof rules from this semantics and implement tactic support that finally allows for proofs of refinement for Circus processes (involving both data and behavioral aspects). This proof environment supports a syntax for the semantic definitions which is close to textbook presentations of Circus.

[1]  Burkhart Wolff,et al.  Unifying Theories in Isabelle/HOL , 2010, UTP.

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

[3]  Peter B. Andrews An introduction to mathematical logic and type theory - to truth through proof , 1986, Computer science and applied mathematics.

[4]  Tobias Nipkow,et al.  Isabelle/HOL , 2002, Lecture Notes in Computer Science.

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

[6]  Peter A. Lindsay,et al.  FME 2002:Formal Methods—Getting IT Right , 2002, Lecture Notes in Computer Science.

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

[8]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

[9]  J. Woodcock,et al.  Refinement in Circus , 2002, FME.

[10]  Augusto Sampaio,et al.  Refinement Techniques in Software Engineering, First Pernambuco Summer School on Software Engineering, PSSE 2004, Recife, Brazil, November 23-December 5, 2004, Revised Lectures , 2006, PSSE.

[11]  Ana Cavalcanti,et al.  Testing for refinement in Circus , 2011, Acta Informatica.

[12]  Jim Woodcock,et al.  A Denotational Semantics for Circus , 2007, Refine@ICFEM.

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

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

[15]  Michael J. Butler,et al.  csp2B: A Practical Approach to Combining CSP and B , 1999, Formal Aspects of Computing.

[16]  Keijiro Araki,et al.  The state-based CCS semantics for concurrent Z specification , 1997, First IEEE International Conference on Formal Engineering Methods.

[17]  Ana Cavalcanti,et al.  Encoding Circus Programs in ProofPowerZ , 2008, UTP.

[18]  Jim Woodcock,et al.  A Tutorial Introduction to CSP in Unifying Theories of Programming , 2004, PSSE.

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

[20]  Achim D. Brucker,et al.  On theorem prover-based testing , 2012, Formal Aspects of Computing.

[21]  Jim Woodcock,et al.  The Semantics of Circus , 2002, ZB.

[22]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[23]  Markus Roggenbach,et al.  CSP-CASL - A new integration of process algebra and algebraic specification , 2006, Theor. Comput. Sci..

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