Automated Verification of Higher-Order Probabilistic Programs via a Dependent Refinement Type System
Satoshi Kura, and Hiroshi Unno

TL;DR
This paper introduces a dependent refinement type system for higher-order probabilistic programs, enabling the verification of quantitative properties with minimal modifications to existing tools, supported by a categorical semantics framework and a practical type checker.
Contribution
It presents a novel dependent refinement type system for higher-order probabilistic programs, allowing reasoning about quantitative properties and integrating with existing constraint solvers.
Findings
Type checker reduces to constraint solving
Extended CHC solvers can verify probabilistic programs
Successfully verified various concrete examples
Abstract
Verification of higher-order probabilistic programs is a challenging problem. We present a verification method that supports several quantitative properties of higher-order probabilistic programs. Usually, extending verification methods to handle the quantitative aspects of probabilistic programs often entails extensive modifications to existing tools, reducing compatibility with advanced techniques developed for qualitative verification. In contrast, our approach necessitates only small amounts of modification, facilitating the reuse of existing techniques and implementations. On the theoretical side, we propose a dependent refinement type system for a generalised higher-order fixed point logic (HFL). Combined with continuation-passing style encodings of properties into HFL, our dependent refinement type system enables reasoning about several quantitative properties, including weakest…
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
TopicsSoftware Reliability and Analysis Research · Formal Methods in Verification · Software Testing and Debugging Techniques
