3 research outputs found
Probabilistic Analysis Based On Symbolic Game Semantics and Model Counting
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.Comment: In Proceedings GandALF 2017, arXiv:1709.0176
Quantitative Simulations by Matrices
We introduce notions of simulation between semiring-weighted automata as
models of quantitative systems. Our simulations are instances of the
categorical/coalgebraic notions previously studied by Hasuo---hence soundness
against language inclusion comes for free---but are concretely presented as
matrices that are subject to linear inequality constraints. Pervasiveness of
these formalisms allows us to exploit existing algorithms in: searching for a
simulation, and hence verifying quantitative correctness that is formulated as
language inclusion. Transformations of automata that aid search for simulations
are introduced, too. This verification workflow is implemented for the
plus-times and max-plus semirings. Furthermore, an extension to weighted tree
automata is presented and implemented.Comment: Extended version of [Urabe & Hasuo, CONCUR 2014
Algorithmic probabilistic game semantics Playing games with automata
Abstract We present a detailed account of a translation from probabilistic call-by-value in that programs exhibit the same computational behaviour if and only if the corresponding automata are language-equivalent. Since probabilistic language equivalence is decidable, we can apply the translation to analyse the behaviour of probabilistic programs and protocols. We illustrate our approach on a number of case studies