Location of Repository

Compositional software verification based on game semantics

By Aleksandar Dimovski

Abstract

One of the major challenges in computer science is to put programming on a firmer mathematical basis, in order to improve the correctness of computer programs. Automatic program verification is acknowledged to be a very hard problem, but current work is reaching the point where at least the foundational�· aspects of the problem can be addressed and it is becoming a part of industrial software development. This thesis presents a semantic framework for verifying safety properties of open sequ;ptial programs. The presentation is focused on an Algol-like programming language that embodies many of the core ingredients of imperative and functional languages and incorporates data abstraction in its syntax. Game semantics is used to obtain a compositional, incremental way of generating accurate models of programs. Model-checking is made possible by giving certain kinds of concrete automata-theoretic representations of the model. A data-abstraction refinement procedure is developed for model-checking safety properties of programs with infinite integer types. The procedure starts by model-checking the most abstract version of the program. If no counterexample, or a genuine one, is found, the procedure terminates. Otherwise, it uses a spurious counterexample to refine the abstraction for the next iteration. Abstraction refinement, assume-guarantee reasoning and the L* algorithm for learning regular languages are combined to yield a procedure for compositional verification. Construction of a global model is avoided using assume-guarantee reasoning and the L* algorithm, by learning assumptions for arbitrary subprograms. An implementation based on the FDR model checker for the CSP process algebra demonstrates practicality of the methods

Topics: QA76
OAI identifier: oai:wrap.warwick.ac.uk:2398

Suggested articles

Preview

Citations

  1. (1972). Continuous lattices. doi
  2. (1984). Program slicing. doi
  3. (1993). The Formal Semantics of Programming Languages. doi
  4. (1997). The rely-guarantee method for verifying shared variable concurrent programs. doi
  5. (1944). The Theory of Games and Economic Behaviour. (John Weily and Sons,
  6. (1998). Theory and Practice of Concurrency.
  7. (1913). Uber eine Anwendung der Mengenlehre auf die Theorie des Schachspiels.

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.