# Templates and recurrences: better together

@article{Breck2020TemplatesAR, 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}, year={2020} }

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…

## 5 Citations

Dynaplex: analyzing program complexity using dynamically inferred recurrence relations

- Computer ScienceProc. ACM Program. Lang.
- 2021

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

- 2021

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

- Computer ScienceCAV
- 2021

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

- Computer ScienceCAV
- 2021

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

- Computer ScienceESOP
- 2021

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.

## References

SHOWING 1-10 OF 41 REFERENCES

Non-linear reasoning for invariant synthesis

- Computer ScienceProc. ACM Program. Lang.
- 2018

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

- Computer Science, MathematicsISSAC '04
- 2004

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

- Computer SciencePOPL '04
- 2004

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

- Mathematics, Computer ScienceISSAC
- 2017

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

- Computer ScienceCAV
- 2003

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-

- Mathematics
- 2004

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

- Computer ScienceJournal of Automated Reasoning
- 2010

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

- Computer ScienceSAS
- 2004

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

- Computer ScienceVMCAI
- 2018

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

- Mathematics, Computer ScienceDeduction 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.