Toward Parametric Verification of Open Distributed Systems

A logic and proof system is introduced for specifying and proving properties of open distributed systems. Key problems that are addressed include the verification of process networks with a changing interconnection structure, and where new processes can be continuously spawned. To demonstrate the results in a realistic setting we consider a core fragment of the Erlang programming language. Roughly this amounts to a first-order actor language with data types, buffered asynchronous communication, and dynamic process spawning. Our aim is to verify quite general properties of programs in this fragment. The specification logic extends the first-order µ-calculus with Erlang-specific primitives. For verification we use an approach which combines local model checking with facilities for compositional verification. We give a specification and verification example based on a billing agent which controls and charges for user access to a given resource.

[1]  Alex K. Simpson,et al.  Compositionality via cut-elimination: Hennessy-Milner logic for an arbitrary GSOS , 1995, Proceedings of Tenth Annual IEEE Symposium on Logic in Computer Science.

[2]  Mads Dam,et al.  Compositional Proof Systems for Model Checking Infinite State Processes , 1995, CONCUR.

[3]  Roberto M. Amadio,et al.  Toward a Modal Theory of Types for the pi-Calculus , 1996, FTRTFT.

[4]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[5]  Mads Dam,et al.  Proving Properties of Dynamic Process Networks , 1998, Inf. Comput..

[6]  David Michael Ritchie Park Finiteness is Mu-Ineffable , 1976, Theor. Comput. Sci..

[7]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[8]  Mike Williams,et al.  Concurrent programming in erlang (second edition) , 1996 .

[9]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.