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].
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
F. Bourdoncle. Abstract Debugging of Higher-Order Imperative Languages. In Programming Languages Design and Implementation’ 93, pages 46–55, 1993.
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.
M. Codish and V. Lagoon. Type Dependencies for Logic Programs using ACI unification. Journal of Theoretical Computer Science, 238:131–159, 2000.
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.
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.
M. Comini, G. Levi, M. C. Meo, and G. Vitiello. Abstract Diagnosis. Journal of Logic Programming, 39(1–3):43–93, 1999.
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.
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.
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.
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.
P. Cousot and R. Cousot. Abstract Interpretation Frameworks. Journal of Logic and Computation, 2(4):511–549, 1992.
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.
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.
W. Drabent and J. Maluszynski. Inductive Assertion Method for Logic Programs. Theoretical Computer Science, 59(1):133–155, 1988.
W. Drabent and P. Pietrzak. Type Analysis for CHIP. In proceedings of Types for Constraint Logic Programming, post-conference workshop of JICSLP’98, 1998.
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.
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.
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.
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.
D. Park. Fixpoint Induction and Proofs of Program Properties. Machine Intelligence, 5:59–78, 1969.
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.
P. Volpe. Derivation of proof methods for logic programs by abstract interpretation. PhD thesis, Dipartimento di Matematica, Universitá di Napoli Federico II, 1999.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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