Automatic Resource Bound Analysis and Linear Optimization
summary
Automatic system generates symbolic worst‑case resource bounds by encoding type‑based potential annotations into linear constraints and solving them with LP solving (CLP/clex). Implementation targets a subset of OCaml (≈12k LOC) and exposes a web interface; benchmarks include standard list libraries and a verified C compiler extracted to OCaml. Solver instances grow to about 1M constraints and solve in ≈1 minute; derived multivariate polynomial bounds (binomial basis) are often asymptotically tight and match measured step counts on worst‑case inputs.
AI-written summary · about
chapters (24)
- 0:00Intro
- 0:53Resource Usage in Safety-Critical Systems
- 1:38Performance Bugs are common and Expensive
- 2:45Software Security
- 4:13Static Resource Bound Analysis
- 5:12Research Challenges
- 6:22Why is this Related?
- 10:01Idea: Automate Amortized Analysis
- 11:29Example: Append for Persistent Lists
- 12:24Example: Composing Calls of Append
- 17:48Example: Polynomial Potential Functions
- 20:15Multivariate Resource Polynomials [POPL'11]
- 21:21Resource Polynomials: Examples
- 24:12Automatic Computation of the Bounds
- 25:00Outline
- 25:24Resource Aware ML
- 28:38Macro Benchmarks
- 31:04Machine Learning Cost Models
- 31:58Bound for List Append on x86
- 33:36Network-Flow Problems
- 34:49Linear Constraints have a Simple Form
- 38:00Most Complex Constraints: Sharing
- 39:50Constraint Solving in Practice
- 41:23Automatic Amortized Resource Analysis
