Skip to main content

Advertisement

SpringerLink
Log in
Menu
Find a journal Publish with us Track your research
Search
Cart
Book cover

European Symposium on Programming

ESOP 2007: Programming Languages and Systems pp 268–283Cite as

  1. Home
  2. Programming Languages and Systems
  3. Conference paper
Small Witnesses for Abstract Interpretation-Based Proofs

Small Witnesses for Abstract Interpretation-Based Proofs

  • Frédéric Besson1,
  • Thomas Jensen1 &
  • Tiphaine Turpin1 
  • Conference paper
  • 1021 Accesses

  • 6 Citations

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 4421)

Abstract

Abstract interpretation-based proof carrying code uses post-fixpoints of abstract interpretations to witness that a program respects a safety policy. Some witnesses carry more information than needed and are therefore unnecessarily large. We introduce a notion of size of a witness and propose techniques for reducing the size of such certificates. For distributive analyses, we show that a smallest witness exist and we give an iterative algorithm for computing it. For non-distributive analyes we propose a technique for pruning a witness and illustrate this pruning on a relational, polyhedra-based analysis. Finally, only the existence of a witness is needed to assure the code consumer of the safety of a given program. This makes possible a compression technique of witnesses where only part of a witness is sent together with an encoding of the iterative steps necessary to prove that it is part of a post-fixpoint.

Keywords

  • Convex Polyhedron
  • Abstract Interpretation
  • Abstract Property
  • Abstract Domain
  • Program Point

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.

Chapter PDF

Download to read the full chapter text

References

  1. Albert, E., et al.: Reduced certificates for abstraction-carrying code. In: Etalle, S., Truszczyński, M. (eds.) ICLP 2006. LNCS, vol. 4079, pp. 163–178. Springer, Heidelberg (2006)

    CrossRef  Google Scholar 

  2. Besson, F., Jensen, T., Pichardie, D.: Proof-Carrying Code from Certified Abstract Interpretation and Fixpoint Compression. Theoretical Computer Science 364, 273–291 (2006)

    CrossRef  MATH  MathSciNet  Google Scholar 

  3. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximations of fixpoints. In: Proc. of the 4th ACM Symp. on Principles of Programming Languages, pp. 238–252. ACM Press, New York (1977)

    CrossRef  Google Scholar 

  4. Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: Proc. of the 5th ACM Symp. on Principles of programming languages, pp. 84–96. ACM Press, New York (1978)

    CrossRef  Google Scholar 

  5. Davey, B.A., Priestley, H.A.: Introduction to Lattices and Order. Cambridge University Press, Cambridge (1990)

    MATH  Google Scholar 

  6. Halbwachs, N.: Delay analysis in synchronous programs. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697, pp. 333–346. Springer, Heidelberg (1993)

    Google Scholar 

  7. Halbwachs, N.: About synchronous programming and abstract interpretation. Science of Computer Programming 31(1), 75–89 (1998)

    CrossRef  MATH  Google Scholar 

  8. Koehler, H.: A contraction algorithm for finding minimal feedback sets. In: Proc.  of the 28th Australasian Conf. on Computer Science, Newcastle, Australia, pp. 165–173. Australian Computer Society, Inc. (2005)

    Google Scholar 

  9. Levy, H., Low, D.W.: A contraction algorithm for finding small cycle cutsets. J. Algorithms 9(4), 470–493 (1988)

    CrossRef  MATH  MathSciNet  Google Scholar 

  10. Muchnick, S.S., Jones, N.D.: Program Flow Analysis: Theory and Application. Prentice-Hall, Englewood Cliffs (1981)

    Google Scholar 

  11. Marlowe, T., Ryder, B.: Properties of data flow frameworks. Acta Informatica 28, 121–163 (1990)

    CrossRef  MATH  MathSciNet  Google Scholar 

  12. Necula, G.: Proof-carrying code. In: Proc. of the 24th ACM Symp. on Principles of programming languages, pp. 106–119. ACM Press, New York (1997)

    CrossRef  Google Scholar 

  13. Necula, G., Lee, P.: Efficient representation and validation of proofs. In: Proc. of the 13th IEEE Symp. on Logic in Computer Science, pp. 93–104. IEEE Computer Society Press, Los Alamitos (1998)

    Google Scholar 

  14. Necula, G.C., Rahul, S.P.: Oracle-based checking of untrusted software. In: Proc. of the 28th ACM Symp. on Principles of programming languages, pp. 142–154. ACM Press, New York (2001)

    CrossRef  Google Scholar 

  15. Rose, E.: Lightweight bytecode verification. J. Automated Reasoning 31(3-4), 303–334 (2003)

    CrossRef  MATH  Google Scholar 

  16. Sankaranarayanan, S., Sipma, H., Manna, Z.: Constraint-based linear-relations analysis. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 53–68. Springer, Heidelberg (2004)

    Google Scholar 

  17. Wu, D., Appel, A.W., Stump, A.: Foundational proof checkers with small witnesses. In: Proc. of the 5th ACM Int. Conf. on Principles and Practice of Declarative Programming, pp. 264–274. ACM Press, New York (2003)

    CrossRef  Google Scholar 

Download references

Author information

Authors and Affiliations

  1. IRISA/{Inria, CNRS, Université de Rennes 1}, Campus de Beaulieu, F-35042 Rennes, France

    Frédéric Besson, Thomas Jensen & Tiphaine Turpin

Authors
  1. Frédéric Besson
    View author publications

    You can also search for this author in PubMed Google Scholar

  2. Thomas Jensen
    View author publications

    You can also search for this author in PubMed Google Scholar

  3. Tiphaine Turpin
    View author publications

    You can also search for this author in PubMed Google Scholar

Editor information

Rocco De Nicola

Rights and permissions

Reprints and Permissions

Copyright information

© 2007 Springer Berlin Heidelberg

About this paper

Cite this paper

Besson, F., Jensen, T., Turpin, T. (2007). Small Witnesses for Abstract Interpretation-Based Proofs. In: De Nicola, R. (eds) Programming Languages and Systems. ESOP 2007. Lecture Notes in Computer Science, vol 4421. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71316-6_19

Download citation

  • .RIS
  • .ENW
  • .BIB
  • DOI: https://doi.org/10.1007/978-3-540-71316-6_19

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-71314-2

  • Online ISBN: 978-3-540-71316-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Share this paper

Anyone you share the following link with will be able to read this content:

Sorry, a shareable link is not currently available for this article.

Provided by the Springer Nature SharedIt content-sharing initiative

Publish with us

Policies and ethics

search

Navigation

  • Find a journal
  • Publish with us
  • Track your research

Discover content

  • Journals A-Z
  • Books A-Z

Publish with us

  • Publish your research
  • Open access publishing

Products and services

  • Our products
  • Librarians
  • Societies
  • Partners and advertisers

Our imprints

  • Springer
  • Nature Portfolio
  • BMC
  • Palgrave Macmillan
  • Apress
  • Your US state privacy rights
  • Accessibility statement
  • Terms and conditions
  • Privacy policy
  • Help and support
  • Cancel contracts here

167.114.118.210

Not affiliated

Springer Nature

© 2023 Springer Nature