🤖 AI Summary
Lambda calculus lacks built-in guarantees on resource usage, hindering formal reasoning about resource consumption and exhaustion.
Method: We propose a parametric, resource-aware type system that models resource consumption and supply via arbitrary-rank algebras; it employs big-step operational semantics and coinductive reasoning to achieve waste-free resource tracking—without altering the source language’s syntax.
Contribution/Results: This work presents the first systematic application of coinduction to prove resource safety: for every well-typed program, there exists a computation path that neither depletes required resources nor wastes allocated ones. The framework uniformly supports linear, capacity-bounded, and hierarchical resource models, delivering strong resource correctness—i.e., guaranteed boundedness, non-exhaustion, and absence of wasteful allocation—under all supported resource disciplines.
📝 Abstract
We extend the semantics and type system of a lambda calculus equipped with common constructs to be resource-aware. That is, the semantics keep tracks of the usage of resources, and is stuck, besides in case of type errors, if either a needed resource is exhausted, or a provided resource would be wasted. In such way, the type system guarantees, besides standard soundness, that for well-typed programs there is a computation where no resource gets either exhausted or wasted.
The no-waste extension is parametric on an arbitrary grade algebra, modeling an arbitrary assortment of possible usages, and does not require ad-hoc changes to the underlying language. To this end, the semantics needs to be formalized in big-step style; as a consequence, expressing and proving (resource-aware) soundness is challenging, and is achieved by applying recent techniques based on coinductive reasoning.