Reference. TäKōFormal: Enabling Robust Software for Programmable Memory Hierarchies
Cite
Cites 71 works (4 here)
With notes (4)
Armada: low-effort verification of high-performance concurrent programs lorch-2020-armada
I4: Incremental inference of inductive invariants for verification of distributed protocols maI4IncrementalInference2019
Designing and implementing distributed systems correctly is a very challenging task. Recently, formal verification has been successfully used to prove the correctness of distributed systems. At the heart of formal verification lies a computerchecked proof with an inductive invariant. Finding this inductive invariant, however, is the most difficult part of the proof. Alas, current proof techniques require inductive invariants to be found manually—and painstakingly—by the developer. In this paper, we present a new approach, Incremental Inference of Inductive Invariants (I4), to automatically generate inductive invariants for distributed protocols. The essence of our idea is simple: the inductive invariant of a finite instance of the protocol can be used to infer a general inductive invariant for the infinite distributed protocol. In I4, we create a finite instance of the protocol; use a model checking tool to automatically derive the inductive invariant for this finite instance; and generalize this invariant to an inductive invariant for the infinite protocol. Our experiments show that I4 can prove the correctness of several distributed protocols like Chord, 2PC and Transaction Chains with little to no human effort.
Ivy: Safety verification by interactive generalization padonIvySafetyVerification
Despite several decades of research, the problem of formal verification of infinite-state systems has resisted effective automation. We describe a system — Ivy — for interactively verifying safety of infinite-state systems. Ivy’s key principle is that whenever verification fails, Ivy graphically displays a concrete counterexample to induction. The user then interactively guides generalization from this counterexample. This process continues until an inductive invariant is found. Ivy searches for universally quantified invariants, and uses a restricted modeling language. This ensures that all verification conditions can be checked algorithmically. All user interactions are performed using graphical models, easing the user’s task. We describe our initial experience with verifying several distributed protocols.
IronFleet: proving practical distributed systems correct hawblitzel-2015-ironfleet
External (67)
- täkōFormal: Enabling Robust Software for Programmable Memory Hierarchies (Extended Version) (2026)
- Large Lemma Miners: Can LLMs do Induction Proofs for Hardware? (2025)
- Formalising CXL Cache Coherence (2025)
- Basilisk: using provenance invariants to automate proofs of undecidable protocols (2025)
- Semantics of Remote Direct Memory Access: Operational and Declarative Models of RDMA on TSO Architectures (2024)
- Specification and Verification of Strong Timing Isolation of Hardware Enclaves (2024)
- Leviathan: A Unified System for General-Purpose Near-Data Computing (2024)
- TPU v4: An Optically Reconfigurable Supercomputer for Machine Learning with Hardware Support for Embeddings (2023)
- Specification and Verification of Side-channel Security for Open-source Processors via Leakage Contracts (2023)
- Pensieve: Microarchitectural Modeling for Security Evaluation (2023)
- An Exhaustive Approach to Detecting Transient Execution Side Channels in RTL Designs of Processors (2022)
- täkō: a polymorphic cache hierarchy for general-purpose optimization of data movement (2022)
- Client-optimized algorithms and acceleration for encrypted compute offloading (2022)
- Accelerator-level parallelism (2021)
- The Civl Verifier (2021)
- A Primer on Memory Consistency and Cache Coherence, ser (2020)
- HieraGen: Automated Generation of Concurrent, Hierarchical Cache Coherence Protocols (2020)
- Spectre Attacks: Exploiting Speculative Execution (2019)
- A Formal Analysis of the NVIDIA PTX Memory Consistency Model (2019)
- PHI: Architectural Support for Synchronization- and Bandwidth-Efficient Commutative Scatter Updates (2019)
- PipeProof: Automated Memory Consistency Proofs for Microarchitectural Specifications (2018)
- Exploiting Locality in Graph Analytics through Hardware-Accelerated Traversal Scheduling (2018)
- ILA-MCM: Integrating Memory Consistency Models with Instruction-Level Abstractions for Heterogeneous System-on-Chip Verification (2018)
- End-to-End Automated Exploit Generation for Validating the Security of Processor Designs (2018)
- Kami: a platform for high-level parametric hardware specification and its modular verification (2017)
- Program Synthesis (2017)
- Effective stateless model checking for C/C++ concurrency (2017)
- Repairing sequential consistency in C/C++11 (2017)
- RTLcheck: verifying the memory consistency of RTL designs (2017)
- Simplifying ARM concurrency: multicopy-atomic axiomatic and operational models for ARMv8 (2017)
- TriCheck: Memory Model Verification at the Trisection of Software, Hardware, and ISA (2017)
- Overhauling SC Atomics in C11 and OpenCL (2016)
- CertiKOS: an extensible architecture for building certified concurrent OS kernels (2016)
- COATCheck: Verifying Memory Ordering at the Hardware-OS Interface (2016)
- Counterexamples and Proof Loophole for the C/C++ to POWER and ARMv7 Trailing-Sync Compiler Mappings (2016)
- An operational semantics for C/C++11 concurrency (2016)
- Automatically comparing memory consistency models (2016)
- GPU Concurrency: Weak Behaviours and Programming Assumptions (2015)
- CCICheck: using µhb graphs to verify the coherence-consistency interface (2015)
- Template-based synthesis of instruction-level abstractions for SoC verification (2015)
- Modular Deductive Verification of Multiprocessor Hardware Designs (2015)
- Remote-scope promotion: clarified, rectified, and verified (2015)
- Verdi: a framework for implementing and formally verifying distributed systems (2015)
- Herding Cats (2014)
- Ironclad apps: end-to-end security via automated fullsystem verification (2014)
- PipeCheck: Specifying and Verifying Microarchitectural Enforcement of Memory Consistency Models (2014)
- An Axiomatic Memory Model for POWER Multiprocessors (2012)
- “Cortex-A9 MPCore Programmer Advice Notice Read-after-Read Hazards,” (2011)
- Mathematizing C++ concurrency (2011)
- Understanding POWER multiprocessors (2011)
- Fences in Weak Memory Models (2010)
- Refinement in the Formal Verification of the seL4 Microkernel (2010)
- Dafny: An Automatic Program Verifier for Functional Correctness (2010)
- ECMon (2009)
- A Better x86 Memory Model: x86-TSO (2009)
- Z3: An Efficient SMT Solver (2008)
- The Java memory model (2005)
- Alloy (2002)
- Checking Safety Properties Using Induction and a SAT-Solver (2000)
- Shared memory consistency models: a tutorial (1996)
- Informing memory operations: providing memory performance feedback in modern processors (1996)
- Automatic verification of pipelined microprocessor control (1994)
- The Stanford FLASH multiprocessor (1994)
- Weak ordering—a new definition (1990)
- Memory consistency and event ordering in scalable shared-memory multiprocessors (1990)
- How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs (1979)
- On the calculus of relations (1941)