Templates and recurrences: better together

  title={Templates and recurrences: better together},
  author={Jason Breck and John Cyphert and Zachary Kincaid and T. Reps},
  journal={Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation},
  • J. Breck, John Cyphert, +1 author T. Reps
  • Published 30 March 2020
  • Computer Science
  • Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation
This 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 quantities, and finds invariants that match the template by extracting and solving constraints on the unknowns. A disadvantage of template-based methods is that they require fixing the set of terms that may appear in an invariant in advance. This… 
Dynaplex: analyzing program complexity using dynamically inferred recurrence relations
A new dynamic approach for inferring the asymptotic complexity bounds of recursive programs, which allows for efficiently infer simple recurrence relations that represent nontrivial, potentially nonlinear polynomial and non-polynomial, complexity bounds.
P L ] 2 6 M ay 2 02 1 Synthesis with Asymptotic Resource Bounds
We present a method for synthesizing recursive functions that satisfy both a functional specification and an asymptotic resource bound. Prior methods for synthesis with a resource metric require the
Synthesis with Asymptotic Resource Bounds
A method for synthesizing recursive functions that satisfy both a functional specification and an asymptotic resource bound, which was able to synthesize complex divide-andconquer programs that cannot be synthesized by prior solvers.
Algebraic Program Analysis
This 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
Run-time Complexity Bounds Using Squeezers
A novel technique that generalizes the common notion of recurrence relations based on ranking functions is proposed, where whole traces are derived by comparing whole traces with whole traces of a lower rank, avoiding the need to analyze the complexity of intermediate states.


Non-linear reasoning for invariant synthesis
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 are presented.
Automatic Generation of Polynomial Loop Invariants: Algebraic Foundations
It is proved that if the assignment statements in a loop are solvable (in particular, affine) mappings with positive eigenvalues, then the procedure terminates in at most 2m+1 iterations, where m is the number of variables in the loop.
Non-linear loop invariant generation using Gröbner bases
A technique is demonstrated that encodes the conditions for a given template assertion being an invariant into a set of constraints, such that all the solutions to these constraints correspond to non-linear (algebraic) loop invariants of the program.
Automated Generation of Non-Linear Loop Invariants Utilizing Hypergeometric Sequences
This work significantly extends the class of so-called P-solvable loops by handling multiplication with the loop counter variable, and applies Gröbner basis computation to obtain a basis of the polynomial invariant ideal, yielding thus a finite representation of all polynometric invariants.
Linear Invariant Generation Using Non-linear Constraint Solving
This method, based on Farkas’ Lemma, synthesizes linear invariants by extracting non-linear constraints on the coefficients of a target invariant from a program, which guarantees that the linear invariant is inductive.
Automatically Generating Loop Invariants Using Quantifier Elimination † -Preliminary Report-
An approach for automatically generating loop invariants using quantifier-elimination is proposed. An invariant of a loop is hypothesized as a parameterized formula. Parameters in the invariant are
Closed-Form Upper Bounds in Static Cost Analysis
This article presents the first practical framework for the generation of closed-form upper bounds for CRs which is fully automatic, can handle the distinctive features of CRs, originating from cost analysis of realistic programming languages, is not restricted to simple complexity classes, and produces reasonably accurate solutions.
Constraint-Based Linear-Relations Analysis
By some efficient simplifications and approximations to the quantifier elimination procedure, not only does the method scale to higher dimensions, but also enjoys performance advantages for some larger examples.
Invariant Generation for Multi-Path Loops with Polynomial Assignments
This paper studies a class of multi-path program loops with numeric variables, in particular nested loops with conditionals, where assignments to program variables are polynomial expressions over program variables, and introduces an algorithm for generating allPolynomial invariants of such loops.
Automatically Generating Loop Invariants Using Quantifier Elimination
  • D. Kapur
  • Mathematics, Computer Science
    Deduction and Applications
  • 2005
An approach for automatically generating loop invariants using quantifier-elimination as well as Presburger arithmetic to generate the strongest possible invariant of the hypothesized form can be generated from most general solutions of the parametric constraints.