430 research outputs found
Termination Analysis by Learning Terminating Programs
We present a novel approach to termination analysis. In a first step, the
analysis uses a program as a black-box which exhibits only a finite set of
sample traces. Each sample trace is infinite but can be represented by a finite
lasso. The analysis can "learn" a program from a termination proof for the
lasso, a program that is terminating by construction. In a second step, the
analysis checks that the set of sample traces is representative in a sense that
we can make formal. An experimental evaluation indicates that the approach is a
potentially useful addition to the portfolio of existing approaches to
termination analysis
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
Model checking infinite-state systems in CLP
The verification of safety and liveness properties for infinite-state systems is an important research problem. Can the well-established concepts and the existing technology for programming over constraints as first-class data structures contribute to this research? The work reported in this paper is a starting point for the experimental evaluation of constraint logic programming as a conceptual basis and practical implementation platform for model checking. We have implemented an automated verification method in CLP using real and boolean constraints. We have used the method on a number of infinite-state systems that model concurrent programs using integers or buffers. The basis of the correctness of our implementation is a formal connection between CLP programs and the formalism used for specifying concurrent systems
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
A method and a tool for automatic veriication of region stability for hybrid systems
We propose a model checking method and tool that integrates state abstraction techniques for the automatic proof of a stability property for hybrid systems called \emph{region stability}. It is based on a new notion of \emph{snapshots} which yield characteristic discretizations of trajectories. We have implemented the tool and applied it to solve a number of verification problems, including the fully automatic stability proof for the break curve behavior of a train system
Proving Termination Starting from the End
We present a novel technique for proving program termination which introduces
a new dimension of modularity. Existing techniques use the program to
incrementally construct a termination proof. While the proof keeps changing,
the program remains the same. Our technique goes a step further. We show how to
use the current partial proof to partition the transition relation into those
behaviors known to be terminating from the current proof, and those whose
status (terminating or not) is not known yet. This partition enables a new and
unexplored dimension of incremental reasoning on the program side. In addition,
we show that our approach naturally applies to conditional termination which
searches for a precondition ensuring termination. We further report on a
prototype implementation that advances the state-of-the-art on the grounds of
termination and conditional termination.Comment: 16 page
Equational and membership constraints for infinite trees
We present a new constraint system with equational and membership constraints over infinite trees. It provides for complete and correct satisfiability and entailment tests and ir therefore suitable for the use in concurrent constraint programming systems which are based on cyclic data structures. Our set defining devices are greatest fixpoint solutions of regular systems of equations with a deterministic form of union. As the main technical particularity of the algorithms we present a novel memorization technique. We believe that both satisfiability and entailment tests can be implemented in an efficient and incremental manner
Efficient Algorithms for Asymptotic Bounds on Termination Time in VASS
Vector Addition Systems with States (VASS) provide a well-known and
fundamental model for the analysis of concurrent processes, parameterized
systems, and are also used as abstract models of programs in resource bound
analysis. In this paper we study the problem of obtaining asymptotic bounds on
the termination time of a given VASS. In particular, we focus on the
practically important case of obtaining polynomial bounds on termination time.
Our main contributions are as follows: First, we present a polynomial-time
algorithm for deciding whether a given VASS has a linear asymptotic complexity.
We also show that if the complexity of a VASS is not linear, it is at least
quadratic. Second, we classify VASS according to quantitative properties of
their cycles. We show that certain singularities in these properties are the
key reason for non-polynomial asymptotic complexity of VASS. In absence of
singularities, we show that the asymptotic complexity is always polynomial and
of the form , for some integer , where is the
dimension of the VASS. We present a polynomial-time algorithm computing the
optimal . For general VASS, the same algorithm, which is based on a complete
technique for the construction of ranking functions in VASS, produces a valid
lower bound, i.e., a such that the termination complexity is .
Our results are based on new insights into the geometry of VASS dynamics, which
hold the potential for further applicability to VASS analysis.Comment: arXiv admin note: text overlap with arXiv:1708.0925
- …