Score: 0

To Zip Through the Cost Analysis of Probabilistic Programs

Published: August 19, 2025 | arXiv ID: 2508.14249v1

By: Matthias Hetzenberger, Georg Moser, Florian Zuleger

Potential Business Impact:

Helps computers guess how long programs will run.

Business Areas:
A/B Testing Data and Analytics

Probabilistic programming and the formal analysis of probabilistic algorithms are active areas of research, driven by the widespread use of randomness to improve performance. While functional correctness has seen substantial progress, automated reasoning about expected runtime remains comparatively limited. In this work, we address this challenge by introducing a refinement-typed probability monad in Liquid Haskell. Our monad enables automated reasoning about expected values and costs by encoding probabilistic behaviour directly in types. Initially defined for discrete distributions over finite support, it is extended to support infinite distributions via an axiomatic approach. By leveraging Liquid Haskell's SMT-based refinement type checking, our framework provides a high degree of automation. We evaluate our approach through four case studies: meldable heaps, coupon collector, randomised quicksort, and zip trees. The first two demonstrate automation with minimal annotation overhead. The latter two showcase how our monad integrates with interactive proofs, including the first formal verification of the expected runtime of zip trees.

Country of Origin
🇦🇹 Austria

Page Count
33 pages

Category
Computer Science:
Logic in Computer Science