kirancodes.me
To Proof Maintenance & Beyond!

Correctness of an STM Haskell implementation

Manfred Schmidt-Schauß, David Sabel

Abstract

A concurrent implementation of software transactional memory in Concurrent Haskell using a call-by-need functional language with processes and futures is given. The description of the small-step operational semantics is precise and explicit, and employs an early abort of conflicting transactions. A proof of correctness of the implementation is given for a contextual semantics with may- and should-convergence. This implies that our implementation is a correct evaluator for an abstract specification equipped with a big-step semantics.

Related papers