Liquid Resource Types
Tristan Knoth, Di Wang, Adam Reynolds, Jan Hoffmann, and Nadia, Polikarpova

TL;DR
Liquid resource types provide an automated, precise method for verifying resource bounds in functional programs by combining logical refinements with potential annotations, enabling expressive and automatic resource analysis.
Contribution
This work introduces liquid resource types, a novel type system that automatically verifies resource bounds with expressive potential annotations, bridging automation and flexibility.
Findings
Successfully verifies resource bounds automatically
Supports polynomial and exponential bounds
Reduces manual proof effort
Abstract
This article presents liquid resource types, a technique for automatically verifying the resource consumption of functional programs. Existing resource analysis techniques trade automation for flexibility -- automated techniques are restricted to relatively constrained families of resource bounds, while more expressive proof techniques admitting value-dependent bounds rely on handwritten proofs. Liquid resource types combine the best of these approaches, using logical refinements to automatically prove precise bounds on a program's resource consumption. The type system augments refinement types with potential annotations to conduct an amortized resource analysis. Importantly, users can annotate data structure declarations to indicate how potential is allocated within the type, allowing the system to express bounds with polynomials and exponentials, as well as more precise expressions…
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.
