Distributed computing and the multicore revolution
ACM SIGACT News
Model checking transactional memories
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Model checking transactional memory with spin
Proceedings of the twenty-seventh ACM symposium on Principles of distributed computing
Mechanical Verification of Transactional Memories with Non-transactional Memory Accesses
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Completeness and Nondeterminism in Model Checking Transactional Memories
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
An Abort-Aware Model of Transactional Programming
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Access Control and Information Flow in Transactional Memory
Formal Aspects in Security and Trust
Perspectives on Transactional Memory
CONCUR 2009 Proceedings of the 20th International Conference on Concurrency Theory
Parameterized verification of transactional memories
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Semantics of transactional memory and automatic mutual exclusion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Runtime verification for software transactional memories
RV'10 Proceedings of the First international conference on Runtime verification
A framework for formally verifying software transactional memory algorithms
CONCUR'12 Proceedings of the 23rd international conference on Concurrency Theory
Verifying concurrent programs against sequential specifications
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Hi-index | 0.00 |
We show how to verify the correctness of transactional memory implementations with a model checker. We show how to specify transactional memory in terms of the admissible interchange of transaction operations, and give proof rules for showing that an implementation satisfies this specification. This notion of an admissible interchange is a key to our ability to use a model checker, and lets us capture the various notions of transaction conflict as characterized by Scott. We demonstrate our work using the TLC model checker to verify several well-known implementations described abstractly in the TLA+ specification language.