Model checking for multiagent systems: The MABLE language and its applications
We present MABLE, a fully implemented programming language for multiagent systems, which is intended to support the automatic verification of such systems via model checking. In addition to the conventional constructs of imperative programming languages, MABLE provides a number of agent-oriented development features. First, agents in MABLE are endowed with a BDI-like mental state: they have data structures corresponding to beliefs, desires, and intentions, and these mental states may be arbitrarily nested. Second, agents in MABLE communicate via ACL-like performatives: however, neither the performatives nor their semantics are hardwired into the language. It is possible to define the performatives and the semantics of these performatives independently of the system in which they are used. Using this feature, a developer can explore the design space of ACL performatives and semantics without changing the target system. Finally, MABLE supports automatic verification via model checking. Claims about the behaviour of a MABLE System can be expressed in a linear-time BDI-like logic, and the truth, or otherwise, of these claims can be automatically determined. Following a description of the MABLE language and the language of MABLE claims, we present two case studies to illustrate the language and its use in the verification of multiagent systems. We then describe the key ideas underpinning the current implementation of MABLE. Finally, we survey related work, and discuss some avenues for future research.
model checking verification semantics multi-agent systems agent communication