Adequate proof principles for invariance and liveness properties of concurrent programs
Science of Computer Programming
Communicating sequential processes
Communicating sequential processes
Concurrency control and recovery in database systems
Concurrency control and recovery in database systems
Hierarchical correctness proofs for distributed algorithms
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Service specification and protocol construction for the transport layer
SIGCOMM '88 Symposium proceedings on Communications architectures and protocols
Parallel program design: a foundation
Parallel program design: a foundation
A simple approach to specifying concurrent systems
Communications of the ACM
A Relational Notation for State Transition Systems
IEEE Transactions on Software Engineering
REX workshop Proceedings on Stepwise refinement of distributed systems: models, formalisms, correctness
On decomposing and refining specifications of distributed systems
REX workshop Proceedings on Stepwise refinement of distributed systems: models, formalisms, correctness
Construction of network protocols by stepwise refinement
REX workshop Proceedings on Stepwise refinement of distributed systems: models, formalisms, correctness
In transition from global to modular temporal reasoning about programs
Logics and models of concurrent systems
What it means for a concurrent program to satisfy a specification: why no one has specified priority
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Proving Liveness Properties of Concurrent Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
An HDLC protocol specification and its verification using image protocols
ACM Transactions on Computer Systems (TOCS)
FORTE '91 Proceedings of the IFIP TC6/WG6.1 Fourth International Conference on Formal Description Techniques for Distributed Systems and Communication Protocols: Formal Description Techniques, IV
An introduction to assertional reasoning for concurrent systems
ACM Computing Surveys (CSUR)
Representing and querying reusable object frameworks
Proceedings of the 1997 symposium on Software reusability
A Theory of Interfaces and Modules - I: Composition Theorem
IEEE Transactions on Software Engineering
Reusing Software: Issues and Research Directions
IEEE Transactions on Software Engineering
Towards a Compositional Approach to the Design and Verification of Distributed Systems
FM '99 Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume I - Volume I
Using eternity variables to specify and prove a serializable database interface
Science of Computer Programming - Special issue on mathematics of program construction (MPC 2002)
Event-based Programming Models for Event-based Programming Models for
DS-RT '05 Proceedings of the 9th IEEE International Symposium on Distributed Simulation and Real-Time Applications
Hi-index | 0.01 |
We define interface, module and the meaning of M offers I, where M denotes a module and I an interface. For a module M and disjoint interfaces U and L, the meaning of M using L offers U is also defined. For a linear hierarchy of modules and interfaces, M1, I1, M2, I2, ..., Mn, In, we present the following composition theorem: If M1 offers I1 and, for i=2,..., n, Mi using Ii-1 offers Ii, then the hierarchy of modules offers Ii.Our theory is applied to solve a problem posed by Leslie Lamport at the 1987 Lake Arrowhead Workshop. We first present a formal specification of a serializable database interface. We then provide specifications of two modules, one based upon two-phase locking and the other multi-version timestamps; the two-phase locking module uses an interface offered by a physical database. We prove that each module offers the serializable interface.