Temporal-Safety Proofs for Systems Code

  • Thomas A. Henzinger
  • George C. Necula
  • Ranjit Jhala
  • Grégoire Sutre
  • Rupak Majumdar
  • Westley Weimer
Conference paper

DOI: 10.1007/3-540-45657-0_45

Part of the Lecture Notes in Computer Science book series (LNCS, volume 2404)
Cite this paper as:
Henzinger T.A., Necula G.C., Jhala R., Sutre G., Majumdar R., Weimer W. (2002) Temporal-Safety Proofs for Systems Code. In: Brinksma E., Larsen K.G. (eds) Computer Aided Verification. CAV 2002. Lecture Notes in Computer Science, vol 2404. Springer, Berlin, Heidelberg

Abstract

We present a methodology and tool for verifying and certifying systems code. The verification is based on the lazy-abstraction paradigm for intertwining the following three logical steps: construct a predicate abstraction from the code, model check the abstraction, and automatically refine the abstraction based on counterexample analysis. The certification is based on the proof-carrying code paradigm. Lazy abstraction enables the automatic construction of small proof certificates. The methodology is implemented in Blast, the Berkeley Lazy Abstraction Software verification Tool. We describe our experience applying Blast to Linux and Windows device drivers. Given the C code for a driver and for a temporal-safety monitor, Blast automatically generates an easily checkable correctness certificate if the driver satisfies the specification, and an error trace otherwise.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Thomas A. Henzinger
    • 1
  • George C. Necula
    • 1
  • Ranjit Jhala
    • 1
  • Grégoire Sutre
    • 2
  • Rupak Majumdar
    • 1
  • Westley Weimer
    • 1
  1. 1.EECS DepartmentUniversity of CaliforniaBerkeley
  2. 2.LaBRIUniversité de BordeauxFrance

Personalised recommendations