140 research outputs found
On the decidability of the existence of polyhedral invariants in transition systems
Automated program verification often proceeds by exhibiting inductive
invariants entailing the desired properties.For numerical properties, a
classical class of invariants is convex polyhedra: solution sets of system of
linear (in)equalities.Forty years of research on convex polyhedral invariants
have focused, on the one hand, on identifying "easier" subclasses, on the other
hand on heuristics for finding general convex polyhedra.These heuristics are
however not guaranteed to find polyhedral inductive invariants when they
exist.To our best knowledge, the existence of polyhedral inductive invariants
has never been proved to be undecidable.In this article, we show that the
existence of convex polyhedral invariants is undecidable, even if there is only
one control state in addition to the "bad" one.The question is still open if
one is not allowed any nonlinear constraint
Combining Forward and Backward Abstract Interpretation of Horn Clauses
Alternation of forward and backward analyses is a standard technique in
abstract interpretation of programs, which is in particular useful when we wish
to prove unreachability of some undesired program states. The current
state-of-the-art technique for combining forward (bottom-up, in logic
programming terms) and backward (top-down) abstract interpretation of Horn
clauses is query-answer transformation. It transforms a system of Horn clauses,
such that standard forward analysis can propagate constraints both forward, and
backward from a goal. Query-answer transformation is effective, but has issues
that we wish to address. For that, we introduce a new backward collecting
semantics, which is suitable for alternating forward and backward abstract
interpretation of Horn clauses. We show how the alternation can be used to
prove unreachability of the goal and how every subsequent run of an analysis
yields a refined model of the system. Experimentally, we observe that combining
forward and backward analyses is important for analysing systems that encode
questions about reachability in C programs. In particular, the combination that
follows our new semantics improves the precision of our own abstract
interpreter, including when compared to a forward analysis of a
query-answer-transformed system.Comment: Francesco Ranzato. 24th International Static Analysis Symposium
(SAS), Aug 2017, New York City, United States. Springer, Static Analysi
Stratified Static Analysis Based on Variable Dependencies
In static analysis by abstract interpretation, one often uses widening
operators in order to enforce convergence within finite time to an inductive
invariant. Certain widening operators, including the classical one over finite
polyhedra, exhibit an unintuitive behavior: analyzing the program over a subset
of its variables may lead a more precise result than analyzing the original
program! In this article, we present simple workarounds for such behavior
Invariant Generation through Strategy Iteration in Succinctly Represented Control Flow Graphs
We consider the problem of computing numerical invariants of programs, for
instance bounds on the values of numerical program variables. More
specifically, we study the problem of performing static analysis by abstract
interpretation using template linear constraint domains. Such invariants can be
obtained by Kleene iterations that are, in order to guarantee termination,
accelerated by widening operators. In many cases, however, applying this form
of extrapolation leads to invariants that are weaker than the strongest
inductive invariant that can be expressed within the abstract domain in use.
Another well-known source of imprecision of traditional abstract interpretation
techniques stems from their use of join operators at merge nodes in the control
flow graph. The mentioned weaknesses may prevent these methods from proving
safety properties. The technique we develop in this article addresses both of
these issues: contrary to Kleene iterations accelerated by widening operators,
it is guaranteed to yield the strongest inductive invariant that can be
expressed within the template linear constraint domain in use. It also eschews
join operators by distinguishing all paths of loop-free code segments. Formally
speaking, our technique computes the least fixpoint within a given template
linear constraint domain of a transition relation that is succinctly expressed
as an existentially quantified linear real arithmetic formula. In contrast to
previously published techniques that rely on quantifier elimination, our
algorithm is proved to have optimal complexity: we prove that the decision
problem associated with our fixpoint problem is in the second level of the
polynomial-time hierarchy.Comment: 35 pages, conference version published at ESOP 2011, this version is
a CoRR version of our submission to Logical Methods in Computer Scienc
Fatal Degeneracy in the Semidefinite Programming Approach to the Decision of Polynomial Inequalities
In order to verify programs or hybrid systems, one often needs to prove that
certain formulas are unsatisfiable. In this paper, we consider conjunctions of
polynomial inequalities over the reals. Classical algorithms for deciding these
not only have high complexity, but also provide no simple proof of
unsatisfiability. Recently, a reduction of this problem to semidefinite
programming and numerical resolution has been proposed. In this article, we
show how this reduction generally produces degenerate problems on which
numerical methods stumble
A Survey of Satisfiability Modulo Theory
International audienceSatisfiability modulo theory (SMT) consists in testing the satisfiability of first-order formulas over linear integer or real arithmetic, or other theories. In this survey, we explain the combination of propositional satisfiability and decision procedures for conjunctions known as DPLL(T), and the alternative "natural domain" approaches. We also cover quantifiers, Craig interpolants, polynomial arithmetic, and how SMT solvers are used in automated software analysis
A minimalistic look at widening operators
We consider the problem of formalizing the familiar notion of widening in
abstract interpretation in higher-order logic. It turns out that many axioms of
widening (e.g. widening sequences are ascending) are not useful for proving
correctness. After keeping only useful axioms, we give an equivalent
characterization of widening as a lazily constructed well-founded tree. In type
systems supporting dependent products and sums, this tree can be made to
reflect the condition of correct termination of the widening sequence
- …