Hofmann (1999) introduced the functional programming language LFPL to characterize the functions computable in polynomial time using an affine type system. LFPL enables a natural programming style, including nested recursion, and has inspired the development of type systems for automatic cost analysis, linear dependent type theories, and efficient memory management in functional programming languages. Despite its prominence, there does not exist a self-contained presentation, let alone a full mechanization, of LFPL and its core metatheory.
This article presents a modern account and mechanization of LFPL and its metatheory with the goal of being self-contained and accessible while streamlining the strongest-known soundness and completeness results. The soundness proof works with the language LFPL+, which extends LFPL with additional language features. The proof is novel, adapting a technique by Aehlig and Schwichtenberg (2002) to construct explicit polynomials that bound the cost of an LFPL+ expression with respect to a big-step cost semantics. The completeness proof shows that LFPL programs can simulate polynomial-time Turing machines while only relying on restricted forms of linear functions and lists. It has the same structure as the original proof by Hofmann (2002) but greatly simplifies the core argument with a novel stack-like data structure that is implemented with first-class functions and lists. The mechanization includes the full soundness and completeness proofs, and serves as one of the first case studies of mechanized metatheory in the recently developed proof assistant Istari.
@article{lfpl_revisited_and_mechanized,bibtex_show=true,title={LFPL: Revisited and Mechanized},author={Glover, Nathaniel and Hoffmann, Jan},year={2026},archiveprefix={arXiv},primaryclass={cs.PL},doi={10.48550/arXiv.2605.12893},url={https://arxiv.org/abs/2605.12893}}
2025
Int. Res. Analyses
Integrating Resource Analyses via Resource Decomposition
Resource analysis aims to derive symbolic resource bounds of programs. Although numerous resource-analysis techniques have been developed—ranging from static to dynamic and manual to automated techniques—they each come with their own distinct strengths and weaknesses. To overcome the limitations of individual resource-analysis techniques, a promising approach is to combine them in such a way that retains their complementary strengths while mitigating their respective weaknesses. This article proposes a novel program translation method called resource decomposition that facilitates the combination of different resource-analysis techniques. The key idea of resource decomposition is to first identify and annotate the program with resource components, which are user-specified variables that serve as an interface between different analysis techniques. Using these resource components, our method generates a resource-guarded program, where one analysis technique is used to infer an overall cost bound parametric in the resource components, and other analysis techniques are used to infer symbolic bounds to be substituted for the resource components. We establish the soundness of resource decomposition using a denotational cost semantics and a binary logical relation. It states that composing sound bounds results in a sound bound for the original program. Furthermore, we present three instantiations of the resource-decomposition framework, each representing distinct combinations of static, data-driven, and manual resource analyses. The data-driven part of these instantiations is a novel Bayesian approach to inferring linear and logarithmic bounds of recursion depths. An implementation and empirical evaluation of resource decomposition demonstrates that it can effectively infer sound and asymptotically tight cost bounds for a number of challenging benchmarks that are beyond the reach of previous analysis methods.
@article{integrating_resource_analyses,bibtex_show=true,author={Pham, Long and Niu, Yue and Glover, Nathan and Saad, Feras and Hoffmann, Jan},title={Integrating Resource Analyses via Resource Decomposition},journal={Proc. {ACM} Program. Lang.},volume={9},number={{OOPSLA2}},pages={3811--3840},year={2025},url={https://doi.org/10.1145/3763798},doi={10.1145/3763798},timestamp={Wed, 20 May 2026 08:33:27 +0200},biburl={https://dblp.org/rec/journals/pacmpl/PhamNGS025.bib},bibsource={dblp computer science bibliography, https://dblp.org}}
2024
MS Thesis
Stability of $\ell_∞$-Ball Slicing Inequalies in Real and Complex Spaces
We give a brief overview of earlier slicing results for the real cube and complex polydisc, and stability results for the cube slicing inequalities. Then, we recount a dimension-free stability result for polydisc slicing, originally proven in the work of Glover, Tkocz, and Wyczesany. Interestingly, unlike in the case of the cube, there is an additional asymptotic maximizer. We utilize Fourier-analytic bounds, probabilistic tools, and a self-improving property of the polydisc slicing inequalities.
@mastersthesis{glover_thesis,bibtex_show=true,author={Glover, Nathaniel},school={Carnegie Mellon University},title={{Stability of $$\ell_\infty$$-Ball Slicing Inequalies in Real and Complex Spaces}},year={2024}}
We prove a dimension-free stability result for polydisc slicing due to Oleszkiewicz and Pełczyński. Intriguingly, compared to the real case, there is an additional asymptotic maximizer. In addition to Fourier-analytic bounds, we crucially rely on a self-improving feature of polydisc slicing, established via probabilistic arguments.
@article{stability_of_polydisc_slicing,bibtex_show=true,author={Glover, Nathaniel and Tkocz, Tomasz and Wyczesany, Katarzyna},title={{Stability of polydisc slicing}},year={2023},journal={Mathematika},volume={69},number={4},pages={1165-1182},doi={https://doi.org/10.1112/mtk.12225},url={https://londmathsoc.onlinelibrary.wiley.com/doi/abs/10.1112/mtk.12225},}