25 research outputs found
Probabilistic Action System Trace Semantics
Action systems are a construct for reasoning about concurrent, reactive systems, in which concurrent behaviour is described by interleaving atomic actions. Sere and Troubitsyna have proposed an extension to action systems in which actions may be expressed and composed using discrete probabilistic choice as well as demonic nondeterministic choice. In this paper we develop a trace-based semantics for probabilistic action systems. This semantics provides a simple theoretical base on which practical refinement rules for probabilistic action systems may be justified
Probabilistic Demonic Refinement Algebra
We propose an abstract algebra for reasoning about probabilistic programs in a total-correctness framework. In contrast to probablisitic Kleene algebra it allows genuine reasoning about total correctness and in addition to Kleene star also has a strong iteration operator. We define operators that determine whether a program is enabled, has certain failure or does not have certain failure, respectively. The algebra is applied to the derivation of refinement rules for probabilistic action systems
Algebraic Reasoning for Probabilistic Action Systems and While-Loops
Back and von Wright have developed algebraic laws for reasoning about loops in the refinement calculus. We extend their work to reasoning about probabilistic loops in the probabilistic refinement calculus. We apply our algebraic reasoning to derive transformation rules for probabilistic action systems and probabilistic while-loops. In particular we focus on developing data refinement rules for these two constructs. Our extension is interesting since some well known transformation rules that are applicable to standard programs are not applicable to probabilistic ones: we identify some of these important differences and we develop alternative rules where possible. In particular, our probabilistic action system and while-loop data refinement rules are new: they differ from the non-probabilistic rules
A synchronous program algebra: a basis for reasoning about shared-memory and event-based concurrency
This research started with an algebra for reasoning about rely/guarantee
concurrency for a shared memory model. The approach taken led to a more
abstract algebra of atomic steps, in which atomic steps synchronise (rather
than interleave) when composed in parallel. The algebra of rely/guarantee
concurrency then becomes an instantiation of the more abstract algebra. Many of
the core properties needed for rely/guarantee reasoning can be shown to hold in
the abstract algebra where their proofs are simpler and hence allow a higher
degree of automation. The algebra has been encoded in Isabelle/HOL to provide a
basis for tool support for program verification.
In rely/guarantee concurrency, programs are specified to guarantee certain
behaviours until assumptions about the behaviour of their environment are
violated. When assumptions are violated, program behaviour is unconstrained
(aborting), and guarantees need no longer hold. To support these guarantees a
second synchronous operator, weak conjunction, was introduced: both processes
in a weak conjunction must agree to take each atomic step, unless one aborts in
which case the whole aborts. In developing the laws for parallel and weak
conjunction we found many properties were shared by the operators and that the
proofs of many laws were essentially the same. This insight led to the idea of
generalising synchronisation to an abstract operator with only the axioms that
are shared by the parallel and weak conjunction operator, so that those two
operators can be viewed as instantiations of the abstract synchronisation
operator. The main differences between parallel and weak conjunction are how
they combine individual atomic steps; that is left open in the axioms for the
abstract operator.Comment: Extended version of a Formal Methods 2016 paper, "An algebra of
synchronous atomic steps
Deriving Laws for Developing Concurrent Programs in a Rely-Guarantee Style
In this paper we present a theory for the refinement of shared-memory
concurrent algorithms from specifications. Our approach avoids restrictive
atomicity contraints. It provides a range of constructs for specifying
concurrent programs and laws for refining these to code. We augment pre and
post condition specifications with Jones' rely and guarantee conditions, which
we encode as commands within a wide-spectrum language. Program components are
specified using either partial and total correctness versions of end-to-end
specifications. Operations on shared data structures and atomic machine
operations (e.g. compare-and-swap) are specified using an atomic specification
command. All the above constructs are defined in terms of a simple core
language, based on four primitive commands and a handful of operators, and for
which we have developed an extensive algebraic theory in Isabelle/HOL. For
shared memory programs, expression evaluation is subject to fine-grained
interference and we have avoided atomicity restrictions other than for read and
write of primitive types (words). Expression evaluation and assignment commands
are also defined in terms of our core language primitives, allowing laws for
reasoning about them to be proven in the theory. Control structures such as
conditionals, recursion and loops are all defined in terms of the core
language. In developing the laws for refining to such structures from
specifications we have taken care to develop laws that are as general as
possible; our laws are typically more general than those found in the
literature. In developing our concurrent refinement theory we have taken care
to focus on the algebraic properties of our commands and operators, which has
allowed us to reuse algebraic theories, including well-known theories, such as
lattices and boolean algebra, as well as programming-specific algebras, such as
our synchronous algebra
Trace models of concurrent valuation algebras
This paper introduces Concurrent Valuation Algebras (CVAs), extending ordered
valuation algebras (OVAs) by incorporating two combine operators representing
parallel and sequential products that adhere to a weak exchange law. CVAs
present significant theoretical and practical advantages for specifying and
modelling concurrent and distributed systems. As a presheaf on a space of
domains, a CVA facilitates localised specifications, promoting modularity,
compositionality, and the capability to represent large and complex systems.
Moreover, CVAs facilitate lattice-based refinement reasoning, and are
compatible with standard methodologies such as Hoare and Rely-Guarantee logics.
We demonstrate the flexibility of CVAs through three trace models that
represent distinct paradigms of concurrent/distributed computing, and
interrelate them via morphisms. We also discuss the potential for importing a
powerful local computation framework from valuation algebras for the model
checking of concurrent and distributed systems.Comment: 25 page
Hidden-Markov Program Algebra with iteration
We use Hidden Markov Models to motivate a quantitative compositional
semantics for noninterference-based security with iteration, including a
refinement- or "implements" relation that compares two programs with respect to
their information leakage; and we propose a program algebra for source-level
reasoning about such programs, in particular as a means of establishing that an
"implementation" program leaks no more than its "specification" program.
This joins two themes: we extend our earlier work, having iteration but only
qualitative, by making it quantitative; and we extend our earlier quantitative
work by including iteration. We advocate stepwise refinement and
source-level program algebra, both as conceptual reasoning tools and as targets
for automated assistance. A selection of algebraic laws is given to support
this view in the case of quantitative noninterference; and it is demonstrated
on a simple iterated password-guessing attack
Refinement algebra for probabilistic programs
We identify a refinement algebra for reasoning about probabilistic program transformations in a total-correctness setting. The algebra is equipped with operators that determine whether a program is enabled or terminates respectively. As well as developing the basic theory of the algebra we demonstrate how it may be used to explain key differences and similarities between standard (i.e. non-probabilistic) and probabilistic programs and verify important transformation theorems for probabilistic action systems.29 page(s