What does a probabilistic program actually compute? How can one formally reason about such probabilistic programs? This valuable guide covers such elementary questions and more. It provides a state-of-the-art overview of the theoretical underpinnings of modern probabilistic programming and their applications in machine learning, security, and other domains, at a level suitable for graduate students and non-experts in the field. In addition, the book treats the connection between probabilistic programs and mathematical logic, security (what is the probability that software leaks confidential information?), and presents three programming languages for different applications: Excel tables, program testing, and approximate computing. This title is also available as Open Access on Cambridge Core.
Author(s): Gilles Barthe, Joost-Pieter Katoen, Alexandra Silva
Publisher: Cambridge University Press
Year: 2021
Language: English
Pages: 582
City: Cambridge
Cover
Half-title
Title page
Copyright information
Contents
Contributors
Preface
1 Semantics of Probabilistic Programming: A Gentle Introduction
2 Probabilistic Programs as Measures
3 An Application of Computable Distributions to the Semantics of Probabilistic Programs
4 On Probabilistic λ-Calculi
5 Probabilistic Couplings from Program Logics
6 Expected Runtime Analysis 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