Proving Termination of Probabilistic Programs Using Patterns
Javier Esparza, Andreas Gaiser, Stefan Kiefer

TL;DR
This paper introduces a new algorithm that leverages existing tools to prove almost-sure termination of probabilistic programs by constructing a set of terminating runs with probability one, with applications in probabilistic analysis.
Contribution
It presents a novel algorithm that combines model checking and termination proving tools to establish almost-sure termination of probabilistic programs through pattern refinement.
Findings
Successfully applied to various case studies demonstrating effectiveness.
Can improve lower bounds on reachability probabilities.
Provides a practical approach for probabilistic program verification.
Abstract
Proving programs terminating is a fundamental computer science challenge. Recent research has produced powerful tools that can check a wide range of programs for termination. The analog for probabilistic programs, namely termination with probability one ("almost-sure termination"), is an equally important property for randomized algorithms and probabilistic protocols. We suggest a novel algorithm for proving almost-sure termination of probabilistic programs. Our algorithm exploits the power of state-of-the-art model checkers and termination provers for nonprobabilistic programs: it calls such tools within a refinement loop and thereby iteratively constructs a "terminating pattern", which is a set of terminating runs with probability one. We report on various case studies illustrating the effectiveness of our algorithm. As a further application, our algorithm can improve lower bounds on…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Software Testing and Debugging Techniques · Logic, programming, and type systems
