Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
Practical Verification of Smart Contracts using Memory Splitting
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 356, Pages 2402–2433https://doi.org/10.1145/3689796SMT-based verification of low-level code requires modeling and reasoning about memory operations. Prior work has shown that optimizing memory representations is beneficial for scaling verification—pointer analysis, for example can be used to split memory ...
Automated Verification of Parametric Channel-Based Process Communication
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 344, Pages 2070–2096https://doi.org/10.1145/3689784A challenge of writing concurrent message passing programs is ensuring the absence of partial deadlocks, which can cause severe memory leaks in long running systems. Several static analysis techniques have been proposed for automatically detecting ...
- research-articleOctober 2024
Hypra: A Deductive Program Verifier for Hyper Hoare Logic
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 316, Pages 1279–1308https://doi.org/10.1145/3689756Hyperproperties relate multiple executions of a program and are useful to express common correctness properties (such as determinism) and security properties (such as non-interference). While there are a number of powerful program logics for the ...
- research-articleOctober 2024
Synthesizing Formal Semantics from Executable Interpreters
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 284, Pages 362–388https://doi.org/10.1145/3689724Program verification and synthesis frameworks that allow one to customize the language in which one is interested typically require the user to provide a formally defined semantics for the language. Because writing a formal semantics can be a daunting ...
- research-articleOctober 2024
Automating Unrealizability Logic: Hoare-Style Proof Synthesis for Infinite Sets of Programs
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 275, Pages 113–139https://doi.org/10.1145/3689715Automated verification of all members of a (potentially infinite) set of programs has the potential to be useful in program synthesis, as well as in verification of dynamically loaded code, concurrent code, and language properties. Existing techniques ...
-
CCLemma: E-Graph Guided Lemma Discovery for Inductive Equational Proofs
- Cole Kurashige,
- Ruyi Ji,
- Aditya Giridharan,
- Mark Barbone,
- Daniel Noor,
- Shachar Itzhaky,
- Ranjit Jhala,
- Nadia Polikarpova
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue ICFPArticle No.: 264, Pages 818–844https://doi.org/10.1145/3674653The problem of automatically proving the equality of terms over recursive functions and inductive data types is challenging, as such proofs often require auxiliary lemmas which must themselves be proven. Previous attempts at lemma discovery compromise on ...
Example-Based Reasoning about the Realizability of Polymorphic Programs
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue ICFPArticle No.: 247, Pages 317–337https://doi.org/10.1145/3674636Parametricity states that polymorphic functions behave the same regardless of how they are instantiated. When developing polymorphic programs, Wadler’s free theorems can serve as free specifications, which can turn otherwise partial specifications into ...
Predictable Verification using Intrinsic Definitions
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 220, Pages 1804–1829https://doi.org/10.1145/3656450We propose a novel mechanism of defining data structures using intrinsic definitions that avoids recursion and instead utilizes monadic maps satisfying local conditions. We show that intrinsic definitions are a powerful mechanism that can capture a ...
A HAT Trick: Automatically Verifying Representation Invariants using Symbolic Finite Automata
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 203, Pages 1387–1411https://doi.org/10.1145/3656433Functional programs typically interact with stateful libraries that hide state behind typed abstractions. One particularly important class of applications are data structure implementations that rely on such libraries to provide a level of efficiency and ...
Symbolic Execution for Quantum Error Correction Programs
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 189, Pages 1040–1065https://doi.org/10.1145/3656419We define QSE, a symbolic execution framework for quantum programs by integrating symbolic variables into quantum states and the outcomes of quantum measurements. The soundness of QSE is established through a theorem that ensures the correctness of ...
A Proof Recipe for Linearizability in Relaxed Memory Separation Logic
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 154, Pages 175–198https://doi.org/10.1145/3656384Linearizability is the de facto standard for correctness of concurrent objects—it essentially says that all the object’s operations behave as if they were atomic. There have been a number of recent advances in developing increasingly strong ...
Mechanizing the CMP Abstraction for Parameterized Verification
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA1Article No.: 141, Pages 1324–1350https://doi.org/10.1145/3649858Parameterized verification is a challenging problem that is known to be undecidable in the general case. is a widely-used method for parameterized verification, originally proposed by Chou, Mannava and Park in 2004. It involves abstracting the protocol ...
- research-articleApril 2024
A Constraint Solving Approach to Parikh Images of Regular Languages
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA1Article No.: 138, Pages 1235–1263https://doi.org/10.1145/3649855A common problem in string constraint solvers is computing the Parikh image, a linear arithmetic formula that describes all possible combinations of character counts in strings of a given language. Automata-based string solvers frequently need to compute ...
Enhanced Enumeration Techniques for Syntax-Guided Synthesis of Bit-Vector Manipulations
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 71, Pages 2129–2159https://doi.org/10.1145/3632913Syntax-guided synthesis has been a prevalent theme in various computer-aided programming systems. However, the domain of bit-vector synthesis poses several unique challenges that have not yet been sufficiently addressed and resolved. In this paper, we ...
VST-A: A Foundationally Sound Annotation Verifier
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 69, Pages 2069–2098https://doi.org/10.1145/3632911Program verifiers for imperative languages such as C may be annotation-based, in which assertions and invariants are put into source files and then checked, or tactic-based, where proof scripts separate from programs are interactively developed in a ...
Parikh’s Theorem Made Symbolic
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 65, Pages 1945–1977https://doi.org/10.1145/3632907Parikh’s Theorem is a fundamental result in automata theory with numerous applications in computer science. These include software verification (e.g. infinite-state verification, string constraints, and theory of arrays), verification of cryptographic ...
- research-articleJanuary 2024
Guided Equality Saturation
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 58, Pages 1727–1758https://doi.org/10.1145/3632900Rewriting is a principled term transformation technique with uses across theorem proving and compilation. In theorem proving, each rewrite is a proof step; in compilation, rewrites optimize a program term. While developing rewrite sequences manually is ...
The Complex(ity) Landscape of Checking Infinite Descent
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 46, Pages 1352–1384https://doi.org/10.1145/3632888Cyclic proof systems, in which induction is managed implicitly, are a promising approach to automatic verification. The soundness of cyclic proof graphs is ensured by checking them against a trace-based Infinite Descent property. Although the problem of ...
Mostly Automated Verification of Liveness Properties for Distributed Protocols with Ranking Functions
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 35, Pages 1028–1059https://doi.org/10.1145/3632877Distributed protocols have long been formulated in terms of their safety and liveness properties. Much recent work has focused on automatically verifying the safety properties of distributed protocols, but doing so for liveness properties has remained a ...
An Infinite Needle in a Finite Haystack: Finding Infinite Counter-Models in Deductive Verification
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 33, Pages 970–1000https://doi.org/10.1145/3632875First-order logic, and quantifiers in particular, are widely used in deductive verification of programs and systems. Quantifiers are essential for describing systems with unbounded domains, but prove difficult for automated solvers. Significant effort ...