EDBT 2026 Demo / reviewers in the wild / expert
Jason Breck
dblp:148/1307
· DBLP profile ↗
8ranked-venue papers
1as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 1 first-authorTheory of computation · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
6 papers |
Program verification · 44% Program analysis · 43% Program synthesis and code generation · 13% | |
| Theoretical computer science
1 paper |
Computational complexity · 100% |
Topics — the 17 heaviest of 18, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program verification › invariant generation
loop invariant generation |
0.7 | 2 | 2019 | Closed forms for numerical loops · Proc. ACM Program. Lang. 2019 Non-linear reasoning for invariant synthesis · Proc. ACM Program. Lang. 2018 |
Program analysis
static analysis |
0.7 | 2 | 2019 | Refinement of path expressions for static analysis · Proc. ACM Program. Lang. 2019 Compositional recurrence analysis revisited · PLDI 2017 |
Program verification
invariant generation |
0.4 | 1 | 2020 | Templates and recurrences: better together · PLDI 2020 |
Program verification › invariant generation
template-based invariant generation |
0.4 | 1 | 2020 | Templates and recurrences: better together · PLDI 2020 |
Program analysis › static analysis › semantics-based program analysis
algebraic program analysis |
0.4 | 1 | 2019 | Refinement of path expressions for static analysis · Proc. ACM Program. Lang. 2019 |
Program analysis
loop analysis |
0.4 | 1 | 2019 | Refinement of path expressions for static analysis · Proc. ACM Program. Lang. 2019 |
Program verification › model checking › state space exploration
reachability analysis |
0.4 | 1 | 2019 | Proving Unrealizability for Syntax-Guided Synthesis · CAV (1) 2019 |
Program synthesis and code generation
syntax-guided synthesis |
0.4 | 1 | 2019 | Proving Unrealizability for Syntax-Guided Synthesis · CAV (1) 2019 |
Program verification
termination analysis |
0.4 | 1 | 2019 | Closed forms for numerical loops · Proc. ACM Program. Lang. 2019 |
Program synthesis and code generation › controller synthesis › reactive synthesis
unrealizability |
0.4 | 1 | 2019 | Proving Unrealizability for Syntax-Guided Synthesis · CAV (1) 2019 |
Computational complexity
decidability |
0.4 | 1 | 2019 | Closed forms for numerical loops · Proc. ACM Program. Lang. 2019 |
Program analysis › static analysis
abstract interpretation |
0.3 | 1 | 2018 | Non-linear reasoning for invariant synthesis · Proc. ACM Program. Lang. 2018 |
Program analysis › static analysis › interprocedural analysis
context-sensitive analysis |
0.3 | 1 | 2017 | Compositional recurrence analysis revisited · PLDI 2017 |
Program analysis › static analysis
interprocedural analysis |
0.3 | 1 | 2017 | Compositional recurrence analysis revisited · PLDI 2017 |
Program verification › invariant generation
inductive assertions |
0.1 | 1 | 2019 | Refinement of path expressions for static analysis · Proc. ACM Program. Lang. 2019 |
Program verification › dynamic verification › runtime verification
assertion checking |
0.1 | 1 | 2018 | Non-linear reasoning for invariant synthesis · Proc. ACM Program. Lang. 2018 |
Program analysis › resource analysis
resource bound analysis |
0.1 | 1 | 2018 | Non-linear reasoning for invariant synthesis · Proc. ACM Program. Lang. 2018 |
Methods — techniques the papers use, named apart from their topics
recurrence solving · 1.1polynomial and exponential closed forms · 0.8algebraic numbers · 0.8abstract interpretation · 0.6template-based method · 0.4recurrence-based methods · 0.4program analysis · 0.4grammar encoding · 0.4compositional recurrence analysis · 0.4path-expression method · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Templates and recurrences: better togetherabstractThis 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. Jason Breck, John Cyphert, Zachary Kincaid, Thomas W. Reps |
PLDI | 1 |
| 2019 | Proving Unrealizability for Syntax-Guided SynthesisabstractWe consider the problem of automatically establishing that a given syntax-guided-synthesis (SyGuS) problem is unrealizable (i.e., has no solution). Existing techniques have quite limited ability to establish unrealizability for general SyGuS instances in which the grammar describing the search space contains infinitely many programs. By encoding the synthesis problem’s grammar G as a nondeterministic program $$P_G$$ , we reduce the unrealizability problem to a reachability problem such that, if a standard program-analysis tool can establish that a certain assertion in $$P_G$$ always holds, then the synthesis problem is unrealizable. Our method can be used to augment existing SyGuS tools so that they can establish that a successfully synthesized program q is optimal with respect to some syntactic cost—e.g., q has the fewest possible if-then-else operators. Using known techniques, grammar G can be transformed to generate the set of all programs with lower costs than q—e.g., fewer conditional expressions. Our algorithm can then be applied to show that the resulting synthesis problem is unrealizable. We implemented the proposed technique in a tool called nope. nope can prove unrealizability for 59/132 variants of existing linear-integer-arithmetic SyGuS benchmarks, whereas all existing SyGuS solvers lack the ability to prove that these benchmarks are unrealizable, and time out on them. Qinheping Hu, Jason Breck, John Cyphert, Loris D'Antoni, Thomas W. Reps |
CAV (1) | 2 |
| 2019 | Refinement of path expressions for static analysisabstractAlgebraic 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 expression in a semantic algebra that defines the analysis. There are an infinite number of different regular expressions that qualify as valid path expressions, which raises the question “ Which one should we choose? ” While any choice yields a sound result, for many analyses the choice can have a drastic effect on the precision of the results obtained. This paper investigates the following two questions: (1) What does it mean for one valid path expression to be “better” than another ? (2) Can we compute a valid path expression that is “better,” and if so, how ? We show that it is not satisfactory to compare two path expressions E 1 and E 2 solely by means of the languages that they generate . Counter to one’s intuition, it is possible for L ( E 2 ) ⊊ L ( E 1 ), yet for E 2 to produce a less-precise analysis result than E 1 —and thus we would not want to perform the transformation E 1 → E 2 . However, the exclusion of paths so as to analyze a smaller language of paths is exactly the refinement criterion used by some prior methods. In this paper, we develop an algorithm that takes as input a valid path expression E , and returns a valid path expression E ′ that is guaranteed to yield analysis results that are at least as good as those obtained using E . While the algorithm sometimes returns E itself, it typically does not: (i) we prove a no-degradation result for the algorithm’s base case—for transforming a leaf loop (i.e., a most-deeply-nested loop); (ii) at a non-leaf loop L , the algorithm treats each loop L ′ in the body of L as an indivisible atom, and applies the leaf-loop algorithm to L ; the no-degradation result carries over to (ii), as well. Our experiments show that the technique has a substantial impact: the loop-refinement algorithm allows the implementation of Compositional Recurrence Analysis to prove over 25% more assertions for a collection of challenging loop micro-benchmarks. John Cyphert, Jason Breck, Zachary Kincaid, Thomas W. Reps |
Proc. ACM Program. Lang. | 2 |
| 2019 | Closed forms for numerical loopsabstractThis 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 of the behavior of a linear dynamical system can always be expressed using algebraic numbers, but this approach can create formulas that present an obstacle for automated-reasoning tools. This paper characterizes when linear loops have closed forms in simpler theories that are more amenable to automated reasoning. The algorithms for computing closed forms described in the paper avoid the use of algebraic numbers, and produce closed forms expressed using polynomials and exponentials over rational numbers. We show that the logic for expressing closed forms is decidable, yielding decision procedures for verifying safety and termination of a class of numerical loops over rational numbers. We also show that the procedure for computing closed forms for this class of numerical loops can be used to over-approximate the behavior of arbitrary numerical programs (with unrestricted control flow, non-deterministic assignments, and recursive procedures). Zachary Kincaid, Jason Breck, John Cyphert, Thomas W. Reps |
Proc. ACM Program. Lang. | 2 |
| 2018 | Non-linear reasoning for invariant synthesisabstractAutomatic 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 polynomials and/or logarithms is needed for establishing invariants that describe the time or memory usage of many well-known algorithms. An appealing approach to this challenge is to exploit the powerful recurrence-solving techniques that have been developed in the field of computer algebra, which can compute exact characterizations of non-linear repetitive behavior. However, there is a gap between the capabilities of recurrence solvers and the needs of program analysis: (1) loop bodies are not merely systems of recurrence relations---they may contain conditional branches, nested loops, non-deterministic assignments, etc., and (2) a client program analyzer must be able to reason about the closed-form solutions produced by a recurrence solver (e.g., to prove assertions). This paper presents a method for generating non-linear invariants of general loops based on analyzing recurrence relations. The key components are an abstract domain for reasoning about non-linear arithmetic, a semantics-based method for extracting recurrence relations from loop bodies, and a recurrence solver that avoids closed forms that involve complex or irrational numbers. Our technique has been implemented in a program analyzer that can analyze general loops and mutually recursive procedures. Our experiments show that our technique shows promise for non-linear assertion-checking and resource-bound generation. Zachary Kincaid, John Cyphert, Jason Breck, Thomas W. Reps |
Proc. ACM Program. Lang. | 3 |
| 2017 | Compositional recurrence analysis revisitedabstractCompositional 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 recursive procedures. The problem is non-trivial because there is an "impedance mismatch" between CRA, which relies on analysis techniques based on regular languages (i.e., Tarjan's path-expression method), and the context-free-language underpinnings of context-sensitive analysis. Zachary Kincaid, Jason Breck, Ashkan Forouhi Boroujeni, Thomas W. Reps |
PLDI | 2 |
| 2016 | An Algorithm Inspired by Constraint Solvers to Infer Inductive Invariants in Numeric Programs
Antoine Miné, Jason Breck, Thomas W. Reps |
ESOP | 2 |
| 2014 | Satisfiability modulo abstraction for separation logic with linked listsabstractSeparation logic is an expressive logic for reasoning about heap structures in programs. This paper presents a semi-decision procedure for checking unsatisfiability of formulas in a fragment of separation logic that includes points-to assertions (x |-> y), acyclic-list-segment assertions (ls(x,y)), logical-and, logical-or, separating conjunction, and septraction (the DeMorgan-dual of separating implication). The fragment that we consider allows negation at leaves, and includes formulas that lie outside other separation-logic fragments considered in the literature. Aditya V. Thakur, Jason Breck, Thomas W. Reps |
SPIN | 2 |