Reasoning about Action Systems using the B-Method

The action system formalism has been succesfully used when constructing parallel and distributed systems in a stepwise manner within the refinement calculus. Usually the derivation is carried out manually. In order to be able to produce more trustworthy software, some mechanical tool is needed. In this paper we show how action systems can be derived and refined within the B-Toolkit, which is a mechanical tool supporting a software development method, the B-Method. We describe how action systems are embedded in the B-Method. Furthermore, we show how a typical and nontrivial refinement rule, the superposition refinement rule, is formalized and applied on action systems within the B-Method. In addition to providing tool support for action system refinement we also extend the application area of the B-Method to cover parallel and distributed systems. A derivation towards a distributed load balancing algorithm is given as a case study.

[1]  H. Peter Hofstee,et al.  A Distributed Implementation of a Task Pool , 1991, Research Directions in High-Level Parallel Programming Languages.

[2]  Dave Neilson The B-Technologies : A system for computer aided programming , 1999 .

[3]  Kaisa Sere Verification of a Distributed Algorithm due to Chu , 1994 .

[4]  Kaisa Sere,et al.  From Action Systems to Modular Systems , 1994, Softw. Concepts Tools.

[5]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[6]  Ira R. Forman,et al.  Superimposition for Interacting Processes , 1990, CONCUR.

[7]  Shmuel Katz,et al.  A superimposition control construct for distributed systems , 1993, TOPL.

[8]  Michael J. Butler,et al.  An Approach to the Design of Distributed Systems with B AMN , 1997, ZUM.

[9]  Michael Butler,et al.  Distributed System Development in B , 1996 .

[10]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[11]  Ralph-Johan Back,et al.  Decentralization of process nets with centralized control , 1983, PODC '83.

[12]  Rimvydas Ruksenas,et al.  TkWinHOL: A Tool for Window Inference in HOL , 1995, TPHOLs.

[13]  Rimvydas Ruk,et al.  TkWinHOL A Tool for Doing Window Inference in HOL , 1995 .

[14]  Kaisa Sere,et al.  Verification of a distributed algorithm (abstract) , 1994, PODC '94.

[15]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[16]  Ralph-Johan Back,et al.  Trace Refinement of Action Systems , 1994, CONCUR.

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