Formal specification of concurrent systems

Abstract This paper presents a formal methodology for developing concurrent systems. We extend the Larch family of specification languages and tools with the CCS process algebra to support the specification and verification of concurrent systems. We present and follow a refinement strategy that relates an implementation in a programming language to a formal specification of such a system. We illustrate our methodology on an example that uses the preconditioned conjugate gradient method for solving a linear system of equations.

[1]  John W. Baugh,et al.  Network-distributed finite element analysis , 1996 .

[2]  J. Ortega Introduction to Parallel and Vector Solution of Linear Systems , 1988, Frontiers of Computer Science.

[3]  Nicholas Carriero,et al.  A Program Building Tool for Parallel Applications , 1994, Specification of Parallel Algorithms.

[4]  Ali Mili,et al.  Reusing Software: Issues and Research Directions , 1995, IEEE Trans. Software Eng..

[5]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[6]  Yang Meng Tan Formal specification techniques for promoting software modularity, enhancing documentation, and testing specifications , 1994 .

[7]  John W. Baugh Using formal methods to specify the functional properties of engineering software , 1992 .

[8]  Sjouke Mauw,et al.  A Proof Assistant for PSF , 1991, CAV.

[9]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.

[10]  Dominique Méry,et al.  Towards an Integrated Environment for Concurrent programs Development , 1993, AMAST.

[11]  Dan Craigen,et al.  An International Survey of Industrial Applications of Formal Methods , 1992, Z User Workshop.

[12]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[13]  J. Michael Spivey,et al.  Understanding Z : A specification language and its formal semantics , 1985, Cambridge tracts in theoretical computer science.

[14]  John W. Baugh,et al.  A client—server approach for distributed finite element analysis , 1993 .

[15]  Huimin Lin,et al.  PAM: A process algebra manipulator , 1991, Formal Methods Syst. Des..

[16]  Jonathan P. Bowen,et al.  Ten Commandments of Formal Methods , 1995, Computer.

[17]  Thony van der Vloedt The LOTOS Toolbox , 1993, AMAST.

[18]  J. Shewchuk An Introduction to the Conjugate Gradient Method Without the Agonizing Pain , 1994 .

[19]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[20]  M. Hestenes,et al.  Methods of conjugate gradients for solving linear systems , 1952 .

[21]  Karl-Heinz Buth,et al.  Using SOS Definitions in Term Rewriting Proofs , 1992, Larch.

[22]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[23]  L. Aceto Action refinement in process algebras , 1992 .

[24]  Rance Cleaveland,et al.  The concurrency workbench: a semantics-based tool for the verification of concurrent systems , 1993, TOPL.