A lock placement describes, for each heap location, which lock guards the location, and under what circumstances. We formalize methods for reasoning about lock placements, making p...
Peter Hawkins, Alex Aiken, Kathleen Fisher, Martin...
Concurrent programs are difficult to verify because the proof must consider the interactions between the threads. Fine-grained concurrency and heap allocated data structures exacer...
Cristiano Calcagno, Matthew J. Parkinson, Viktor V...
We contrast using a notation extension with using a combination of notations. Specifically, we compare the use of an extended dialect of Z [10] with a combination of Z and predicat...
In this paper we shall survey and discuss in detail the work on the relative expressiveness of recursion and replication in various process calculi. Namely, CCS, the -calculus, the...
Bitwise instructions, loops and indirect data access pose difficult challenges to the verification of microcontroller programs. In particular, it is necessary to show that an indir...