[show abstract][hide abstract] ABSTRACT: In this paper we propose and argue for a modular framework for interprocedural program anal- ysis, where multiple program analysis tools are combined in order to exploit the particular advantages of each. This allows for "plugging together" such tools as required by each verification task and makes it easy to integrate new analyses. Our framework automates the sharing of information between plugins using a first order logic with transitive closure, in a way inspired by the open product of Cortesi et al.. We describe a prototype implementation of our framework, which performs static assertion checking on a simple language for heap-manipulating programs. This implementation includes plugins for three existing approaches — predicate abstraction, 3-valued shape analysis and a decidable pointer analysis — and for a simple type system. We demonstrate through a detailed example the increase in precision that our approach can provide. Finally we discuss the design decisions we have taken, in particular the tradeos involved in the choice of language by which the plugins communicate, and identify some future directions for our work.
Formal Aspects of Computing 01/2007; 19:375-399. · 0.50 Impact Factor
[show abstract][hide abstract] ABSTRACT: Bitwise instructions, loops and indirect data access pose difficult challenges to the verification of microcontroller programs.
In particular, it is necessary to show that an indirect write does not mutate registers, which are indirectly addressable.
To prove this property, among others, this paper presents a relational binary-code semantics and details how this can be used
to compute program invariants in terms of bit-level congruences. Moreover, it demonstrates how congruences can be combined
with intervals to derive accurate ranges, as well as information about strided indirect memory accesses.
Formal Methods for Industrial Critical Systems - 15th International Workshop, FMICS 2010, Antwerp, Belgium, September 20-21, 2010. Proceedings; 01/2010
[show abstract][hide abstract] ABSTRACT: This article presents the Two-Variable-Per-Inequality abstract domain (TVPI domain for short). This so-called weakly-relational
domain is able to express systems of linear inequalities where each inequality has at most two variables. The domain represents
a sweet-point in the performance-cost tradeoff between the faster Octagon domain and the more expressive domain of general
convex polyhedra. In particular, we detail techniques to closely approximate integral TVPI systems, thereby finessing the
problem of excessively growing coefficients, yielding—to our knowledge—the only relational domain that combines linear relations
with arbitrary coefficients and strongly polynomial performance.
Higher-Order and Symbolic Computation 01/2010; 23:87-143.
Data provided are for informational purposes only. Although carefully collected, accuracy cannot be guaranteed. The impact factor represents a rough estimation of the journal's impact factor and does not reflect the actual current impact factor. Publisher conditions are provided by RoMEO. Differing provisions from the publisher's actual policy or licence agreement may be applicable.