24-26 September 2014

University of Twente, Enschede

14th International Workshop on Automated Verification of Critical Systems

The workshop will have three invited speakers:

  • Laura Kovács (Chalmers, Sweden) will speak about Symbol Elimination for Automated Generation of Program Properties.

    Abstract: Automatic understanding of the intended meaning of computer programs is a very hard problem, requiring intelligence and reasoning. In this talk we describe applications of our symbol elimination methods in automated proram analysis. Symbol elimination uses first-order theorem proving techniques in conjunction with symbolic computation methods, and derives nontrivial program properties, such as loop invariants and loopbounds, in a fully automatic way. Moreover, symbol elimination can be used as analternative to interpolation for software verification.

  • Alastair Donaldson (Imperial College, U.K.) will speak about Static Verification for GPU Kernels.

    Abstract: Graphics processing units (GPUs) are nowadays commonly used to accelerate general purpose computations. Because GPUs are massively parallel they can be hard to program correctly, and suffer from concurrency-related defects including data races. In the GPUVerify project we have been interested in applying static verification techniques to GPU kernels (the pieces of code that execute on GPU devices) in order to automatically find or prove absence of data races. I will describe the method we have designed to obtain an analysis method for parallel GPU kernels that scales to large numbers of threads, and will demo the GPUVerify tool in action on a number of examples. I will then discuss open problems for research in the area of reliability of data-parallel software. For an introduction to GPUVerify check out this video.

    This is joint work with current and previous members of the Multicore Programming Group at Imperial College London, and with Shaz Qadeer at Microsoft Research.

  • Guy Broadfoot (Silverdata Ltd., U.K.) will speak about The highs and lows of deploying Formal Methods in Industry.

    Abstract: I attended my first software conference in 1968; it was organised by NATO with the title "The Software Crisis." Many of the papers presented then could have been written yesterday; the problems of the software industry in producing reliable, correct software in the face of increasing complexity and shrinking time to market pressures have not fundamentally changed that much.

    In the intervening years as a community we have developed various tactics for trying to minimise software errors. Advances in theorem proving and model checking are good examples of systematic efforts to improve software correctness. Nevertheless, it remains the case that such approaches are rarely if ever encountered in the industrial workplace, with the possible exception of some safety critical domains, such as the software controlling nuclear power plants.

    In spite advances in formal methods and supporting tools, the tools available to programmers for verifying assertions about program execution are complex and require knowledge and skills that most practicing programmers do not have. Formal proofs remain difficult to construct, especially for anything but the simplest of programs. Merely constructing assertions to characterise program correctness is a difficult challenge.

    In 1998, I conceived the idea of combing model checking, code generation and the specification approach of Sequence-based Specification together to form an integrated software design platform for developing software components whose design (implementation) would be formally verified for correctness with respect to its specification. Other general correctness properties such as freedom from deadlocks, non-determinism, incomplete cases, etc. would also be verified. Verification would be performed by automatically translating Sequence-based specifications into semantically equivalent CSP process algebra and then applying the model-checking engine FDR2. After verification was completed, semantically equivalent source code would be generated in one of several supported high-level languages.

    These ideas were developed further together with Philippa Hopcroft and in 2003 a company was founded to develop a commercial implementation of a development platform based on these ideas. In this talk, I will present an overview of the development platform and the technologies used. I will then discuss the experience gained during 10 years of trying to introduce this approach into industry and the lessons learned along the way.