33,715 research outputs found
Optimizing compilation with preservation of structural code coverage metrics to support software testing
Code-coverage-based testing is a widely-used testing strategy with the aim of providing a meaningful decision criterion for the adequacy of a test suite. Code-coverage-based testing is also mandated for the development of safety-critical applications; for example, the DO178b document requires the application of the modified condition/decision coverage. One critical issue of code-coverage testing is that structural code coverage criteria are typically applied to source code whereas the generated machine code may result in a different code structure because of code optimizations performed by a compiler. In this work, we present the automatic calculation of coverage profiles describing which structural code-coverage criteria are preserved by which code optimization, independently of the concrete test suite. These coverage profiles allow to easily extend compilers with the feature of preserving any given code-coverage criteria by enabling only those code optimizations that preserve it. Furthermore, we describe the integration of these coverage profile into the compiler GCC. With these coverage profiles, we answer the question of how much code optimization is possible without compromising the error-detection likelihood of a given test suite. Experimental results conclude that the performance cost to achieve preservation of structural code coverage in GCC is rather low.Peer reviewedSubmitted Versio
The Structure of Differential Invariants and Differential Cut Elimination
The biggest challenge in hybrid systems verification is the handling of
differential equations. Because computable closed-form solutions only exist for
very simple differential equations, proof certificates have been proposed for
more scalable verification. Search procedures for these proof certificates are
still rather ad-hoc, though, because the problem structure is only understood
poorly. We investigate differential invariants, which define an induction
principle for differential equations and which can be checked for invariance
along a differential equation just by using their differential structure,
without having to solve them. We study the structural properties of
differential invariants. To analyze trade-offs for proof search complexity, we
identify more than a dozen relations between several classes of differential
invariants and compare their deductive power. As our main results, we analyze
the deductive power of differential cuts and the deductive power of
differential invariants with auxiliary differential variables. We refute the
differential cut elimination hypothesis and show that, unlike standard cuts,
differential cuts are fundamental proof principles that strictly increase the
deductive power. We also prove that the deductive power increases further when
adding auxiliary differential variables to the dynamics
Gr\"obner Bases and Generation of Difference Schemes for Partial Differential Equations
In this paper we present an algorithmic approach to the generation of fully
conservative difference schemes for linear partial differential equations. The
approach is based on enlargement of the equations in their integral
conservation law form by extra integral relations between unknown functions and
their derivatives, and on discretization of the obtained system. The structure
of the discrete system depends on numerical approximation methods for the
integrals occurring in the enlarged system. As a result of the discretization,
a system of linear polynomial difference equations is derived for the unknown
functions and their partial derivatives. A difference scheme is constructed by
elimination of all the partial derivatives. The elimination can be achieved by
selecting a proper elimination ranking and by computing a Gr\"obner basis of
the linear difference ideal generated by the polynomials in the discrete
system. For these purposes we use the difference form of Janet-like Gr\"obner
bases and their implementation in Maple. As illustration of the described
methods and algorithms, we construct a number of difference schemes for Burgers
and Falkowich-Karman equations and discuss their numerical properties.Comment: Published in SIGMA (Symmetry, Integrability and Geometry: Methods and
Applications) at http://www.emis.de/journals/SIGMA
Improving DISPGB Algorithm Using the Discriminant Ideal
In 1992, V. Weispfenning proved the existence of Comprehensive Groebner Bases
(CGB) and gave an algorithm to compute one. That algorithm was not very
efficient and not canonical. Using his suggestions, A. Montes obtained in 2002
a more efficient algorithm (DISPGB) for Discussing Parametric Groebner Bases.
Inspired in its philosophy, V. Weispfenning defined, in 2002, how to obtain a
Canonical Comprehensive Groebner Basis (CCGB) for parametric polynomial ideals,
and provided a constructive method.
In this paper we use Weispfenning's CCGB ideas to make substantial
improvements on Montes DISPGB algorithm. It now includes rewriting of the
discussion tree using the Discriminant Ideal and provides a compact and
effective discussion. We also describe the new algorithms in the DPGB library
containing the improved DISPGB as well as new routines to check whether a given
basis is a CGB or not, and to obtain a CGB. Examples and tests are also
provided.Comment: 21 pages, see also http://www-ma2.upc.edu/~montes
Generic Encodings of Constructor Rewriting Systems
Rewriting is a formalism widely used in computer science and mathematical
logic. The classical formalism has been extended, in the context of functional
languages, with an order over the rules and, in the context of rewrite based
languages, with the negation over patterns. We propose in this paper a concise
and clear algorithm computing the difference over patterns which can be used to
define generic encodings of constructor term rewriting systems with negation
and order into classical term rewriting systems. As a direct consequence,
established methods used for term rewriting systems can be applied to analyze
properties of the extended systems. The approach can also be seen as a generic
compiler which targets any language providing basic pattern matching
primitives. The formalism provides also a new method for deciding if a set of
patterns subsumes a given pattern and thus, for checking the presence of
useless patterns or the completeness of a set of patterns.Comment: Added appendix with proofs and extended example
- …