Catálogo de publicaciones - libros
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
2007
Información sobre derechos de publicación
© Springer-Verlag Berlin Heidelberg 2007
Tabla de contenidos
The Why/Krakatoa/Caduceus Platform for Deductive Program Verification
Jean-Christophe Filliâtre; Claude Marché
We present the Why/Krakatoa/Caduceus set of tools for deductive verification of Java and C source code.
- Session V: Tool Environment | Pp. 173-177
Shape Analysis for Composite Data Structures
Josh Berdine; Cristiano Calcagno; Byron Cook; Dino Distefano; Peter W. O’Hearn; Thomas Wies; Hongseok Yang
We propose a shape analysis that adapts to some of the complex composite data structures found in industrial systems-level programs. Examples of such data structures include “cyclic doubly-linked lists of acyclic singly-linked lists”, “singly-linked lists of cyclic doubly-linked lists with back-pointers to head nodes”, etc. The analysis introduces the use of generic higher-order inductive predicates describing spatial relationships together with a method of synthesizing new parameterized spatial predicates which can be used in combination with the higher-order predicates. In order to evaluate the proposed approach for realistic programs we have performed experiments on examples drawn from device drivers: the analysis proved safety of the data structure manipulation of several routines belonging to an IEEE 1394 (firewire) driver, and also found several previously unknown memory safety bugs.
- Session VI: Shapes | Pp. 178-192
Array Abstractions from Proofs
Ranjit Jhala; Kenneth L. McMillan
We present a technique for using infeasible program paths to automatically infer that describe properties of unbounded array segments. First, we build proofs showing the infeasibility of the paths, using axioms that precisely encode the high-level (but informal) rules with which programmers reason about arrays. Next, we mine the proofs for Craig Interpolants which correspond to predicates that refute the particular counterexample path. By embedding the predicate inference technique within a Counterexample-Guided Abstraction-Refinement (CEGAR) loop, we obtain a method for verifying data-sensitive safety properties whose precision is tailored in a program- and property-sensitive manner. Though the axioms used are simple, we show that the method suffices to prove a variety of array-manipulating programs that were previously beyond automatic model checkers.
- Session VI: Shapes | Pp. 193-206
Context-Bounded Analysis of Multithreaded Programs with Dynamic Linked Structures
Ahmed Bouajjani; Séverine Fratani; Shaz Qadeer
Bounded context switch reachability analysis is a useful and efficient approach for detecting bugs in multithreaded programs. In this paper, we address the application of this approach to the analysis of multithreaded programs with procedure calls and dynamic linked structures. We define a program semantics based on concurrent pushdown systems with as stack symbols. A visible heap is the part of the heap reachable from global and local variables. We use pushdown analysis techniques to define an algorithm that explores the entire configuration space reachable under given bounds on the number of context switches and the size of visible heaps.
- Session VI: Shapes | Pp. 207-220
Revamping TVLA: Making Parametric Shape Analysis Competitive
Igor Bogudlov; Tal Lev-Ami; Thomas Reps; Mooly Sagiv
TVLA is a parametric framework for shape analysis that can be easily instantiated to create different kinds of analyzers for checking properties of programs that use linked data structures. We report on dramatic improvements in TVLA’s performance, which make the cost of parametric shape analysis comparable to that of the most efficient specialized shape-analysis tools (which restrict the class of data structures and programs analyzed) without sacrificing TVLA’s parametricity. The improvements were obtained by employing well-known techniques from the database community to reduce the cost of extracting information from shape descriptors and performing abstract interpretation of program statements and conditions. Compared to the prior version of TVLA, we obtained as much as 50-fold speedup.
- Session VI: Shapes | Pp. 221-225
Fast and Accurate Static Data-Race Detection for Concurrent Programs
Vineet Kahlon; Yu Yang; Sriram Sankaranarayanan; Aarti Gupta
We present new techniques for fast, accurate and scalable static data race detection in concurrent programs. Focusing our analysis on Linux device drivers allowed us to identify the unique challenges posed by debugging large-scale real-life code and also pinpointed drawbacks in existing race warning generation methods. This motivated the development of new techniques that helped us in improving both the scalability as well as the accuracy of each of the three main steps in a race warning generation system. The first and most crucial step is the automatic discovery of shared variables. Towards that end, we present a new, efficient dataflow algorithm for shared variable detection which is more effective than existing correlation-based techniques that failed to detect the shared variables responsible for data races in majority of the drivers in our benchmark suite. Secondly, accuracy of race warning generation strongly hinges on the precision of the pointer analysis used to compute aliases for lock pointers. We formulate a new scalable context sensitive alias analysis that effectively combines a divide and conquer strategy with function summarization and is demonstrably more efficient than existing BDD-based techniques. Finally, we provide a new warning reduction technique that leverages lock acquisition patterns to yield provably better warning reduction than existing lockset based methods.
- Session VII: Concurrent Program Verification | Pp. 226-239
Parametric and Sliced Causality
Feng Chen; Grigore Roşu
Happen-before causal partial orders have been widely used in concurrent program verification and testing. This paper presents a parametric approach to happen-before causal partial orders. Existing variants of happen-before relations can be obtained as instances of the parametric framework. A novel causal partial order, called , is then defined also as an instance of the parametric framework, which loosens the obvious but strict happen-before relation by considering static and dynamic dependence information about the program. Sliced causality has been implemented in a runtime predictive analysis tool for , named , and the evaluation results show that sliced causality can significantly improve the capability of concurrent verification and testing.
- Session VII: Concurrent Program Verification | Pp. 240-253
: Verification of Multithreaded Dynamic and Recursive Programs
Gaël Patin; Mihaela Sighireanu; Tayssir Touili
Recently, there are a lot of tools that have been considered for software verification.We can for example mention BLAST [HJMS02], SLAM [BR01], KISS [QW04,QR05], ZING [QRR04], and MAGIC [CCG03,CCG04,CCK06]. However, none of these tools can deal with parallelism, communication between parallel processes, dynamic process creation, and recursion at the same time. The tool we propose, called SPADE, allows to analyse automatically boolean programs presenting all these features. As far as we know, this is the first software model checking tool based on an expressive model that accurately models all these aspects in programs.
- Session VII: Concurrent Program Verification | Pp. 254-257
Anzu: A Tool for Property Synthesis
Barbara Jobstmann; Stefan Galler; Martin Weiglhofer; Roderick Bloem
We present the tool . takes a formal specification of a design and generates a functionally correct system if one exists. The specification is given as a set of linear temporal logic (LTL) formulas belonging to the class of of rank 1. Such formulas cover the majority of the formulas used in practice. is an implementation of the symbolic reactive(1) approach to synthesis by Piterman, Pnueli, and Sa’ar. If the specification is provides the user with a Verilog module that represents a correct finite-state system.
- Session VIII: Reactive Designs | Pp. 258-262
RAT: A Tool for the Formal Analysis of Requirements
Roderick Bloem; Roberto Cavada; Ingo Pill; Marco Roveri; Andrei Tchaltsev
Formal languages are increasingly used to describe the functional requirements of circuits. Although formal requirements can be hard to understand and subtle, they are seldom the object of verification. In this paper we present our requirement analysis tool, RAT. Our tool supports quality assurance of formal specifications. A designer can interactively explore the requirements’ semantics and automatically check the specification against (which must be satisfied) and (which describe allowed corner-case behavior). Using RAT, a designer can also investigate the realizability of a specification. RAT was successfully examined in several industrial projects.
- Session VIII: Reactive Designs | Pp. 263-267