A static cost analysis for a higher-order language
N. Danner, J. Paykin, J. S. Royer

TL;DR
This paper introduces a static complexity analysis for a higher-order functional language, providing certified upper bounds on evaluation costs through formal proof in Coq.
Contribution
It presents a novel static analysis framework for higher-order languages with structural recursion, including a formal proof of soundness in Coq.
Findings
Provides a translation function mapping expressions to complexities
Establishes that the complexity bounds are sound and formalized in Coq
Offers a method to compute certified upper bounds on evaluation costs
Abstract
We develop a static complexity analysis for a higher-order functional language with structural list recursion. The complexity of an expression is a pair consisting of a cost and a potential. The former is defined to be the size of the expression's evaluation derivation in a standard big-step operational semantics. The latter is a measure of the "future" cost of using the value of that expression. A translation function tr maps target expressions to complexities. Our main result is the following Soundness Theorem: If t is a term in the target language, then the cost component of tr(t) is an upper bound on the cost of evaluating t. The proof of the Soundness Theorem is formalized in Coq, providing certified upper bounds on the cost of any expression in the target language.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
