Certificate Translation for Optimizing Compilers

(Extended Abstract)
  • Gilles Barthe
  • Benjamin Grégoire
  • César Kunz
  • Tamara Rezk
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4134)


Certifying compilation provides a means to ensure that untrusted mobile code satisfies its functional specification. A certifying compiler generates code as well as a machine-checkable “certificate”, i.e. a formal proof that establishes adherence of the code to specified properties. While certificates for safety properties can be built fully automatically, certificates for more expressive and complex properties often require the use of interactive code verification. We propose a technique to provide code consumers with the benefits of interactive source code verification. Our technique, certificate translation, extends program transformations by offering the means to turn certificates of functional correctness for programs in high-level languages into certificates for executable code. The article outlines the principles of certificate translation, using specifications written in first order logic. This translation is instantiated for standard compiler optimizations in the context of an intermediate RTL Language.


Proof Obligation Loop Induction Mobile Code Graph Code Annotate Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bannwart, F., Müller, P.: A program logic for bytecode. In: Spoto, F. (ed.) Proceedings of Bytecode 2005. Electronic Notes in Theoretical Computer Science. Elsevier Publishing, Amsterdam (2005)Google Scholar
  2. 2.
    Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# Programming System: An Overview. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 49–69. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  3. 3.
    Barthe, G., Rezk, T., Saabas, A.: Proof obligations preserving compilation. In: Dimitrakos, T., Martinelli, F., Ryan, P.Y.A., Schneider, S. (eds.) FAST 2005. LNCS, vol. 3866, pp. 112–126. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  4. 4.
    Benton, N.: Simple relational correctness proofs for static analyses and program transformations. In: Proceedings of POPL 2004, pp. 14–25. ACM Press, New York (2004)CrossRefGoogle Scholar
  5. 5.
    Burdy, L., Pavlova, M.: Annotation carrying code. In: Proceedings of SAC 2006. ACM Press, New York (2006)Google Scholar
  6. 6.
    Guttman, J.D., Wand, M.: Special issue on VLISP. Lisp and Symbolic Computation 8(1/2) (March 1995)Google Scholar
  7. 7.
    Lerner, S., Millstein, T., Rice, E., Chambers, C.: Automated soundness proofs for dataflow analyses and transformations via local rules. In: Proceedings of POPL 2005, pp. 364–377. ACM Press, New York (2005)CrossRefGoogle Scholar
  8. 8.
    Leroy, X.: Formal certification of a compiler back-end, or: programming a compiler with a proof assistant. In: Proceedings of POPL 2006, pp. 42–54. ACM Press, New York (2006)Google Scholar
  9. 9.
    Necula, G.C.: Proof-Carrying Code. In: Proceedings of POPL 1997, pp. 106–119. ACM Press, New York (1997)CrossRefGoogle Scholar
  10. 10.
    Necula, G.C.: Compiling with Proofs. PhD thesis, Carnegie Mellon University, Available as Technical Report CMU-CS-98-154 (October 1998)Google Scholar
  11. 11.
    Necula, G.C., Lee, P.: The Design and Implementation of a Certifying Compiler. In: Proceedings of PLDI 1998, pp. 333–344. ACM Press, New York (1998)CrossRefGoogle Scholar
  12. 12.
    Seo, S., Yang, H., Yi, K.: Automatic Construction of Hoare Proofs from Abstract Interpretation Results. In: Ohori, A. (ed.) APLAS 2003. LNCS, vol. 2895, pp. 230–245. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  13. 13.
    Wildmoser, M., Chaieb, A., Nipkow, T.: Bytecode analysis for proof carrying code. In: Spoto, F. (ed.) Proceedings of BYTECODE 2005. Electronic Notes in Theoretical Computer Science. Elsevier Publishing, Amsterdam (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Gilles Barthe
    • 1
  • Benjamin Grégoire
    • 1
  • César Kunz
    • 1
  • Tamara Rezk
    • 1
  1. 1.INRIA Sophia-Antipolis, Project EVEREST 

Personalised recommendations