Probabilistic Analysis Based On Symbolic Game Semantics and Model Counting

09/07/2017
by   Aleksandar S. Dimovski, et al.
0

Probabilistic program analysis aims to quantify the probability that a given program satisfies a required property. It has many potential applications, from program understanding and debugging to computing program reliability, compiler optimizations and quantitative information flow analysis for security. In these situations, it is usually more relevant to quantify the probability of satisfying/violating a given property than to just assess the possibility of such events to occur. In this work, we introduce an approach for probabilistic analysis of open programs (i.e. programs with undefined identifiers) based on game semantics and model counting. We use a symbolic representation of algorithmic game semantics to collect the symbolic constraints on the input data (context) that lead to the occurrence of the target events (e.g. satisfaction/violation of a given property). The constraints are then analyzed to quantify how likely is an input to satisfy them. We use model counting techniques to count the number of solutions (from a bounded integer domain) that satisfy given constraints. These counts are then used to assign probabilities to program executions and to assess the probability for the target event to occur at the desired level of confidence. Finally, we present the results of applying our approach to several interesting examples and illustrate the benefits they may offer.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/19/2023

Symbolic Semantics for Probabilistic Programs (extended version)

We present a new symbolic execution semantics of probabilistic programs ...
research
12/28/2020

Counting the Number of Solutions to Constraints

Compared with constraint satisfaction problems, counting problems have r...
research
09/16/2022

Symbolic Execution for Randomized Programs

We propose a symbolic execution method for programs that can draw random...
research
10/10/2020

SYMPAIS: SYMbolic Parallel Adaptive Importance Sampling for Probabilistic Program Analysis

Probabilistic software analysis aims at quantifying the probability of a...
research
02/23/2020

How Good Is a Strategy in a Game With Nature?

We consider games with two antagonistic players —Éloïse (modelling a pro...
research
04/26/2019

Quantitative Logics for Equivalence of Effectful Programs

In order to reason about effects, we can define quantitative formulas to...
research
08/22/2022

Smoothness Analysis for Probabilistic Programs with Application to Optimised Variational Inference

We present a static analysis for discovering differentiable or more gene...

Please sign up or login with your details

Forgot password? Click here to reset