Catálogo de publicaciones - libros

Compartir en
redes sociales


Tools and Algorithms for the Construction and Analysis of Systems: 12th International Conference, TACAS 2006, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2006, Vienna, Austria, March 25: Apr

Holger Hermanns ; Jens Palsberg (eds.)

En conferencia: 12º International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS) . Vienna, Austria . March 25, 2006 - April 2, 2006

Resumen/Descripción – provisto por la editorial

No disponible.

Palabras clave – provistas por la editorial

Software Engineering/Programming and Operating Systems; Logics and Meanings of Programs; Software Engineering; Computer Communication Networks; Algorithm Analysis and Problem Complexity

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

Información

Tipo de recurso:

libros

ISBN impreso

978-3-540-33056-1

ISBN electrónico

978-3-540-33057-8

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 2006

Tabla de contenidos

A Region Graph Based Approach to Termination Proofs

Stefan Leue; Wei Wei

Automated termination proofs are indispensable in the mechanic verification of many program properties. While most of the recent work on automated termination proofs focuses on the construction of linear ranking functions, we develop an approach based on region graphs in which regions define subsets of variable values that have different effects on loop termination. In order to establish termination, we check whether (1) any region will be exited once it is entered, and (2) no region is entered an infinite number of times. We show the effectiveness of our proof method by experiments with Java code using a prototype implementation of our approach.

- Program Verification | Pp. 318-333

Verifying Concurrent Message-Passing C Programs with Recursive Calls

S. Chaki; E. Clarke; N. Kidd; T. Reps; T. Touili

We consider the model-checking problem for C programs with (1) data ranging over very large domains, (2) (recursive) procedure calls, and (3) concurrent parallel components that communicate via synchronizing actions. We model such programs using , and reduce the reachability problem for this model to deciding the emptiness of the intersection of two context-free languages and . We tackle this undecidable problem using a CounterExample Guided Abstraction Refinement (CEGAR) scheme. We implemented our technique in the model checker MAGIC and found a previously unknown bug in a version of a Windows NT Bluetooth driver.

- Program Verification | Pp. 334-349

Automata-Based Verification of Programs with Tree Updates

Peter Habermehl; Radu Iosif; Tomas Vojnar

This paper describes an effective verification procedure for imperative programs that handle (balanced) tree-like data structures. Since the verification problem considered is undecidable, we appeal to a classical semi-algorithmic approach in which the user has to provide manually the loop invariants in order to check the validity of Hoare triples of the form {}{}, where , are the sets of states corresponding to the pre- and post-conditions, and is the program to be verified. We specify the sets of states (representing tree-like memory configurations) using a special class of tree automata named Tree Automata with Size Constraints (TASC). The main advantage of using TASC in program specifications is that they recognize non-regular sets of tree languages such as the , the , and in general, specifications involving arithmetic reasoning about the lengths (depths) of various (possibly all) paths in the tree. The class of TASC is closed under the operations of union, intersection and complement, and moreover, the emptiness problem is decidable, which makes it a practical verification tool. We validate our approach considering red-black trees and the insertion procedure, for which we verify that the output of the insertion algorithm is a red-black tree, i.e. the longest path is at most twice as long as the shortest path.

- Program Verification | Pp. 350-364

An Experimental Comparison of the Effectiveness of Control Flow Based Testing Approaches on Seeded Faults

Atul Gupta; Pankaj Jalote

In this paper, we describe the results of an experiment comparing the effectiveness of three structural coverage-testing methods, namely, block coverage, branch coverage and predicate coverage criteria on seeded faults. The implications of our work is two-fold: one, we describe a controlled simulation comparing the effectiveness of these criteria and two, we demonstrate a novel approach to generate minimal test suites for these coverage criteria so as to be able to predict relative performance of the three coverage-adequate test suites. Using a byte code coverage analyzer, five java programs of different sizes were tested. Faults were seeded in all five programs using a set of applicable mutation operators. Twenty-five different minimal JUnit test suites were then constructed for each coverage criteria-program pair and executed on program’s mutants to compare the effectiveness. Results suggest that generally, branch coverage criterion performed consistently and was found to be most viable option for structural testing. However, in presence of composite conditions, predicate testing does better and its effectiveness increases with increase in the cardinality of the composite conditions.

- Runtime Diagnostics | Pp. 365-378

Exploiting Traces in Program Analysis

Alex Groce; Rajeev Joshi

