On continuation-passing transformations and expected cost analysis
Abstract
We define a continuation-passing style (CPS) translation for a typed lambda-calculus with probabilistic choice, unbounded recursion, and a tick operator - for modeling cost. The target language is a (non-probabilistic) lambda-calculus, enriched with a type of extended positive reals and a fixpoint operator.
We then show that applying the CPS transform of an expression M to the an appropriate continuation yields the expected cost of M. We also introduce a formal system for higher-order logic, called EHOL, prove it sound, and show it can derive tight upper bounds on the expected cost of classic examples, including Coupon Collector and Random Walk.
Moreover, we relate our translation to Kaminski et al.’s ert-calculus, showing that the latter can be recovered by applying our CPS translation to (a generalization of) the classic embedding of imperative programs into lambda-calculus.
Finally, we prove that the CPS transform of an expression can also be used to compute pre-expectations and to reason about almost sure termination.
Categories
Complexity Analysis, Types, Functional Programming, Higher-Order, CPS