A Proposal for Weak-Memory Local Reasoning

  • Ian Wehrman ,
  • Josh Berdine

Syntax and Semantics of Low-Level Languages, LOLA 2011, Toronto, ON, Canada, June 20, 2011.

Program logics are formal systems for specifying and reasoning about software programs. Most program logics make the strong assumption that all threads agree on the value of shared memory at all times. This assumption can be unsound though for programs with races, like many concurrent data structures. Verification of these difficult programs must take into account the weaker models of memory provided by the architectures on which they execute. In this paper, we describe progress toward a program logic for local reasoning about racy concurrent programs executing on a weak, x86-like memory model