TL;DR
Clutch is a higher-order probabilistic relational separation logic that enables reasoning about asynchronous couplings, expanding the capabilities of probabilistic program verification beyond synchronized sampling.
Contribution
It introduces Clutch, a novel logic supporting asynchronous probabilistic couplings for higher-order programs with complex features.
Findings
Formalized in Coq using Iris and Coquelicot
Applied to case studies demonstrating effectiveness
Enables reasoning about contextual refinement and equivalence
Abstract
Probabilistic couplings are the foundation for many probabilistic relational program logics and arise when relating random sampling statements across two programs. In relational program logics, this manifests as dedicated coupling rules that, e.g., say we may reason as if two sampling statements return the same value. However, this approach fundamentally requires aligning or "synchronizing" the sampling statements of the two programs which is not always possible. In this paper, we develop Clutch, a higher-order probabilistic relational separation logic that addresses this issue by supporting asynchronous probabilistic couplings. We use Clutch to develop a logical step-indexed logical relational to reason about contextual refinement and equivalence of higher-order programs written in a rich language with higher-order local state and impredicative polymorphism. Finally, we demonstrate…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
