Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
Monotone Procedure Summarization via Vector Addition Systems and Inductive Potentials
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 337, Pages 1873–1899https://doi.org/10.1145/3689777This paper presents a technique for summarizing recursive procedures operating on integer variables. The motivation of our work is to create more predictable program analyzers, and in particular to formally guarantee compositionality and monotonicity of ...
- ArticleSeptember 2024
Semi-linear VASR for Over-Approximate Semi-linear Transition System Reachability
AbstractThis paper introduces Semi-Linear Integer Vector Addition Systems with Resets (SVASR). A SVASR is a labeled transition system in which the states are finite-dimensional integer-valued vectors and which transitions from one state to another by ...
- research-articleAugust 2024
Relational Network Verification
ACM SIGCOMM '24: Proceedings of the ACM SIGCOMM 2024 ConferencePages 213–227https://doi.org/10.1145/3651890.3672238Relational network verification is a new approach for validating network changes. In contrast to traditional network verification, which analyzes specifications for a single network snapshot, it analyzes specifications that capture similarities and ...
- ArticleJuly 2024
Quantified Linear Arithmetic Satisfiability via Fine-Grained Strategy Improvement
AbstractChecking satisfiability of formulae in the theory of linear arithmetic has far reaching applications, including program verification and synthesis. Many satisfiability solvers excel at proving and disproving satisfiability of quantifier-free ...
- ArticleJuly 2024
Breaking the Mold: Nonlinear Ranking Function Synthesis Without Templates
AbstractThis paper studies the problem of synthesizing (lexicographic) polynomial ranking functions for loops that can be described in polynomial arithmetic over integers and reals. While the analogous ranking function synthesis problem for linear ...
-
Solvable Polynomial Ideals: The Ideal Reflection for Program Analysis
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue POPLArticle No.: 25, Pages 724–752https://doi.org/10.1145/3632867This paper presents a program analysis method that generates program summaries involving polynomial arithmetic. Our approach builds on prior techniques that use solvable polynomial maps for summarizing loops. These techniques are able to generate all ...
When Less Is More: Consequence-Finding in a Weak Theory of Arithmetic
Proceedings of the ACM on Programming Languages (PACMPL), Volume 7, Issue POPLArticle No.: 44, Pages 1275–1307https://doi.org/10.1145/3571237This paper presents a theory of non-linear integer/real arithmetic and algorithms for reasoning about this theory. The theory can be conceived of as an extension of linear integer/real arithmetic with a weakly-axiomatized multiplication symbol, which ...
- ArticleJuly 2021
Reflections on Termination of Linear Loops
AbstractThis paper shows how techniques for linear dynamical systems can be used to reason about the behavior of general loops. We present two main results. First, we show that every loop that can be expressed as a transition formula in linear integer ...
- ArticleJuly 2021
Algebraic Program Analysis
AbstractThis paper is a tutorial on algebraic program analysis. It explains the foundations of algebraic program analysis, its strengths and limitations, and gives examples of algebraic program analyses for numerical invariant generation and termination ...
- research-articleJune 2021
Termination analysis without the tears
PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and ImplementationPages 1296–1311https://doi.org/10.1145/3453483.3454110Determining whether a given program terminates is the quintessential undecidable problem. Algorithms for termination analysis may be classified into two groups: (1) algorithms with strong behavioral guarantees that work in limited circumstances (e.g., ...
- doctoral_thesisJanuary 2021
A Sensible Approach to Speculative Automatic Parallelization
AbstractThe promise of automatic parallelization, freeing programmers from the error-prone and time-consuming process of making efficient use of parallel processing resources, remains unrealized. For decades, the imprecision of memory analysis limited the ...
- doctoral_thesisJanuary 2021
Progressive Automated Formal Verification of Memory Consistency in Parallel Processors
AbstractIn recent years, single-threaded hardware performance has stagnated due to transistor-level limitations stemming from the end of Moore's Law and Dennard scaling. Instead, today's designs improve performance through heterogeneous parallelism: the ...
- research-articleJune 2020
Templates and recurrences: better together
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 688–702https://doi.org/10.1145/3385412.3386035This paper is the confluence of two streams of ideas in the literature on generating numerical invariants, namely: (1) template-based methods, and (2) recurrence-based methods.
A template-based method begins with a template that contains unknown ...
- doctoral_thesisJanuary 2020
Verified Optimizations for Functional Languages
AbstractCoq is one of the most widely adopted proof development systems. It allows programmers to write purely functional programs and verify them against specifications with machine-checked proofs. After verification, one can use Coq's extraction plugin ...
Closed forms for numerical loops
Proceedings of the ACM on Programming Languages (PACMPL), Volume 3, Issue POPLArticle No.: 55, Pages 1–29https://doi.org/10.1145/3290368This paper investigates the problem of reasoning about non-linear behavior of simple numerical loops. Our approach builds on classical techniques for analyzing the behavior of linear dynamical systems. It is well-known that a closed-form representation ...
Refinement of path expressions for static analysis
Proceedings of the ACM on Programming Languages (PACMPL), Volume 3, Issue POPLArticle No.: 45, Pages 1–29https://doi.org/10.1145/3290358Algebraic program analyses compute information about a program’s behavior by first (a) computing a valid path expression—i.e., a regular expression that recognizes all feasible execution paths (and usually more)—and then (b) interpreting the path ...
Strategy synthesis for linear arithmetic games
Proceedings of the ACM on Programming Languages (PACMPL), Volume 2, Issue POPLArticle No.: 61, Pages 1–30https://doi.org/10.1145/3158149Many problems in formal methods can be formalized as two-player games. For several applications—program synthesis, for example—in addition to determining which player wins the game, we are interested in computing a winning strategy for that player. This ...
Non-linear reasoning for invariant synthesis
Proceedings of the ACM on Programming Languages (PACMPL), Volume 2, Issue POPLArticle No.: 54, Pages 1–33https://doi.org/10.1145/3158142Automatic generation of non-linear loop invariants is a long-standing challenge in program analysis, with many applications. For instance, reasoning about exponentials provides a way to find invariants of digital-filter programs, and reasoning about ...
- research-articleJune 2017
Compositional recurrence analysis revisited
PLDI 2017: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 248–262https://doi.org/10.1145/3062341.3062373Compositional recurrence analysis (CRA) is a static-analysis method based on a combination of symbolic analysis and abstract interpretation. This paper addresses the problem of creating a context-sensitive interprocedural version of CRA that handles ...
Also Published in:
ACM SIGPLAN Notices: Volume 52 Issue 6 - ArticleJuly 2016
Linear arithmetic satisfiability via strategy improvement
IJCAI'16: Proceedings of the Twenty-Fifth International Joint Conference on Artificial IntelligencePages 735–743Satisfiability-checking of formulas in the theory of linear rational arithmetic (LRA) has broad applications including program verification and synthesis. Satisfiability Modulo Theories (SMT) solvers are effective at checking satisfiability of the ...