skip to main content
10.1145/1389449.1389450acmconferencesArticle/Chapter ViewAbstractPublication PagesppdpConference Proceedingsconference-collections
invited-talk

Declarative programming for verification: lessons and outlook

Published:15 July 2008Publication History

ABSTRACT

This paper summarises roughly ten years of experience using declarative programming for developing tools to validate formal specifications. More precisely, we present insights gained and lessons learned while implementing animators and model checkers in Prolog for various specification languages, ranging from process algebras such as CSP to model-based specifications such as Z and B.

References

  1. A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman. Compilers. Principles, Techniques, and Tools (Second Edition). Addison Wesley, 2007.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. F. Ambert, F. Bouquet, S. Chemin, S. Guenaud, B. Legeard, F. Peureux, M. Utting, and N. Vacelet. BZ-testing-tools: A tool-set for test generation from Z and B using constraint logic programming. In Proceedings of FATES'02, Formal Approaches to Testing of Software, pages 105--120, August 2002.]]Google ScholarGoogle Scholar
  3. K. R. Apt. Introduction to logic programming. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, chapter 10, pages 495--574. North-Holland Amsterdam, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Armstrong. A history of Erlang. In B. G. Ryder and B. Hailpern, editors, HOPL, pages 1--26. ACM, 2007.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. B-Core (UK) Ltd, Oxon, UK. B-Toolkit, On-line manual, 1999. Available at http://www.b-core.com/ONLINEDOC/Contents.html.]]Google ScholarGoogle Scholar
  6. J. Bendisposto and M. Leuschel. BE4: The B extensible eclipse editing environment. In Proceedings of the 7th International B Conference (B2007), LNCS 4355, pages 270--273, Besancon, France, 2007. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. B. Bérard and L. Fribourg. Reachability analysis of (timed) Petri nets using real arithmetic. In Proceedings of Concur'99, LNCS 1664, pages 178--193. Springer-Verlag, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. F. Bouquet, B. Legeard, and F. Peureux. CLPS-B - a constraint solver for B. In J.-P. Katoen and P. Stevens, editors, Tools and Algorithms for the Construction and Analysis of Systems, LNCS 2280, pages 188--204. Springer-Verlag, 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Bowen. Animating the semantics of VERILOG using Prolog. Technical Report UNU/IIST Technical Report no. 176, United Nations University, Macau, 1999.]]Google ScholarGoogle Scholar
  10. M. Butler and M. Leuschel. Combining CSP and B for specification and property verification. In Proceedings of Formal Methods 2005, LNCS 3582, pages 221--236, Newcastle upon Tyne, 2005. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Carlsson and G. Ottosson. An open-ended finite domain constraint solver. In H. G. Glaser, P. H. Hartel, and H. Kuchen, editors, Proc. Programming Languages: Implementations, Logics, and Programs, LNCS 1292, pages 191--206. Springer-Verlag, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. W. Chen and D. S. Warren. Tabled evaluation with delaying for general logic programs. Journal of the ACM, 43(1):20--74, January 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. E. M. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Codish, B. Demoen, and K. F. Sagonas. Xsb as the natural habitat for general purpose program analysis. In ICLP, page 416, 1997.]]Google ScholarGoogle Scholar
  15. B. Cui, Y. Dong, X. Du, N. Kumar, C. R. Ramakrishnan, I. V. Ramakrishnan, A. Roychoudhury, S. A. Smolka, and D. S. Warren. Logic programming and model checking. In C. Palamidessi, H. Glaser, and K. Meinke, editors, Proceedings of ALP/PLILP'98, LNCS 1490, pages 1--20. Springer-Verlag, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. G. Delzanno and A. Podelski. Constraint-based deductive model checking. STTT, 3(3):250--270, 2001.]]Google ScholarGoogle ScholarCross RefCross Ref
  17. B. Farwer and M. Leuschel. Model checking object Petri nets in Prolog. In Proceedings PPDP '04, pages 20--31, New York, NY, USA, 2004. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. C. Ferreira and M. Butler. A process compensation language. In T. Santen and B. Stoddart, editors, Proceedings Integrated Formal Methods (IFM 2000), LNCS 1945, pages 424--435. Springer-Verlag, November 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Formal Systems (Europe) Ltd. Failures-Divergence Refinement - FDR2 User Manual (version 2.8.2).]]Google ScholarGoogle Scholar
  20. M. A. Hewitt, C. O'Halloran, and C. T. Sennett. Experiences with piza, an animator for z. In ZUM '97: Proceedings of the 10th International Conference of Z Users on The Z Formal Specification Notation, pages 37--51, London, UK, 1997. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. P. Hill and J. Gallagher. Meta-programming in logic programming. In D. M. Gabbay, C. J. Hogger, and J. A. Robinson, editors, Handbook of Logic in Artificial Intelligence and Logic Programming, volume 5, pages 421--497. Oxford Science Publications, Oxford University Press, 1998.]]Google ScholarGoogle ScholarCross RefCross Ref
  22. C. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. G. Hutton and E. Meijer. Monadic Parser Combinators. Technical Report NOTTCS-TR-96-4, Department of Computer Science, University of Nottingham, 1996.]]Google ScholarGoogle Scholar
  24. L. King, G. Gupta, and E. Pontelli. Verification of a controller for BART. In V. L. Winter and S. Bhattacharya, editors, High Integrity Software, pages 265--299. Kluwer Academic Publishers, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Leuschel. Design and implementation of the high-level specification language CSP(LP) in Prolog. In I. V. Ramakrishnan, editor, Proceedings of PADL'01, LNCS 1990, pages 14--28. Springer-Verlag, March 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Leuschel and M. Butler. ProB: A model checker for B. In K. Araki, S. Gnesi, and D. Mandrioli, editors, FME 2003: Formal Methods, LNCS 2805, pages 855--874. Springer-Verlag, 2003.]]Google ScholarGoogle ScholarCross RefCross Ref
  27. M. Leuschel and M. Butler. ProB: an automated analysis toolset for the B method. STTT, 10(2):185--203, 2008.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. M. Leuschel and H. Lehmann. Coverability of reset Petri nets and other well-structured transition systems by partial deduction. In J. Lloyd, editor, Proceedings of the International Conference on Computational Logic (CL'2000), LNAI 1861, pages 101--115, London, UK, 2000. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. Leuschel and H. Lehmann. Solving coverability problems of Petri nets by partial deduction. In M. Gabbrielli and F. Pfenning, editors, Proceedings of PPDP'2000, pages 268--279, Montreal, Canada, 2000. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. M. Leuschel, B. Martens, and D. De Schreye. Controlling generalisation and polyvariance in partial deduction of normal logic programs. ACM Transactions on Programming Languages and Systems, 20(1):208--258, January 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. Leuschel and T. Massart. Infinite state model checking by abstract interpretation and program specialisation. In A. Bossi, editor, Proceedings LOPSTR'99, LNCS 1817, pages 63--82, Venice, Italy, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. M. Leuschel and D. Plagge. Seven at a stroke: LTL model checking for high-level specifications in B, Z, CSP, and more. In Y. Aït-Ameur, F. Boniol, and V. Wiels, editors, Proceedings Isola 2007, Revue des Nouvelles Technologies de l'Information RNTI-SM-1, pages 73--84, 2007.]]Google ScholarGoogle Scholar
  33. J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1987.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. B. Martens and D. De Schreye. Why untyped non-ground metaprogramming is not (much of) a problem. The Journal of Logic Programming, 22(1):47--99, 1995.]]Google ScholarGoogle ScholarCross RefCross Ref
  35. L. Naish. An introduction to MU-Prolog. Technical Report 82/2, Department of Computer Science, University of Melbourne, Melbourne, Australia, March 1982 (Revised July 1983).]]Google ScholarGoogle Scholar
  36. U. Nilsson and J. Lübcke. Constraint logic programming for local and symbolic model checking. In J. Lloyd, editor, Proceedings of the International Conference on Computational Logic (CL'2000), LNAI 1861, pages 384--398, London, UK, 2000. Springer-Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. R. L. Pokorny and C. R. Ramakrishnan. Model checking linear temporal logic using tabled logic programming. In Proceedings Tabling in Parsing and Deduction TAPD 2000, Vigo, Spain, September 2000.]]Google ScholarGoogle Scholar
  38. Y. S. Ramakrishna, C. R. Ramakrishnan, I. V. Ramakrishnan, S. A. Smolka, T. Swift, and D. S. Warren. Efficient model checking using tabled resolution. In O. Grumberg, editor, Proceedings CAV'97, LNCS 1254, pages 143--154. Springer-Verlag, 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. P. B. Reintjes and S. Rajgopal. Multi/plex: Prolog tools for formal languages. In LPE, pages 81--87, 1993.]]Google ScholarGoogle Scholar
  40. A. Rigo. Representation-based just-in-time specialization and the Psyco prototype for Python. In N. Heintze and P. Sestoft, editors, PEPM, pages 15--26. ACM, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. A. W. Roscoe. The Theory and Practice of Concurrency. Prentice-Hall, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. K. Sagonas, T. Swift, and D. S. Warren. XSB as an efficient deductive database engine. In Proceedings of the ACM SIGMOD International Conference on the Management of Data, pages 442--453, Minneapolis, Minnesota, May 1994. ACM.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. K. Sagonas, T. Swift, D. S. Warren, J. Freire, P. Rao, B. Cui, E. Johnson, L. de Castro, R. F. Marques, S. Dawson, and M. Kifer. XSB Programmer's Manual. Available at http://xsb.sourceforge.net/.]]Google ScholarGoogle Scholar
  44. J. B. Scattergood. Tools for CSP and Timed-CSP. PhD thesis, Oxford University, 1997.]]Google ScholarGoogle Scholar
  45. A. Serebrenik, T. Schrijvers, and B. Demoen. Improving prolog programs: Refactoring for prolog. Theory and Practice of Logic Programming, 8:201--215, 2008.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. S. SICS, Kista. SICStus Prolog User's Manual. Available at http://www.sics.se/sicstus.]]Google ScholarGoogle Scholar
  47. C. Spermann and M. Leuschel. ProB gets nauty: Effective symmetry reduction for B and Z models. In Proceedings Symposium TASE 2008. IEEE, June 2008. to appear.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. F. Steria, Aix-en-Provence. Atelier B, User and Reference Manuals, 1996. Available at http://www.atelierb.societe.com.]]Google ScholarGoogle Scholar
  49. E. Turner, M. Leuschel, C. Spermann, and M. Butler. Symmetry reduced model checking for B. In Proceedings Symposium TASE 2007, pages 25--34, Shanghai, China, June 2007. IEEE.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. M. Y. Vardi. Branching vs. linear time: Final showdown. In T. Margaria and W. Yi, editors, TACAS'01, LNCS 2031, pages 1--22. Springer, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. M. Winikoff, P. Dart, and E. Kazmierczak. Rapid prototyping using formal specifications. In Proceedings of the 21st Australasian Computer Science Conference, pages 279--294, Perth, Australia, February 1998.]]Google ScholarGoogle Scholar

Index Terms

  1. Declarative programming for verification: lessons and outlook

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              PPDP '08: Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
              July 2008
              278 pages
              ISBN:9781605581170
              DOI:10.1145/1389449
              • General Chair:
              • Sergio Antoy,
              • Program Chair:
              • Elvira Albert

              Copyright © 2008 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 15 July 2008

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • invited-talk

              Acceptance Rates

              PPDP '08 Paper Acceptance Rate24of48submissions,50%Overall Acceptance Rate230of486submissions,47%

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader