A Concurrent Logical Relation
The authors present a logical relation for showing the correctness of program transformations based on a new type-and-effect system for a concurrent extension of an ML-like language with higher-order functions, higher-order store and dynamic memory allocation. They show how to use their model to verify a number of interesting program transformations that rely on effect annotations. In particular, they prove a Parallelization Theorem, which expresses when it is sound to run two expressions in parallel instead of sequentially. The conditions are expressed solely in terms of the types and effects of the expressions. To the best of their knowledge, this is the first such result for a concurrent higher-order language with higher-order store and dynamic memory allocation.