arXiv · 2508.14249
To Zip Through the Cost Analysis of Probabilistic Programs
Abstract
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.
Explore related subjects
Keep this discovery
Matthias Hetzenberger, Georg Moser, Florian Zuleger. 2025-08-19. To Zip Through the Cost Analysis of Probabilistic Programs. https://arxiv.org/abs/2508.14249
Cite the original work for its findings. Save a collection to share your selection of sources.