Communicating sequential processes
Communications of the ACM
Distributed processes: a concurrent programming concept
Communications of the ACM
Abstract data types and software validation
Communications of the ACM
Abstraction and verification in Alphard: defining and specifying iteration and generators
Communications of the ACM
Communications of the ACM
Communications of the ACM
Verifying properties of parallel programs: an axiomatic approach
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Operating system principles
"Sometime" is sometimes "not never": on the temporal logic of programs
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The temporal logic of branching time
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Principles of proving concurrent programs in Gypsy
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Temporal Semantics of Concurrent Programs
Proceedings of the International Sympoisum on Semantics of Concurrent Computation
Specifications and Proofs for Abstract Data Types in Concurrent Programs
Program Construction, International Summer Schoo
Specification and Verification of a Network Nail System
Program Construction, International Summer Schoo
Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic
Logic of Programs, Workshop
Verifying concurrent processes using temporal logic
Verifying concurrent processes using temporal logic
Preliminary Ada reference manual
ACM SIGPLAN Notices - Preliminary Ada reference manual
An object-based programming model for shared data
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modular Verification of Data Abstractions with Shared Realizations
IEEE Transactions on Software Engineering
Modular verification of dynamically adaptive systems
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Modular Verification of Recursive Programs
Languages: From Formal to Natural
Verification of scalable synchronous queue
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Hi-index | 0.00 |
Verifying concurrent systems can be difficult because of the complex interactions possible between system components. In this paper, we propose a technique to simplify the task: modular composition of sequential proofs. We model a parallel program as a set of modules that interact by procedure calls. The properties of each module are proved using a sequential-program verification technique. If the modules satisfy a set of constraints presented in this paper, we may compose the modules into a system and the properties of the modules into properties of the system. The constraints ensure that the specifications are robust for each module where they are defined or used, in the sense that they are unaffected by current actions of other modules. A specification can be guaranteed robust for module m by restricting it to local variables of m, or by using monotonic predicates, which once true remain true forever. Our technique can be used to prove safety and liveness properties of parallel programs---the liveness properties are specified using temporal logic.