Slicing of Probabilistic Programs based on Specifications

05/07/2022
by   Marcelo Navarro, et al.
0

This paper presents the first slicing approach for probabilistic programs based on specifications. We show that when probabilistic programs are accompanied by their specifications in the form of pre- and post-condition, we can exploit this semantic information to produce specification-preserving slices strictly more precise than slices yielded by conventional techniques based on data/control dependency. To achieve this goal, our technique is based on the backward propagation of post-conditions via the greatest pre-expectation transformer – the probabilistic counterpart of Dijkstra weakest pre-condition transformer. The technique is termination-sensitive, allowing to preserve the partial as well as the total correctness of probabilistic programs w.r.t. their specifications. It is modular, featuring a local reasoning principle, and is formally proved correct. As fundamental technical ingredients of our technique, we design and prove sound verification condition generators for establishing the partial and total correctness of probabilistic programs, which are of interest on their own and can be exploited elsewhere for other purposes. On the practical side, we demonstrate the applicability of our approach by means of a few illustrative examples and a case study from the probabilistic modelling field. We also describe an algorithm for computing least slices among the space of slices derived by our technique.

READ FULL TEXT

page 1

page 28

page 35

research
08/14/2020

Proving Almost-Sure Termination of Probabilistic Programs via Incremental Pruning

The extension of classical imperative programs with real-valued random v...
research
11/07/2017

A Theory of Slicing for Probabilistic Control-Flow Graphs

We present a theory for slicing probabilistic imperative programs -- con...
research
07/22/2022

CoqQ: Foundational Verification of Quantum Programs

CoqQ is a framework for reasoning about quantum programs in the Coq proo...
research
02/12/2021

Operational Annotations: A new method for sequential program verification

I present a new method for specifying and verifying the partial correctn...
research
07/24/2021

Reasoning about Recursive Quantum Programs

Most modern (classical) programming languages support recursion. Recursi...
research
07/30/2020

Correctness by construction for probabilistic programs

The "correct by construction" paradigm is an important component of mode...
research
04/09/2019

Reasoning about Block-based Cloud Storage Systems

Owing to the massive growth in the storage demands of big data, Cloud St...

Please sign up or login with your details

Forgot password? Click here to reset