761 research outputs found
Experiments with a Convex Polyhedral Analysis Tool for Logic Programs
Convex polyhedral abstractions of logic programs have been found very useful
in deriving numeric relationships between program arguments in order to prove
program properties and in other areas such as termination and complexity
analysis. We present a tool for constructing polyhedral analyses of
(constraint) logic programs. The aim of the tool is to make available, with a
convenient interface, state-of-the-art techniques for polyhedral analysis such
as delayed widening, narrowing, "widening up-to", and enhanced automatic
selection of widening points. The tool is accessible on the web, permits user
programs to be uploaded and analysed, and is integrated with related program
transformations such as size abstractions and query-answer transformation. We
then report some experiments using the tool, showing how it can be conveniently
used to analyse transition systems arising from models of embedded systems, and
an emulator for a PIC microcontroller which is used for example in wearable
computing systems. We discuss issues including scalability, tradeoffs of
precision and computation time, and other program transformations that can
enhance the results of analysis.Comment: Paper presented at the 17th Workshop on Logic-based Methods in
Programming Environments (WLPE2007
Exact Join Detection for Convex Polyhedra and Other Numerical Abstractions
Deciding whether the union of two convex polyhedra is itself a convex
polyhedron is a basic problem in polyhedral computations; having important
applications in the field of constrained control and in the synthesis,
analysis, verification and optimization of hardware and software systems. In
such application fields though, general convex polyhedra are just one among
many, so-called, numerical abstractions, which range from restricted families
of (not necessarily closed) convex polyhedra to non-convex geometrical objects.
We thus tackle the problem from an abstract point of view: for a wide range of
numerical abstractions that can be modeled as bounded join-semilattices --that
is, partial orders where any finite set of elements has a least upper bound--,
we show necessary and sufficient conditions for the equivalence between the
lattice-theoretic join and the set-theoretic union. For the case of closed
convex polyhedra --which, as far as we know, is the only one already studied in
the literature-- we improve upon the state-of-the-art by providing a new
algorithm with a better worst-case complexity. The results and algorithms
presented for the other numerical abstractions are new to this paper. All the
algorithms have been implemented, experimentally validated, and made available
in the Parma Polyhedra Library.Comment: 36 pages, 4 figure
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
- …