Reference. Armada: low-effort verification of high-performance concurrent programs

Cite

Cite as @lorch-2020-armada (helia, typst) · \cite{lorch-2020-armada} (LaTeX)
BibTeX
bibtex · 1 line
@inproceedings{lorch-2020-armada, series={PLDI ’20}, title={Armada: low-effort verification of high-performance concurrent programs}, url={http://dx.doi.org/10.1145/3385412.3385971}, DOI={10.1145/3385412.3385971}, booktitle={Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation}, publisher={ACM}, author={Lorch, Jacob R. and Chen, Yixuan and Kapritsos, Manos and Parno, Bryan and Qadeer, Shaz and Sharma, Upamanyu and Wilcox, James R. and Zhao, Xueyuan}, year={2020}, month=June, pages={197–210}, collection={PLDI ’20} }
hayagriva YAML (typst)
yaml · 20 lines
lorch-2020-armada:
  type: article
  title: 'Armada: low-effort verification of high-performance concurrent programs'
  author:
  - Lorch, Jacob R.
  - Chen, Yixuan
  - Kapritsos, Manos
  - Parno, Bryan
  - Qadeer, Shaz
  - Sharma, Upamanyu
  - Wilcox, James R.
  - Zhao, Xueyuan
  date: 2020-06
  page-range: 197-210
  serial-number:
    doi: 10.1145/3385412.3385971
  parent:
    type: proceedings
    title: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation
    publisher: ACM
Cited by (4)

TäKōFormal: Enabling Robust Software for Programmable Memory Hierarchies srinivasan-2026-takoformal

DOI · arXiv

Grove: A Separation-Logic Library for Verifying Distributed Systems sharmaGroveSeparationLogicLibrary2023

Grove is a concurrent separation logic library for verifying distributed systems. Grove is the first to handle time-based leases, including their interaction with reconfiguration, crash recovery, thread-level concurrency, and unreliable networks. This paper uses Grove to verify several distributed system components written in Go, including vKV, a realistic distributed multi-threaded key-value store. vKV supports reconfiguration, primary/backup replication, and crash recovery, and uses leases to execute read-only requests on any replica. vKV achieves high performance (67–73% of Redis on a single core), scales with more cores and more backup replicas (achieving about 2× the throughput when going from 1 to 3 servers), and can safely execute reads while reconfiguring.
DOI

Armada: Automated Verification of Concurrent Code with Sound Semantic Extensibility lorch-2022-armada

Safely writing high-performance concurrent programs is notoriously difficult. To aid developers, we introduce Armada, a language and tool designed to formally verify such programs with relatively little effort. Via a C-like language and a small-step, state-machine-based semantics, Armadagives developers the flexibility to choose arbitrary memory layout and synchronization primitives so that they are never constrained in their pursuit of performance. To reduce developer effort, Armadaleverages SMT-powered automation and a library of powerful reasoning techniques, including rely-guarantee, TSO elimination, reduction, and pointer analysis. All of these techniques are proven sound, and Armadacan be soundly extended with additional strategies over time. Using Armada, we verify five concurrent case studies and show that we can achieve performance equivalent to that of unverified code.
PDF · DOI · pldb

Sift: Using Refinement-guided Automation to Verify Complex Distributed Systems maSiftUsingRefinementguided

Distributed systems are hard to design and implement correctly. Recent work has tried to use formal verification techniques to provide rigorous correctness guarantees. These works present a hard choice, though. One must either opt for the power of refinement-based approaches like IronFleet and Verdi, at the cost of large amounts of manual effort; or choose the more automated approach of I4, IC3PO, SWISS and DistAI which give up the ability to prove refinement and the power and scalability that come with it.
Web
Cites 41 works (1 here)
With notes (1)

Iris from the ground up: A modular foundation for higher-order concurrent separation logic jung_etal_iris_ground_up_2018

Iris is a framework for higher-order concurrent separation logic, which has been implemented in the Coq proof assistant and deployed very effectively in a wide variety of verification projects. Iris was designed with the express goal of simplifying and consolidating the foundations of modern separation logics, but it has evolved over time, and the design and semantic foundations of Iris itself have yet to be fully written down and explained together properly in one place. Here, we attempt to fill this gap, presenting a reasonably complete picture of the latest version of Iris (version 3.1), from first principles and in one coherent narrative.
PDF · DOI · pldb
External (40)
lorch-2020-armada reference entries/refs/lorch-2020-armada/lorch-2020-armada.hel