Monitoring refinement via symbolic reasoning

Research output: Contribution to journalArticlepeer-review

Abstract

Efficient implementations of concurrent objects such as semaphores, locks, and atomic collections are essential to modern computing. Programming such objects is error prone: in minimizing the synchronization overhead between concurrent object invocations, one risks the conformance to reference implementationsor in formal terms, one risks violating observational refinement. Precisely testing this refinement even within a single execution is intractable, limiting existing approaches to executions with very few object invocations. We develop scalable and effective algorithms for detecting re-finement violations. Our algorithms are founded on incremental, symbolic reasoning, and exploit foundational insights into the refinement-checking problem. Our approach is sound, in that we detect only actual violations, and scales far beyond existing violationdetection algorithms. Empirically, we find that our approach is practically complete, in that we detect the violations arising in actual executions.

Original languageEnglish
Pages (from-to)260-269
Number of pages10
JournalACM SIGPLAN Notices
Volume50
Issue number6
DOIs
Publication statusPublished - 1 Jun 2015
Externally publishedYes

Keywords

  • Concurrency
  • Linearizability
  • Refinement

Fingerprint

Dive into the research topics of 'Monitoring refinement via symbolic reasoning'. Together they form a unique fingerprint.

Cite this