Contracts as Mathematical Entities in Programming Logic

We consider the notion of a contract that governs the behavior of a collection of agents. In particular, we study the question of whether a coalition among these agents can achieve a given goal by following the contract. We define a generalised weakest precondition semantics for contracts that permits us to compute the initial states from which a coalition has a winning strate- gy to reach their goal. Notions of correctness and refinement with respect to coalitions are introduced, together with proof rules for correctness and principles for refinement and equivalence transformations. We illustrate the framework with a three agent contract, showing how one can reason about the possibilities that different coalitions of agents have for reaching specific goals.

[1]  Ralph-Johan Back,et al.  Games and Winning Strategies , 1995, Inf. Process. Lett..

[2]  Martín Abadi,et al.  Realizable and Unrealizable Specifications of Reactive Systems , 1989, ICALP.

[3]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

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

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

[6]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[7]  Ralph-Johan Back,et al.  Changing data representation in the refinement calculus , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume II: Software Track.