Communicating sequential processes
Communicating sequential processes
A simple fixpoint argument without the restriction to continuity
Acta Informatica
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
A bridging model for parallel computation
Communications of the ACM
MFPS '92 Selected papers of the meeting on Mathematical foundations of programming semantics
Using Z: specification, refinement, and proof
Using Z: specification, refinement, and proof
Information Processing Letters
Information Processing Letters
Scalability, portability and predictability: the BSP approach to parallel programming
Future Generation Computer Systems - Special issue: parallel computing applications
Specifications, programs, and total correctness
Science of Computer Programming
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
A Relational Model of Programs Without the Restriction to Egli-Milner-Monotone Constructs
PROCOMET '94 Proceedings of the IFIP TC2/WG2.1/WG2.2/WG2.3 Working Conference on Programming Concepts, Methods and Calculi
On the Semantics of Fair Parallelism
Proceedings of the Abstract Software Specifications, 1979 Copenhagen Winter School
Non-monotone Fixpoint Iterations to Resolve Second Order Effects
CC '96 Proceedings of the 6th International Conference on Compiler Construction
A Fixpoint Theory for Non-monotonic Parallelism
CSL '02 Proceedings of the 16th International Workshop and 11th Annual Conference of the EACSL on Computer Science Logic
Stepwise Refinement of Action Systems
Proceedings of the International Conference on Mathematics of Program Construction, 375th Anniversary of the Groningen University
Parallelism in random access machines
STOC '78 Proceedings of the tenth annual ACM symposium on Theory of computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Lifting general correctness into partial correctness is ok
IFM'07 Proceedings of the 6th international conference on Integrated formal methods
Unifying recursion in partial, total and general correctness
UTP'10 Proceedings of the Third international conference on Unifying theories of programming
CSP'04 Proceedings of the 2004 international conference on Communicating Sequential Processes: the First 25 Years
Hi-index | 5.23 |
This paper studies parallel recursion. The trace specification language used in this paper incorporates sequentially, nondeterminism, reactiveness (including infinite traces), three forms of parallelism (including conjunctive, fair-interleaving and synchronous parallelism) and general recursion. In order to use Tarski's theorem to determine the fixpoints of recursions, we need to identify a well-founded partial order. Several orders are considered, including a new order called the lexical order, which tends to simulate the execution of a recursion in a similar manner as the Egli-Milner order. A theorem of this paper shows that no appropriate order exists for the language. Tarski's theorem alone is not enough to determine the fixpoints of parallel recursions. Instead of using Tarski's theorem directly, we reason about the fixpoints of terminating and nonterminating behaviours separately. Such reasoning is supported by the laws of a new composition called partition. We propose a fixpoint technique called the partitioned fixpoint, which is the least fixpoint of the nonterminating behaviours after the terminating behaviours reach their greatest fixpoint. The surprising result is that although a recursion may not be lexical-order monotonic, it must have the partitioned fixpoint, which is equal to the least lexical-order fixpoint. Since the partitioned fixpoint is well defined in any complete lattice, the results are applicable to various semantic models. Existing fixpoint techniques simply become special cases of the partitioned fixpoint. For example, an Egli-Milner-monotonic recursion has its least Egli-Milner fixpoint, which can be shown to be the same as the partitioned fixpoint. The new technique is more general than the least Egli-Milner fixpoint in that the partitioned fixpoint can be determined even when a recursion is not Egli-Milner monotonic. Examples of non-monotonic recursions are studied. Their partitioned fixpoints are shown to be consistent with our intuition.