From operating systems and web browsers to spacecraft, many software systems maintain a log of events that provides a partial history of execution, supporting post-mortem (or post-reboot) analysis. Unfortunately, bandwidth, storage limitations, and privacy concerns limit the information content of logs, making it difficult to fully reconstruct execution from these traces. This paper presents a technique for modifying a program such that it can produce exactly those executions consistent with a given (partial) trace of events, enabling efficient analysis of the reduced program. Our method requires no additional history variables to track log events, and it can slice away code that does not execute in a given trace. We describe initial experiences with implementing our ideas by extending the CBMC bounded model checker for C programs. Applying our technique to a small, 400-line file system written in C, we get more than three orders of magnitude improvement in running time over a naïve approach based on adding history variables, along with fifty- to eighty-fold reductions in the sizes of the SAT problems solved.

- Runtime Diagnostics | Pp. 379-393

Model-Checking Markov Chains in the Presence of Uncertainties

Koushik Sen; Mahesh Viswanathan; Gul Agha

We investigate the problem of model checking Interval-valued Discrete-time Markov Chains (IDTMC). IDTMCs are discrete-time finite Markov Chains for which the exact transition probabilities are not known. Instead in IDTMCs, each transition is associated with an interval in which the actual transition probability must lie. We consider two semantic interpretations for the uncertainty in the transition probabilities of an IDTMC. In the first interpretation, we think of an IDTMC as representing a (possibly uncountable) family of (classical) discrete-time Markov Chains, where each member of the family is a Markov Chain whose transition probabilities lie within the interval range given in the IDTMC. This semantic interpretation we call Uncertain Markov Chains (UMC). In the second semantics for an IDTMC, which we call Interval Markov Decision Process (IMDP), we view the uncertainty as being resolved through non-determinism. In other words, each time a state is visited, we adversarially pick a transition distribution that respects the interval constraints, and take a probabilistic step according to the chosen distribution. We show that the PCTL model checking problem for both Uncertain Markov Chain semantics and Interval Markov Decision Process semantics is decidable in PSPACE. We also prove lower bounds for these model checking problems.

- Quantitative Techniques | Pp. 394-410

Safety Metric Temporal Logic Is Fully Decidable

Joël Ouaknine; James Worrell

Metric Temporal Logic (MTL) is a widely-studied real-time extension of Linear Temporal Logic. In this paper we consider a fragment of MTL, called Safety MTL, capable of expressing properties such as invariance and time-bounded response. Our main result is that the satisfiability problem for Safety MTL is decidable. This is the first positive decidability result for MTL over timed -words that does not involve restricting the precision of the timing constraints, or the granularity of the semantics; the proof heavily uses the techniques of infinite-state verification. Combining this result with some of our previous work, we conclude that Safety MTL is in that its satisfiability, model checking, and refinement problems are all decidable.

- Quantitative Techniques | Pp. 411-425

Simulation-Based Graph Similarity

Oleg Sokolsky; Sampath Kannan; Insup Lee

We present symmetric and asymmetric similarity measures for labeled directed rooted graphs that are inspired by the simulation and bisimulation relations on labeled transition systems. Computation of the similarity measures has close connections to discounted Markov decision processes in the asymmetric case and to perfect-information stochastic games in the symmetric case. For the symmetric case, we also give a polynomial-time algorithm that approximates the similarity to any desired precision.

- Quantitative Techniques | Pp. 426-440

PRISM: A Tool for Automatic Verification of Probabilistic Systems

Andrew Hinton; Marta Kwiatkowska; Gethin Norman; David Parker

Probabilistic model checking is an automatic formal verification technique for analysing quantitative properties of systems which exhibit stochastic behaviour. PRISM is a probabilistic model checking tool which has already been successfully deployed in a wide range of application domains, from real-time communication protocols to biological signalling pathways. The tool has recently undergone a significant amount of development. Major additions include facilities to manually explore models, Monte-Carlo discrete-event simulation techniques for approximate model analysis (including support for distributed simulation) and the ability to compute cost- and reward-based measures, e.g. “the expected energy consumption of the system before the first failure occurs”. This paper presents an overview of all the main features of PRISM. More information can be found on the website: .

- Tool Demonstrations | Pp. 441-444

DISTRIBUTOR and BCG_MERGE: Tools for Distributed Explicit State Space Generation

Hubert Garavel; Radu Mateescu; Damien Bergamini; Adrian Curic; Nicolas Descoubes; Christophe Joubert; Irina Smarandache-Sturm; Gilles Stragier

The explicit-state verification of complex concurrent systems, whose underlying state spaces may be prohibitively large, requires an important amount of memory and computation time. Although explicit state space generation is known to be exponential as the number of concurrent processes in the system increases, it is tempting to push forward the capabilities of verification tools by exploiting the computing resources (memory and processors) of massively parallel machines, such as clusters and grids.

- Tool Demonstrations | Pp. 445-449