We propose to separate protocol from functionality in class definitions, and advocate separate hierarchies of protocol classes as a way to overcome the inheritance anomaly of concurrent object-oriented programming.
We formalize an agent in Lamport's Temporal Logic of Actions. Modular verification is achieved by restricting inheritance in a way that ensures that subclasses refine superclasses. Interesting properties can thus be verified at an abstract level, ignoring unnecessary implementation detail.
@InProceedings{bahsoun:modular,
author = "Jean Paul Bahsoun and Stephan Merz and
Corinne Servi\`{e}res",
title = "Modular Description and Verification of
Concurrent Objects",
series = "Lecture Notes in Computer Science",
volume = 1107,
booktitle = "0bject-Based Parallel and Distributed Computation",
editor = "J.-P. Briot and J.-M. Geib and A. Yonezawa",
year = 1996,
publisher = "Springer-Verlag",
address = "Tokyo, Japan",
pages = "168--185"
}