Model Checking Temporal Properties of Recursive Probabilistic Programs
Tobias Winkler, Christina Gehnen, Joost-Pieter Katoen
TL;DR
This work establishes the decidability of model checking probabilistic pushdown automata (pPDA) against ω-visibly pushdown languages (ω-VPL) and CaRet-based specifications, addressing recursive probabilistic programs. The authors combine automata-theoretic techniques by determinizing CaRet into a stair-parity DVPA, forming a product with a pVPA, and reducing acceptance to a stair-parity condition on a finite step chain; crucially, probabilities are handled via the existential theory of the reals (ETR) to stay within PSPACE. The main results include PSPACE decidability for qualitative and quantitative model checking against stair-parity DVPA, with extended implications to Büchi VPA and CaRet, yielding 2EXPSPACE/2EXPTIME bounds for CaRet and EXPTIME-complete qualitative results for Büchi VPA. These findings enable automated verification of recursive probabilistic programs against expressive, structure-aware temporal properties, broadening the scope beyond ω-regular specifications. The work also outlines future directions for tightening complexity bounds and extending to related logics such as visibly LTL and OPTL, as well as approximate verification techniques.
Abstract
Probabilistic pushdown automata (pPDA) are a standard operational model for programming languages involving discrete random choices and recursive procedures. Temporal properties are useful for specifying the chronological order of events during program execution. Existing approaches for model checking pPDA against temporal properties have focused mostly on $ω$-regular and LTL properties. In this paper, we give decidability and complexity results for the model checking problem of pPDA against $ω$-visibly pushdown languages that can be described by specification logics such as CaRet. These logical formulae allow specifying properties that explicitly take the structured computations arising from procedural programs into account. For example, CaRet is able to match procedure calls with their corresponding future returns, and thus allows to express fundamental program properties such as total and partial correctness.
