Book contents
- Frontmatter
- Contents
- List of Contributors
- Preface
- 1 Semantics of Probabilistic Programming: A Gentle Introduction
- 2 Probabilistic Programs as Measures
- 3 Application ofComputable Distributions to the Semantics of Probabilistic Programs
- 4 On Probabilistic λ-Calculi
- 5 Probabilistic Couplings from Program Logics
- 6 Expected Runtime Analyis by Program Verification
- 7 Termination Analysis of Probabilistic Programs with Martingales
- 8 Quantitative Analysis of Programs with Probabilities and Concentration of Measure Inequalities
- 9 The Logical Essentials of Bayesian Reasoning
- 10 Quantitative Equational Reasoning
- 11 Probabilistic Abstract Interpretation: Sound Inference and Application to Privacy
- 12 Quantitative Information Flow with Monads in Haskell
- 13 Luck: A Probabilistic Language for Testing
- 14 Tabular: Probabilistic Inference from the Spreadsheet
- 15 Programming Unreliable Hardware
5 - Probabilistic Couplings from Program Logics
Published online by Cambridge University Press: 18 November 2020
- Frontmatter
- Contents
- List of Contributors
- Preface
- 1 Semantics of Probabilistic Programming: A Gentle Introduction
- 2 Probabilistic Programs as Measures
- 3 Application ofComputable Distributions to the Semantics of Probabilistic Programs
- 4 On Probabilistic λ-Calculi
- 5 Probabilistic Couplings from Program Logics
- 6 Expected Runtime Analyis by Program Verification
- 7 Termination Analysis of Probabilistic Programs with Martingales
- 8 Quantitative Analysis of Programs with Probabilities and Concentration of Measure Inequalities
- 9 The Logical Essentials of Bayesian Reasoning
- 10 Quantitative Equational Reasoning
- 11 Probabilistic Abstract Interpretation: Sound Inference and Application to Privacy
- 12 Quantitative Information Flow with Monads in Haskell
- 13 Luck: A Probabilistic Language for Testing
- 14 Tabular: Probabilistic Inference from the Spreadsheet
- 15 Programming Unreliable Hardware
Summary
Probabilistic couplings are a powerful abstraction for analysing probabilistic properties. Originating from research in probability theory, a coupling is a distribution over pairs that relates – or couples – two given distributions. If we can find a coupling with certain properties, then we can conclude properties about the two related distributions. In this way, probabilistic relational properties – properties comparing two executions of a probabilistic program – can be established by building a suitable coupling. Couplings have also been explored in the logic and verification literature. For example, probabilistic bisimulation asserts that there exists a coupling; in this way, couplings can be used to verify equivalence of finite state probabilistic transition systems. However, their use in mathematics suggests that couplings can prove more sophisticated properties for richer probabilistic computations, such as imperative programs and infinite state systems. Furthermore, we can borrow a tool from probability theory, called proof by coupling, to construct couplings in a compositional fashion. This chapter describes how coupling proofs can be naturally encoded in pRHL, a relational program logic originally designed for verifying cryptographic protocols. Several examples are presented, showing how to use this proof technique to verify equivalence, stochastic domination and probabilistic convergence.
- Type
- Chapter
- Information
- Foundations of Probabilistic Programming , pp. 145 - 184Publisher: Cambridge University PressPrint publication year: 2020
- Creative Commons
- This content is Open Access and distributed under the terms of the Creative Commons Attribution licence CC-BY 4.0 https://creativecommons.org/cclicenses/
- 3
- Cited by