Proof-producing program analysis augments the invariants inferred by an abstract interpreter with their correctness proofs. If these invariants are precise enough to guarantee safety, this method is an automatic verification tool. We present proof-synthesis algorithms for a simple flow chart language and domains \({\mathcal{V}}\to{\mathbb{V}}\) mapping variables to abstract values and discuss some benefits for proof carrying code systems. Our work has been carried out in Isabelle/HOL and incorporated within a verified proof carrying code system.


Decision Procedure Complete Lattice Abstract Interpretation Correctness Proof Abstract Domain 
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.
    Albert, E., Puebla, G., Hermenegildo, M.V.: Abstraction-carrying code. In: Baader, F., Voronkov, A. (eds.) LPAR 2004. LNCS, vol. 3452, pp. 380–397. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  2. 2.
    Barendregt, H., Barendsen, E.: Autarkic computations in formal proofs. J. Autom. Reasoning 28(3), 321–336 (2002)CrossRefMathSciNetMATHGoogle Scholar
  3. 3.
    Bertot, Y., Castéran, P.: Coq’Art: The Calculus of Inductive Constructions. Text in theor. comp. science: an EATCS series, vol. XXV. Springer, Heidelberg (2004)MATHGoogle Scholar
  4. 4.
    Bjorner, N.S.: Integrating decision procedures for temporal verification. PhD thesis, Stanford University, Adviser-Zohar Manna (1998)Google Scholar
  5. 5.
    Cachera, D., Jensen, T., Pichardie, D., Rusu, V.: Extracting a Data Flow Analyser in Constructive Logic. In: Schmidt, D. (ed.) ESOP 2004. LNCS, vol. 2986, pp. 385–400. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  6. 6.
    Cormen, Leiserson, Rivest: Introduction to Algorithms. MIT Press, Cambridge Mass. (1990)MATHGoogle Scholar
  7. 7.
    Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Conference Record of the Fourth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Los Angeles, California, pp. 238–252. ACM Press, New York (1977)CrossRefGoogle Scholar
  8. 8.
    Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Conference Record of the Sixth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas, pp. 269–282. ACM Press, New York (1979)CrossRefGoogle Scholar
  9. 9.
    Klein, G., Nipkow, T.: A machine-checked model for a Java-like language, virtual machine and compiler. ACM Transactions on Programming Languages and Systems 28(4), 619–695 (2006)CrossRefGoogle Scholar
  10. 10.
    Miné, A.: Representation of two-variable difference or sum constraint set and application to automatic program analysis. Master’s thesis, ENS-DI, Paris (2000)Google Scholar
  11. 11.
    Monniaux, D.: Réalisation mécanisée d’interpréteurs abstraits. Rapport de DEA, Université Paris VII, French (1998)Google Scholar
  12. 12.
    Necula, G.C.: Proof-carrying code. In: Proc. 24th ACM Symp. Principles of Programming Languages, pp. 106–119. ACM Press, New York (1997)Google Scholar
  13. 13.
    Nipkow, T., Paulson, L.C., Wenzel, M. (eds.): Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)MATHGoogle Scholar
  14. 14.
    Paulson, L.C.: Logic and Computation. Cambridge University Press, Cambridge (1987)CrossRefMATHGoogle Scholar
  15. 15.
    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
  16. 16.
    Wildmoser, M., Chaieb, A., Nipkow, T.: Bytecode analysis for proof carrying code. In: RSCTC 2000. Electronic Notes in Computer Science (2005)Google Scholar
  17. 17.
    Wildmoser, M., Nipkow, T.: Certifying machine code safety: Shallow versus deep embedding. In: Slind, K., Bunker, A., Gopalakrishnan, G.C. (eds.) TPHOLs 2004. LNCS, vol. 3223, pp. 305–320. Springer, Heidelberg (2004)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Amine Chaieb
    • 1
  1. 1.Institut für InformatikTechnische Universität München 

Personalised recommendations