Title
Maximally Concurrent Programs
Abstract
Typically, program design involves constructing a program, P, that implements a given specification, S; that is, the set P'' of executions of P is a subset of the set S'' of executions satisfying S. In many cases, we seek a P that not only implements S but for which P'' = S''. Then, every execution satisfying the specification is a possible execution of the program; we call P maximal for the specification S. We argue in this paper that traditional specifications of concurrent programs are incomplete without some maximality requirement because they can often be implemented in a sequential fashion. Additionally, a maximal solution can be refined to a variety of programs each appropriate for execution on a different computing platform. In this paper, we suggest a method for proving the maximality of a program with respect to a given specification. Even though we prove facts about possible executions of programs there is no need to appeal to branching time logics; we employ a fragment of linear temporal logic for our proofs. The method results in concise proofs of maximality for many non-trivial examples. The method may also serve as a guide in constructing maximal programs.
Year
DOI
Venue
2000
10.1007/s001650070031
Formal Asp. Comput.
Keywords
Field
DocType
Keywords: Concurrent program design,Safety,Progress,Maximal solution
Programming language,Concurrency,Computer science,Theoretical computer science,Linear temporal logic,Program Design Language,Mathematical proof,Branching (version control)
Journal
Volume
Issue
ISSN
12
2
0934-5043
Citations 
PageRank 
References 
2
0.45
6
Authors
2
Name
Order
Citations
PageRank
Rajeev Joshi120.45
Jayadev Misra23147771.78