@inproceedings{6967c38035e7421eab36cf4560e5e7d0,
title = "Nitpicking C++ concurrency",
abstract = "Previous work formalized the C++ memory model in Isabelle/HOL in an effort to clarify the proposed standard's semantics. Here we employ the model finder Nitpick to check litmus test programs that exercise the memory model, including a simple locking algorithm. Nitpick is built on Kodkod (Alloy's backend) but understands Isabelle's richer logic; hence it can be applied directly to the C++ memory model. We only need to give it a few hints, and thanks to the underlying SAT solver it scales much better than the CPPMEM explicit-state model checker. This case study inspired optimizations in Nitpick from which other formalizations can now benefit.",
keywords = "C++ memory model, Concurrency, Higher-order logic, Isabelle/HOL, Kodkod, Model finding, Nitpick, SAT solving",
author = "Blanchette, {Jasmin Christian} and Tjark Weber and Mark Batty and Scott Owens and Susmit Sarkar",
year = "2011",
doi = "10.1145/2003476.2003493",
language = "English",
isbn = "9781450307765",
series = "PPDP'11 - Proceedings of the 2011 Symposium on Principles and Practices of Declarative Programming",
pages = "113--123",
booktitle = "PPDP'11 - Proceedings of the 2011 Symposium on Principles and Practices of Declarative Programming",
note = "13th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming, PPDP 2011 ; Conference date: 20-07-2011 Through 22-07-2011",
}