An Assertion-Based Program Logic for Probabilistic Programs

03/14/2018
by   Gilles Barthe, et al.
0

Research on deductive verification of probabilistic programs has considered expectation-based logics, where pre- and post-conditions are real-valued functions on states, and assertion-based logics, where pre- and post-conditions are boolean predicates on state distributions. Both approaches have developed over nearly four decades, but they have different standings today. Expectation-based systems have managed to formalize many sophisticated case studies, while assertion-based systems today have more limited expressivity and have targeted simpler examples. We present Ellora, a sound and relatively complete assertion-based program logic, and demonstrate its expressivity by verifying several classical examples of randomized algorithms using an implementation in the EasyCrypt proof assistant. Ellora features new proof rules for loops and adversarial code, and supports richer assertions than existing program logics. We also show that Ellora allows convenient reasoning about complex probabilistic concepts by developing a new program logic for probabilistic independence and distribution law, and then smoothly embedding it into Ellora. Our work demonstrates that the assertion-based approach is not fundamentally limited and suggests that some notions are potentially easier to reason about in assertion-based systems.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/08/2017

Proving Expected Sensitivity of Probabilistic Programs

Program sensitivity, also known as Lipschitz continuity, describes how s...
research
09/14/2023

A Deductive Verification Infrastructure for Probabilistic Programs

This paper presents a quantitative program verification infrastructure f...
research
01/24/2023

Hyper Hoare Logic: (Dis-)Proving Program Hyperproperties (extended version)

Hoare logics are proof systems that allow one to formally establish prop...
research
07/22/2020

Graded Hoare Logic and its Categorical Semantics

Deductive verification techniques, based on program logics (i.e., the fa...
research
07/16/2018

Formal verification of higher-order probabilistic programs

Probabilistic programming provides a convenient lingua franca for writin...
research
10/14/2020

Concise Outlines for a Complex Logic: A Proof Outline Checker for TaDA (Full Paper)

Modern separation logics allow one to prove rich properties of intricate...
research
05/03/2022

Does a Program Yield the Right Distribution? Verifying Probabilistic Programs via Generating Functions

We study discrete probabilistic programs with potentially unbounded loop...

Please sign up or login with your details

Forgot password? Click here to reset