Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation 2020
DOI: 10.1145/3385412.3386035
|View full text |Cite
|
Sign up to set email alerts
|

Templates and recurrences: better together

Abstract: 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 disadvantage is particu… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
9
0

Year Published

2021
2021
2023
2023

Publication Types

Select...
5
1

Relationship

3
3

Authors

Journals

citations
Cited by 22 publications
(9 citation statements)
references
References 33 publications
0
9
0
Order By: Relevance
“…In this section, we evaluate the effectiveness and performance of SynPlexity, and compare it to existing tools. 4 We implemented SynPlexity in Haskell on top of Synquid by extending its type system with recurrence annotations as presented in Sect. 3.…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…In this section, we evaluate the effectiveness and performance of SynPlexity, and compare it to existing tools. 4 We implemented SynPlexity in Haskell on top of Synquid by extending its type system with recurrence annotations as presented in Sect. 3.…”
Section: Discussionmentioning
confidence: 99%
“…Within the literature on automated resource-bound analysis, there are methods that extract and solve recurrence relations for imperative code [2,4,7,15]. However, these methods are unlike the type system presented in this work because they extract concrete complexity bounds as recurrence relations, and then solve the recurrences to find a concrete upper bound on resource usage.…”
Section: Related Workmentioning
confidence: 99%
“…Section 4.2 shows how the algebraic approach can be applied to summarize linearly recursive procedures. But to compute summaries for generally recursive procedures, current-generation algebraic-programanalysis tools fall back on another non-algebraic scheme (such as hybrid iterative/algebraic, like Kleene or Newton iteration [40,53], or the template-based approach of [16]). This raises the question: is there a practical algebraic method for analyzing general recursion?…”
Section: Open Problemsmentioning
confidence: 99%
“…4 how the algorithm synthesizes the O(log x) implementation of prod presented in Eqn. (4). We omit the type contexts in the example.…”
Section: Overview Of the Synthesis Algorithmmentioning
confidence: 99%