Proof Obligations Preserving Compilation

  • Gilles Barthe
  • Tamara Rezk
  • Ando Saabas
Conference paper

DOI: 10.1007/11679219_9

Part of the Lecture Notes in Computer Science book series (LNCS, volume 3866)
Cite this paper as:
Barthe G., Rezk T., Saabas A. (2006) Proof Obligations Preserving Compilation. In: Dimitrakos T., Martinelli F., Ryan P.Y.A., Schneider S. (eds) Formal Aspects in Security and Trust. FAST 2005. Lecture Notes in Computer Science, vol 3866. Springer, Berlin, Heidelberg

Abstract

The objective of this work is to study the interaction between program verification and program compilation, and to show that the proof that a source program meets its specification can be reused to show that the corresponding compiled program meets the same specification. More concretely, we introduce a core imperative language, and a bytecode language for a stack-based abstract machine, and a non-optimizing compiler. Then we consider for both languages verification condition generators that operate on programs annotated with loop invariants and procedure specifications. In such a setting, we show that compilation preserves proof obligations, in the sense that the proof obligations generated for the source annotated program are the same that those generated for the compiled annotated program (using the same loop invariants and procedure specifications). Furthermore, we discuss the relevance of our results to Proof Carrying Code.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Gilles Barthe
    • 1
  • Tamara Rezk
    • 1
  • Ando Saabas
    • 2
  1. 1.INRIA Sophia AntipolisFrance
  2. 2.Institute of CyberneticsTallinn University of TechnologyEstonia

Personalised recommendations