@inproceedings{2c735c225c954a8daa53ce608f097569,
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 = "SAT solving, JAVA memory model, Isabelle/HOL, Higher-order logic, Concurrency, C plus plus memory model, Nitpick, Kodkod, Model finding",
author = "Blanchette, {Jasmin Christian} and Tjark Weber and Mark Batty and Scott Owens and Susmit Sarkar",
note = "Funding: The authors acknowledge funding from the Deutsche Forschungsgemeinschaft (grant Ni 491/11-2) and the British EPSRC (grants EP/F036345, EP/F067909, EP/H005633, EP/H027351).; 13th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming ; Conference date: 20-07-2011 Through 22-07-2011",
year = "2011",
month = jul,
day = "20",
doi = "10.1145/2003476.2003493",
language = "English",
isbn = "9781450307765",
series = "PPDP'11 - Proceedings of the 2011 Symposium on Principles and Practices of Declarative Programming",
publisher = "ACM",
pages = "113--123",
booktitle = "Proceedings of the 2011 Symposium on Prinicples and Practices of Declarative Programming (PDP'11)",
address = "United States",
}