Skip to main content

How to Transform an Analyzer into a Verifier

  • Conference paper
  • First Online:
Logic for Programming, Artificial Intelligence, and Reasoning (LPAR 2001)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 2250))

Abstract

In this paper we push forward the idea of applying the abstract interpretation concepts to the problem of Verification of programs. We consider the theory of abstract Verification as proposed in [5] and we show how it is possible to transform static analyzers with some suitable properties to obtain automatic Verification tools based on suficient verification conditions. We prove that the approach is general and flexible by showing three difierent Verification tools based on difierent domains of types for functional, logic and CLP programming. The verifier for functional programs is obtained from a static analyzer which implements one of the polymorphic type domains introduced by Cousot [8]. The one for logic programs is obtained from a static analyzer on a type domain designed by Codish and Lagoon [3], while the verifier for CLP programs is obtained from the type analyzer described in [15].

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. F. Bourdoncle. Abstract Debugging of Higher-Order Imperative Languages. In Programming Languages Design and Implementation’ 93, pages 46–55, 1993.

    Google Scholar 

  2. F. Bueno, P. Deransart, W. Drabent, G. Ferrand, M. Hermenegildo, J. Maluszynski, and G. Puebla. On the Role of Semantic Approximations in Validation and Diagnosis of Constraint Logic Programs. In M. Kamkar, editor, Proceedings of the AADEBUG’97, pages 155–169. Linköping University, 1997.

    Google Scholar 

  3. M. Codish and V. Lagoon. Type Dependencies for Logic Programs using ACI unification. Journal of Theoretical Computer Science, 238:131–159, 2000.

    Article  MATH  MathSciNet  Google Scholar 

  4. M. Comini, W. Drabent, and P. Pietrzak. Diagnosis of CHIP Programs Using Type Information. In M. C. Meo and M. Vilares Ferro, editors, Appia-Gulp-Prode’99, Joint Conference on Declarative Programming, pages 337–349, 1999.

    Google Scholar 

  5. M. Comini, R. Gori, G. Levi, and P. Volpe. Abstract Interpretation based Verification of Logic Programs. In S. Etalle and J.-G. Smaus, editors, Proceedings of the Workshop on Verification of Logic Programs, volume 30 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 2000. Available at URL: http://www.elsevier.nl/locate/entcs/volume30.html.

  6. M. Comini, G. Levi, M. C. Meo, and G. Vitiello. Abstract Diagnosis. Journal of Logic Programming, 39(1–3):43–93, 1999.

    Article  MATH  MathSciNet  Google Scholar 

  7. P. Cousot. Constructive Design of a Hierarchy of Semantics of a Transition System by Abstract Interpretation. In S. Brookes and M. Mislove, editors, Proceedings of MFPS’97, volume 6 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 1997. Available at URL: http://www.elsevier.nl/locate/entcs/volume6.html.

  8. P. Cousot. Types as abstract interpretations (Invited Paper). In Conference Record of the 24th ACM Symp. on Principles of Programming Languages (POPL’97), pages 316–331. ACM Press, 1997.

    Google Scholar 

  9. P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Proceedings of Fourth ACM Symp. Principles of Programming Languages, pages 238–252, 1977.

    Google Scholar 

  10. P. Cousot and R. Cousot. Systematic Design of Program Analysis Frameworks. In Proceedings of Sixth ACM Symp. Principles of Programming Languages, pages 269–282, 1979.

    Google Scholar 

  11. P. Cousot and R. Cousot. Abstract Interpretation Frameworks. Journal of Logic and Computation, 2(4):511–549, 1992.

    Article  MATH  MathSciNet  Google Scholar 

  12. P. Cousot and R. Cousot. Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation. In M. Bruynooghe and M. Wirsing, editors, Proceedings of PLILP’92, volume 631 of Lecture Notes in Computer Science, pages 269–295. Springer-Verlag, 1992.

    Google Scholar 

  13. P. Cousot and R. Cousot. Inductive Definitions, Semantics and Abstract Interpretation. In Proceedings of Nineteenth Annual ACM Symp. on Principles of Programming Languages, pages 83–94. ACM Press, 1992.

    Google Scholar 

  14. W. Drabent and J. Maluszynski. Inductive Assertion Method for Logic Programs. Theoretical Computer Science, 59(1):133–155, 1988.

    Article  MathSciNet  MATH  Google Scholar 

  15. W. Drabent and P. Pietrzak. Type Analysis for CHIP. In proceedings of Types for Constraint Logic Programming, post-conference workshop of JICSLP’98, 1998.

    Google Scholar 

  16. J. Gallagher and D. A. de Waal. Regular Approximations of Logic Programs and Their Uses. Technical Report CSTR-92-06, Department of Computer Science, University of Bristol, 1992.

    Google Scholar 

  17. J. Gallagher and D. A. de Waal. Fast and Precise Regular Approximations of Logic Programs. In P. Van Hentenryck, editor, Proceedings of the Eleventh International Conference on Logic Programming, pages 599–613, Cambridge, Mass., 1994. MIT Press.

    Google Scholar 

  18. R. Giacobazzi and F. Ranzato. Completeness in abstract interpretation: A domain perspective. In M. Johnson, editor, Proceedings of the 6th International Conference on Algebraic Methodology and Software Technology (AMAST’97), Lecture Notes in Computer Science. Springer-Verlag, 1997.

    Google Scholar 

  19. G. Levi and P. Volpe. Derivation of Proof Methods by Abstract Interpretation. In C. Palamidessi, H. Glaser, and K. Meinke, editors, Principles of Declarative Programming. 10th International Symposium, PLILP’98, volume 1490 of Lecture Notes in Computer Science, pages 102–117. Springer-Verlag, 1998.

    Chapter  Google Scholar 

  20. D. Park. Fixpoint Induction and Proofs of Program Properties. Machine Intelligence, 5:59–78, 1969.

    MATH  Google Scholar 

  21. D. Rémy and J. Vouillon. Objective ML:An effective object-oriented extension to ML. Theory and Practice of Object-Systems, 4(1):27–50, 1998.

    Article  Google Scholar 

  22. P. Volpe. Derivation of proof methods for logic programs by abstract interpretation. PhD thesis, Dipartimento di Matematica, Universitá di Napoli Federico II, 1999.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Comini, M., Gori, R., Levi, G. (2001). How to Transform an Analyzer into a Verifier. In: Nieuwenhuis, R., Voronkov, A. (eds) Logic for Programming, Artificial Intelligence, and Reasoning. LPAR 2001. Lecture Notes in Computer Science(), vol 2250. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45653-8_41

Download citation

  • DOI: https://doi.org/10.1007/3-540-45653-8_41

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42957-9

  • Online ISBN: 978-3-540-45653-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics