Abstract: 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 user to specify a concrete expression exactly describing resource usage, whereas our method uses big-O notation to specify the asymptotic resource usage. Our method can synthesize programs with complex resource bounds, such as a sort function that has complexity O(nlog(n)). Our synthesis procedure uses a type system that is able to assign an asymptotic complexity to terms, and can track recurrence relations of functions. These typing rules are justified by theorems used in analysis of algorithms, such as the Master Theorem and the Akra-Bazzi method. We implemented our method as an extension of prior type-based synthesis work. Our tool, SynPlexity, was able to synthesize complex divide-and-conquer programs that cannot be synthesized by prior solvers.
Recommendations
Cites work
- scientific article; zbMATH DE number 3705907 (Why is no real title available?)
- A fistful of dollars: formalizing asymptotic complexity claims via deductive program verification
- Closed-form upper bounds in static cost analysis
- Exponential automatic amortized resource analysis
- Introduction to algorithms.
- Mechanical program analysis
- Multivariate amortized resource analysis
- On the solution of linear recurrence equations
- Proving divide and conquer complexities in Isabelle/HOL
- Syntax-guided synthesis with quantitative syntactic objectives
- The concrete tetrahedron. Symbolic sums, recurrence equations, generating functions, asymptotic estimates
Cited in
(5)
This page was built for publication: Synthesis with asymptotic resource bounds
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q832230)