Catálogo de publicaciones - libros

Compartir en
redes sociales


Computer Aided Verification: 19th International Conference, CAV 2007, Berlin, Germany, July 3-7, 2007. Proceedings

Werner Damm ; Holger Hermanns (eds.)

En conferencia: 19º International Conference on Computer Aided Verification (CAV) . Berlin, Germany . July 3, 2007 - July 7, 2007

Resumen/Descripción – provisto por la editorial

No disponible.

Palabras clave – provistas por la editorial

Theory of Computation; Logics and Meanings of Programs; Software Engineering; Mathematical Logic and Formal Languages; Artificial Intelligence (incl. Robotics); Logic Design

Disponibilidad
Institución detectada Año de publicación Navegá Descargá Solicitá
No detectada 2007 SpringerLink

Información

Tipo de recurso:

libros

ISBN impreso

978-3-540-73367-6

ISBN electrónico

978-3-540-73368-3

Editor responsable

Springer Nature

País de edición

Reino Unido

Fecha de publicación

Información sobre derechos de publicación

© Springer-Verlag Berlin Heidelberg 2007

Tabla de contenidos

Structural Abstraction of Software Verification Conditions

Domagoj Babić; Alan J. Hu

Precise software analysis and verification require tracking the exact path along which a statement is executed (path-sensitivity), the different contexts from which a function is called (context-sensitivity), and the bit-accurate operations performed. Previously, verification with such precision has been considered too inefficient to scale to large software. In this paper, we present a novel approach to solving such verification conditions, based on an automatic abstraction-checking-refinement framework that exploits natural abstraction boundaries present in software. Experimental results show that our approach easily scales to over 200,000 lines of real C/C++ code.

- Session XII: Abstraction | Pp. 366-378

An Abstract Domain for Analyzing Heap-Manipulating Low-Level Software

Sumit Gulwani; Ashish Tiwari

We describe an abstract domain for representing useful invariants of heap-manipulating programs (in presence of recursive data structures and pointer arithmetic) written in languages like C or low-level code. This abstract domain allows representation of must and may equalities among pointer expressions. Pointer expressions contain existentially or universally quantified integer variables guarded by some base domain constraint. We allow quantification of a special form, namely quantification, to balance expressiveness with efficient automated deduction. The existential quantification is over some non-program variables, which are automatically made explicit by our analysis to express useful program invariants. The universal quantifier is used to express properties of collections of memory locations. Our abstract interpreter automatically computes invariants about programs over this abstract domain. We present initial experimental results demonstrating the effectiveness of this abstract domain on some common coding patterns.

- Session XII: Abstraction | Pp. 379-392

Adaptive Symmetry Reduction

Thomas Wahl

Symmetry reduction is a technique to counter state explosion for systems of regular structure. It relies on idealistic assumptions about components, which in practice may only be . In this paper we present a generalized algebraic approach to symmetry reduction for exploring a structure without any prior knowledge about its global symmetry. The more behavior is shared among the components, the more compression takes effect. Our idea is to annotate each encountered state with information about how symmetry is violated along the path leading to it. Previous solutions only allow specific types of asymmetry, such as up to bisimilarity, or seem to incur large overhead before or during the verification run. In contrast, our method appeals through its balance between generality and simplicity. We include analytic and experimental results to document its efficiency.

- Session XII: Abstraction | Pp. 393-405

From Liveness to Promptness

Orna Kupferman; Nir Piterman; Moshe Y. Vardi

Liveness temporal properties state that something “good” eventually happens, e.g., every request is eventually granted. In Linear Temporal Logic (LTL), there is no a priori bound on the “wait time” for an eventuality to be fulfilled. That is, asserts that holds eventually, but there is no bound on the time when will hold. This is troubling, as designers tend to interpret an eventuality as an abstraction of a bounded eventuality , for an unknown , and satisfaction of a liveness property is often not acceptable unless we can bound its wait time. We introduce here , an extension of LTL with the operator . A system satisfies a formula if there is some bound on the wait time for all prompt-eventually subformulas of in all computations of . We study various problems related to , including realizability, model checking, and assume-guarantee model checking, and show that they can be solved by techniques that are quite close to the standard techniques for LTL.

- Session XIII: Assume-Guarantee Reasoning | Pp. 406-419

Automated Assumption Generation for Compositional Verification

Anubhav Gupta; Kenneth L. McMillan; Zhaohui Fu

