Download:
|
by Eugene W. Stark
In Proceedings of the 5th Conference on Foundations of Software Technology and Theoretical Computer Science, Lecture Notes in Computer Science 206
http://bsd7.cs.sunysb.edu:18080/~stark/REPORTS/relyguar-revised.ps.gz
Add To MetaCart
Abstract:
A rely/guarantee specification for a program P is a specification of the form R oe G (R implies G), where R is a rely condition and G is a guarantee condition. A rely condition expresses the conditions that P relies on its environment to provide, and a guarantee condition expresses what P guarantees to provide in return. This paper presents a proof technique that permits us to infer that a program P satisfies a rely/guarantee specification R oe G, given that we know P satisfies a finite collection of rely/guarantee specifications R i oe G i; (i 2 I). The utility of the proof technique is illustrated by using it to derive global liveness properties of a system of concurrent processes from a collection of local liveness properties satisfied by the component processes. The use of the proof rule as a design principle, and the possibility of its incorporation into a formal logic of rely/guarantee assertions, is also discussed. 1
Citations
|
1153
|
A Method of Programming
– Dijkstra, Feijen
- 1988
|
|
952
|
An axiomatic basis for computer programming
– Hoare
- 1969
|
|
808
|
The temporal logic of programs
– Pnueli
- 1977
|
|
402
|
Assigning meanings to programs
– Floyd
- 1967
|
|
182
|
Program Development by Stepwise Refinement
– Wirth
- 1971
|
|
170
|
Specifying concurrent program modules
– Lamport
- 1983
|
|
126
|
Chandy, Proofs of networks of processes
– Misra, M
- 1981
|
|
124
|
Proving liveness properties of concurrent programs
– Owicki, Lamport
- 1982
|
|
112
|
Specification and Design of (Parallel) Programs
– Jones
- 1983
|
|
83
|
Verifying properties of parallel programs: An axiomatic approach
– Owicki, Gries
- 1976
|
|
65
|
Now you may compose temporal logic specifications
– Barringer, Kuiper, et al.
- 1984
|
|
49
|
Development Methods for Computer Programs including a Notion of Interference
– Jones
- 1981
|
|
37
|
Verification of concurrent programs: a temporal proof system
– Manna, Pnueli
- 1983
|
|
24
|
Sometime' is sometimes `not never
– Lamport
- 1980
|
|
15
|
Foundations of a theory of specification for distributed systems
– STARK
- 1984
|
|
12
|
Proving safety and liveness of communicating processes with examples
– Misra, Chandy, et al.
- 1982
|
|
9
|
Temporal logic specification of distributed systems
– Schwartz, Melliar-Smith
- 1981
|
|
8
|
Verifying Network Protocols Using Temporal Logic
– Hailpern, Owicki
- 1980
|
|
6
|
Probabilistic analysis of a network resource allocation algorithm
– Fischer, Griffeth, et al.
- 1986
|
|
3
|
A Temporal Logic Specification Method Supporting Hierarchical Development
– Barringer, Kuiper
- 1983
|
|
2
|
Modular Program Construction Using Abstractions
– Liskov
- 1979
|