Observational Semantics for a Concurrent Lambda Calculus with Reference Cells and Futures

We present an observational semantics for lambda(fut), a
concurrent lambda calculus with reference cells and
futures. The calculus lambda(fut) models the operational
semantics of the concurrent higher-order programming language
Alice ML. Our result is a powerful notion of equivalence
that is the coarsest nontrivial congruence distinguishing
observably different processes. It justifies a maximal set
of correct program transformations, and it includes all of
lambda(fut)'s deterministic reduction rules, in particular,
call-by-value beta reduction.