5,184 research outputs found
Bounded LTL Model Checking with Stable Models
In this paper bounded model checking of asynchronous concurrent systems is
introduced as a promising application area for answer set programming. As the
model of asynchronous systems a generalisation of communicating automata,
1-safe Petri nets, are used. It is shown how a 1-safe Petri net and a
requirement on the behaviour of the net can be translated into a logic program
such that the bounded model checking problem for the net can be solved by
computing stable models of the corresponding program. The use of the stable
model semantics leads to compact encodings of bounded reachability and deadlock
detection tasks as well as the more general problem of bounded model checking
of linear temporal logic. Correctness proofs of the devised translations are
given, and some experimental results using the translation and the Smodels
system are presented.Comment: 32 pages, to appear in Theory and Practice of Logic Programmin
Bounded Model Checking for Probabilistic Programs
In this paper we investigate the applicability of standard model checking
approaches to verifying properties in probabilistic programming. As the
operational model for a standard probabilistic program is a potentially
infinite parametric Markov decision process, no direct adaption of existing
techniques is possible. Therefore, we propose an on-the-fly approach where the
operational model is successively created and verified via a step-wise
execution of the program. This approach enables to take key features of many
probabilistic programs into account: nondeterminism and conditioning. We
discuss the restrictions and demonstrate the scalability on several benchmarks
Reachability under Contextual Locking
The pairwise reachability problem for a multi-threaded program asks, given
control locations in two threads, whether they can be simultaneously reached in
an execution of the program. The problem is important for static analysis and
is used to detect statements that are concurrently enabled. This problem is in
general undecidable even when data is abstracted and when the threads (with
recursion) synchronize only using a finite set of locks. Popular programming
paradigms that limit the lock usage patterns have been identified under which
the pairwise reachability problem becomes decidable. In this paper, we consider
a new natural programming paradigm, called contextual locking, which ties the
lock usage to calling patterns in each thread: we assume that locks are
released in the same context that they were acquired and that every lock
acquired by a thread in a procedure call is released before the procedure
returns. Our main result is that the pairwise reachability problem is
polynomial-time decidable for this new programming paradigm as well. The
problem becomes undecidable if the locks are reentrant; reentrant locking is a
\emph{recursive locking} mechanism which allows a thread in a multi-threaded
program to acquire the reentrant lock multiple times.Comment: A preliminary version appears in TACAS 201
Petri nets for systems and synthetic biology
We give a description of a Petri net-based framework for
modelling and analysing biochemical pathways, which uni¯es the qualita-
tive, stochastic and continuous paradigms. Each perspective adds its con-
tribution to the understanding of the system, thus the three approaches
do not compete, but complement each other. We illustrate our approach
by applying it to an extended model of the three stage cascade, which
forms the core of the ERK signal transduction pathway. Consequently
our focus is on transient behaviour analysis. We demonstrate how quali-
tative descriptions are abstractions over stochastic or continuous descrip-
tions, and show that the stochastic and continuous models approximate
each other. Although our framework is based on Petri nets, it can be
applied more widely to other formalisms which are used to model and
analyse biochemical networks
Algorithmic Verification of Asynchronous Programs
Asynchronous programming is a ubiquitous systems programming idiom to manage
concurrent interactions with the environment. In this style, instead of waiting
for time-consuming operations to complete, the programmer makes a non-blocking
call to the operation and posts a callback task to a task buffer that is
executed later when the time-consuming operation completes. A co-operative
scheduler mediates the interaction by picking and executing callback tasks from
the task buffer to completion (and these callbacks can post further callbacks
to be executed later). Writing correct asynchronous programs is hard because
the use of callbacks, while efficient, obscures program control flow.
We provide a formal model underlying asynchronous programs and study
verification problems for this model. We show that the safety verification
problem for finite-data asynchronous programs is expspace-complete. We show
that liveness verification for finite-data asynchronous programs is decidable
and polynomial-time equivalent to Petri Net reachability. Decidability is not
obvious, since even if the data is finite-state, asynchronous programs
constitute infinite-state transition systems: both the program stack and the
task buffer of pending asynchronous calls can be potentially unbounded.
Our main technical construction is a polynomial-time semantics-preserving
reduction from asynchronous programs to Petri Nets and conversely. The
reduction allows the use of algorithmic techniques on Petri Nets to the
verification of asynchronous programs.
We also study several extensions to the basic models of asynchronous programs
that are inspired by additional capabilities provided by implementations of
asynchronous libraries, and classify the decidability and undecidability of
verification questions on these extensions.Comment: 46 pages, 9 figure
Parameterized Verification of Safety Properties in Ad Hoc Network Protocols
We summarize the main results proved in recent work on the parameterized
verification of safety properties for ad hoc network protocols. We consider a
model in which the communication topology of a network is represented as a
graph. Nodes represent states of individual processes. Adjacent nodes represent
single-hop neighbors. Processes are finite state automata that communicate via
selective broadcast messages. Reception of a broadcast is restricted to
single-hop neighbors. For this model we consider a decision problem that can be
expressed as the verification of the existence of an initial topology in which
the execution of the protocol can lead to a configuration with at least one
node in a certain state. The decision problem is parametric both on the size
and on the form of the communication topology of the initial configurations. We
draw a complete picture of the decidability and complexity boundaries of this
problem according to various assumptions on the possible topologies.Comment: In Proceedings PACO 2011, arXiv:1108.145
Interacting via the Heap in the Presence of Recursion
Almost all modern imperative programming languages include operations for
dynamically manipulating the heap, for example by allocating and deallocating
objects, and by updating reference fields. In the presence of recursive
procedures and local variables the interactions of a program with the heap can
become rather complex, as an unbounded number of objects can be allocated
either on the call stack using local variables, or, anonymously, on the heap
using reference fields. As such a static analysis is, in general, undecidable.
In this paper we study the verification of recursive programs with unbounded
allocation of objects, in a simple imperative language for heap manipulation.
We present an improved semantics for this language, using an abstraction that
is precise. For any program with a bounded visible heap, meaning that the
number of objects reachable from variables at any point of execution is
bounded, this abstraction is a finitary representation of its behaviour, even
though an unbounded number of objects can appear in the state. As a
consequence, for such programs model checking is decidable.
Finally we introduce a specification language for temporal properties of the
heap, and discuss model checking these properties against heap-manipulating
programs.Comment: In Proceedings ICE 2012, arXiv:1212.345
On the connections between PCTL and Dynamic Programming
Probabilistic Computation Tree Logic (PCTL) is a well-known modal logic which
has become a standard for expressing temporal properties of finite-state Markov
chains in the context of automated model checking. In this paper, we give a
definition of PCTL for noncountable-space Markov chains, and we show that there
is a substantial affinity between certain of its operators and problems of
Dynamic Programming. After proving some uniqueness properties of the solutions
to the latter, we conclude the paper with two examples to show that some
recovery strategies in practical applications, which are naturally stated as
reach-avoid problems, can be actually viewed as particular cases of PCTL
formulas.Comment: Submitte
MeGARA: Menu-based Game Abstraction and Abstraction Refinement of Markov Automata
Markov automata combine continuous time, probabilistic transitions, and
nondeterminism in a single model. They represent an important and powerful way
to model a wide range of complex real-life systems. However, such models tend
to be large and difficult to handle, making abstraction and abstraction
refinement necessary. In this paper we present an abstraction and abstraction
refinement technique for Markov automata, based on the game-based and
menu-based abstraction of probabilistic automata. First experiments show that a
significant reduction in size is possible using abstraction.Comment: In Proceedings QAPL 2014, arXiv:1406.156
- …