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.
Original language | English |
---|---|
Title of host publication | PPDP 11 - PROCEEDINGS OF THE 2011 SYMPOSIUM ON PRINCIPLES AND PRACTICES OF DECLARATIVE PROGRAMMING |
Place of Publication | NEW YORK |
Publisher | ACM |
Pages | 113-123 |
Number of pages | 11 |
ISBN (Print) | 978-1-4503-0776-5 |
Publication status | Published - 2011 |
Event | 13th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming - Odense, Denmark Duration: 20 Jul 2011 → 22 Jul 2011 |
Conference
Conference | 13th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming |
---|---|
Country/Territory | Denmark |
City | Odense |
Period | 20/07/11 → 22/07/11 |
Keywords
- SAT solving
- JAVA MEMORY MODEL
- Isabelle/HOL
- higher-order logic
- concurrency
- C plus plus memory model
- Nitpick
- Kodkod
- model finding