Results 1 -
1 of
1
Mechanized Reasoning about Concurrent Functional Programs
"... . Various mechanisms have been used for adapting functional languages to parallel machines, ranging from semantics--preserving annotations to concurrent language extensions. Concurrent extensions are applicable to both lazy and strict languages, and give the programmer full control over parallel eva ..."
Abstract
- Add to MetaCart
. Various mechanisms have been used for adapting functional languages to parallel machines, ranging from semantics--preserving annotations to concurrent language extensions. Concurrent extensions are applicable to both lazy and strict languages, and give the programmer full control over parallel evaluation; however, they complicate the proofs of program correctness. This paper pursues the concurrent extension approach to parallel functional programming, and addresses the question of proving parallel programs correct with respect to sequential specifications. The paper presents an extension of a lazy functional language with concurrency primitives, allowing the dynamic creation of processes and point--to--point interprocess communication. The primitives are given an operational semantics, and an observational equivalence between processes is defined. The equivalence has been implemented in a theorem prover for concurrent functional programs. As an illustration, the derivation of a para...