We describe a method for computing an exact minimal automaton to act as an intermediate assertion in assume-guarantee reasoning, using a sampling approach and a Boolean satisfiability solver. For a set of synthetic benchmarks intended to mimic common situations in hardware verification, this is shown to be significantly more effective than earlier approximate methods based on Angluin’s L* algorithm. For many of these benchmarks, this method also outperforms BDD-based model checking and interpolation-based model checking.

- Session XIII: Assume-Guarantee Reasoning | Pp. 420-432

Abstraction and Counterexample-Guided Construction of -Automata for Model Checking of Step-Discrete Linear Hybrid Models

Marc Segelken

For the verification of reactive hybrid systems existing approaches do not scale well w.r.t. large discrete state spaces, since their excellence mostly applies to data computations. However, especially control dominated models of industrial relevance in which computations on continuous data are comprised only of subsidiary parts of the behavior, these large discrete state spaces are not uncommon. By exploiting typical characteristics of such models, the herein presented approach addresses step-discrete linear hybrid models with large discrete state spaces by introducing an iterative abstraction refinement approach based on learning reasons of spurious counterexamples in an -automaton. Due to the resulting exclusion of comprehensive classes of spurious counterexamples, the algorithm exhibits relatively few iterations to prove or disprove safety properties. The implemented algorithm was successfully applied to parts of industrial models and shows promising results.

- Session XIV: Hybrid Systems | Pp. 433-448

Test Coverage for Continuous and Hybrid Systems

Tarik Nahhal; Thao Dang

We propose a novel test coverage measure for continuous and hybrid systems, which is defined using the star discrepancy notion. We also propose a test generation method guided by this coverage measure. This method was implemented in a prototype tool that can handle high dimensional systems (up to 100 dimensions).

- Session XIV: Hybrid Systems | Pp. 449-462

Hybrid Systems: From Verification to Falsification

Erion Plaku; Lydia E. Kavraki; Moshe Y. Vardi

We propose , Hybrid DIscrete Continuous Exploration, a multi-layered approach for hybrid-system testing that integrates continuous sampling-based robot motion planning with discrete searching. The discrete search uses the discrete transitions of the hybrid system and coarse-grained decompositions of the continuous state spaces or related projections to guide the motion planner during the search for witness trajectories. Experiments presented in this paper, using a hybrid system inspired by robot motion planning and with nonlinear dynamics associated with each of several thousand modes, provide an initial validation of and demonstrate its promise as a hybrid-system testing method. Comparisons to related work show computational speedups of up to two orders of magnitude.

- Session XIV: Hybrid Systems | Pp. 463-476

Comparison Under Abstraction for Verifying Linearizability

Daphna Amit; Noam Rinetzky; Thomas Reps; Mooly Sagiv; Eran Yahav

is one of the main correctness criteria for implementations of concurrent data structures. A data structure is if its operations appear to execute atomically. Verifying linearizability of concurrent unbounded linked data structures is a challenging problem because it requires correlating executions that manipulate (unbounded-size) memory states. We present a static analysis for verifying linearizability of concurrent unbounded linked data structures. The novel aspect of our approach is the ability to prove that two (unbounded-size) memory layouts of two programs are isomorphic in the presence of abstraction. A prototype implementation of the analysis verified the linearizability of several published concurrent data structures implemented by singly-linked lists.

- Session XV: Program Analysis | Pp. 477-490

Leaping Loops in the Presence of Abstraction

Thomas Ball; Orna Kupferman; Mooly Sagiv

Finite abstraction helps program analysis cope with the huge state space of programs. We wish to use abstraction in the process of error detection. Such a detection involves reachability analysis of the program. Reachability in an abstraction that under-approximates the program implies reachability in the concrete system. Under-approximation techniques, however, lose precision in the presence of loops, and cannot detect their termination. This causes reachability analysis that is done with respect to an abstraction to miss states of the program that are reachable via loops. Current solutions to this loop-termination challenge are based on fair termination and involve the use of well-founded sets and ranking functions.

In many cases, the concrete system has a huge, but still finite set of states. Our contribution is to show how, in such cases, it is possible to analyze termination of loops without refinement and without well-founded sets and ranking functions. Instead, our method is based on conditions on the structure of the graph that corresponds to the concrete system — conditions that can be checked with respect to the abstraction. We describe our method, demonstrate its usefulness and show how its application can be automated by means of a theorem prover.

- Session XV: Program Analysis | Pp. 491-503