Reference. Armada: Automated Verification of Concurrent Code with Sound Semantic Extensibility

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.

Cite

Cite as @lorch-2022-armada (helia, typst) · \cite{lorch-2022-armada} (LaTeX)
BibTeX
bibtex · 1 line
@article{lorch-2022-armada, title={Armada: Automated Verification of Concurrent Code with Sound Semantic Extensibility}, volume={44}, ISSN={1558-4593}, url={http://dx.doi.org/10.1145/3502491}, DOI={10.1145/3502491}, number={2}, journal={ACM Transactions on Programming Languages and Systems}, publisher={Association for Computing Machinery (ACM)}, author={Lorch, Jacob R. and Chen, Yixuan and Kapritsos, Manos and Ma, Haojun and Parno, Bryan and Qadeer, Shaz and Sharma, Upamanyu and Wilcox, James R. and Zhao, Xueyuan}, year={2022}, month=May, pages={1–39} }
hayagriva YAML (typst)
yaml · 25 lines
lorch-2022-armada:
  type: article
  title: 'Armada: Automated Verification of Concurrent Code with Sound Semantic Extensibility'
  author:
  - Lorch, Jacob R.
  - Chen, Yixuan
  - Kapritsos, Manos
  - Ma, Haojun
  - Parno, Bryan
  - Qadeer, Shaz
  - Sharma, Upamanyu
  - Wilcox, James R.
  - Zhao, Xueyuan
  date: 2022-05
  page-range: 1-39
  url: http://dx.doi.org/10.1145/3502491
  serial-number:
    doi: 10.1145/3502491
    issn: 1558-4593
  parent:
    type: periodical
    title: ACM Transactions on Programming Languages and Systems
    publisher: Association for Computing Machinery (ACM)
    issue: 2
    volume: 44
Cited by (2)

Verus: A Practical Foundation for Systems Verification lattuada-2024-verus

DOI

Galápagos: Developing Verified Low Level Cryptography on Heterogeneous Hardwares zhou-2023-galapagos

DOI
Cites 46 works (2 here)
With notes (2)

Armada: low-effort verification of high-performance concurrent programs lorch-2020-armada

PDF · DOI · pldb

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 (44)
lorch-2022-armada reference entries/refs/lorch-2022-armada/lorch-2022-armada.hel