2,403 research outputs found
Reachability analysis via orthogonal sets of patterns
International audienceRule-based modelling languages, such as Kappa, allow for the description of very detailed mechanistic models. Yet, as the rules become more and more numerous, there is a need for formal methods to enhance the level of confidence in the models that are described with these languages.We develop abstract interpretation tools to capture invariants about the biochemical structure of the bio-molecular species that may occur in a given model. In previous works, we have focused on the relationships between the states of the sites that belong to the same instance of a protein. This comes down to detect for a specific set of patterns, which ones may be reachable during the execution of the model. In this paper, we generalise this approach to a broader family of abstract domains that we call orthogonal sets of patterns. More precisely, an orthogonal set of patterns is obtained by refining recursively the information about some patterns containing a given protein, so as to partition the set of occurrences of this protein in any mixture. We show that orthogonal sets of patterns offer a convenient choice to design scalable and accurate static analyses. As an example, we use them to infer properties in models with transport of molecules (more precisely, we show that each pair of proteins that are connected, always belong to the same compartment), and models involving double bindings (we show that whenever a protein of type A is bound twice to proteins of type B, then the protein A is necessarily bound twice to the same instance of the protein B)
Reach Set Approximation through Decomposition with Low-dimensional Sets and High-dimensional Matrices
Approximating the set of reachable states of a dynamical system is an
algorithmic yet mathematically rigorous way to reason about its safety.
Although progress has been made in the development of efficient algorithms for
affine dynamical systems, available algorithms still lack scalability to ensure
their wide adoption in the industrial setting. While modern linear algebra
packages are efficient for matrices with tens of thousands of dimensions,
set-based image computations are limited to a few hundred. We propose to
decompose reach set computations such that set operations are performed in low
dimensions, while matrix operations like exponentiation are carried out in the
full dimension. Our method is applicable both in dense- and discrete-time
settings. For a set of standard benchmarks, it shows a speed-up of up to two
orders of magnitude compared to the respective state-of-the art tools, with
only modest losses in accuracy. For the dense-time case, we show an experiment
with more than 10.000 variables, roughly two orders of magnitude higher than
possible with previous approaches
On Verifying Complex Properties using Symbolic Shape Analysis
One of the main challenges in the verification of software systems is the
analysis of unbounded data structures with dynamic memory allocation, such as
linked data structures and arrays. We describe Bohne, a new analysis for
verifying data structures. Bohne verifies data structure operations and shows
that 1) the operations preserve data structure invariants and 2) the operations
satisfy their specifications expressed in terms of changes to the set of
objects stored in the data structure. During the analysis, Bohne infers loop
invariants in the form of disjunctions of universally quantified Boolean
combinations of formulas. To synthesize loop invariants of this form, Bohne
uses a combination of decision procedures for Monadic Second-Order Logic over
trees, SMT-LIB decision procedures (currently CVC Lite), and an automated
reasoner within the Isabelle interactive theorem prover. This architecture
shows that synthesized loop invariants can serve as a useful communication
mechanism between different decision procedures. Using Bohne, we have verified
operations on data structures such as linked lists with iterators and back
pointers, trees with and without parent pointers, two-level skip lists, array
data structures, and sorted lists. We have deployed Bohne in the Hob and Jahob
data structure analysis systems, enabling us to combine Bohne with analyses of
data structure clients and apply it in the context of larger programs. This
report describes the Bohne algorithm as well as techniques that Bohne uses to
reduce the ammount of annotations and the running time of the analysis
Small Superpatterns for Dominance Drawing
We exploit the connection between dominance drawings of directed acyclic
graphs and permutations, in both directions, to provide improved bounds on the
size of universal point sets for certain types of dominance drawing and on
superpatterns for certain natural classes of permutations. In particular we
show that there exist universal point sets for dominance drawings of the Hasse
diagrams of width-two partial orders of size O(n^{3/2}), universal point sets
for dominance drawings of st-outerplanar graphs of size O(n\log n), and
universal point sets for dominance drawings of directed trees of size O(n^2).
We show that 321-avoiding permutations have superpatterns of size O(n^{3/2}),
riffle permutations (321-, 2143-, and 2413-avoiding permutations) have
superpatterns of size O(n), and the concatenations of sequences of riffles and
their inverses have superpatterns of size O(n\log n). Our analysis includes a
calculation of the leading constants in these bounds.Comment: ANALCO 2014, This version fixes an error in the leading constant of
the 321-superpattern siz
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
- …