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.
- A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman. Compilers. Principles, Techniques, and Tools (Second Edition). Addison Wesley, 2007.]] Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- J. Armstrong. A history of Erlang. In B. G. Ryder and B. Hailpern, editors, HOPL, pages 1--26. ACM, 2007.]] Google ScholarDigital Library
- B-Core (UK) Ltd, Oxon, UK. B-Toolkit, On-line manual, 1999. Available at http://www.b-core.com/ONLINEDOC/Contents.html.]]Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- J. Bowen. Animating the semantics of VERILOG using Prolog. Technical Report UNU/IIST Technical Report no. 176, United Nations University, Macau, 1999.]]Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- E. M. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 1999.]] Google ScholarDigital Library
- M. Codish, B. Demoen, and K. F. Sagonas. Xsb as the natural habitat for general purpose program analysis. In ICLP, page 416, 1997.]]Google Scholar
- 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 ScholarDigital Library
- G. Delzanno and A. Podelski. Constraint-based deductive model checking. STTT, 3(3):250--270, 2001.]]Google ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Formal Systems (Europe) Ltd. Failures-Divergence Refinement - FDR2 User Manual (version 2.8.2).]]Google Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- C. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.]] Google ScholarDigital Library
- G. Hutton and E. Meijer. Monadic Parser Combinators. Technical Report NOTTCS-TR-96-4, Department of Computer Science, University of Nottingham, 1996.]]Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- M. Leuschel and M. Butler. ProB: an automated analysis toolset for the B method. STTT, 10(2):185--203, 2008.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1987.]] Google ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- P. B. Reintjes and S. Rajgopal. Multi/plex: Prolog tools for formal languages. In LPE, pages 81--87, 1993.]]Google Scholar
- 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 ScholarDigital Library
- A. W. Roscoe. The Theory and Practice of Concurrency. Prentice-Hall, 1999.]] Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- J. B. Scattergood. Tools for CSP and Timed-CSP. PhD thesis, Oxford University, 1997.]]Google Scholar
- A. Serebrenik, T. Schrijvers, and B. Demoen. Improving prolog programs: Refactoring for prolog. Theory and Practice of Logic Programming, 8:201--215, 2008.]] Google ScholarDigital Library
- S. SICS, Kista. SICStus Prolog User's Manual. Available at http://www.sics.se/sicstus.]]Google Scholar
- 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 ScholarDigital Library
- F. Steria, Aix-en-Provence. Atelier B, User and Reference Manuals, 1996. Available at http://www.atelierb.societe.com.]]Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
Index Terms
- Declarative programming for verification: lessons and outlook
Recommendations
A formal requirements engineering method for specification, synthesis, and verification
SEE '97: Proceedings of the 8th International Conference on Software Engineering Environments (SEE '97)This paper presents a formal requirements engineering method capturing specification, synthesis, and verification. Being multi-paradigm, our approach integrates individual established formal methods: temporal logics are used to express abstract ...
A Formal Framework for ASTRAL Intralevel Proof Obligations
ASTRAL is a formal specification language for real-time systems. It is intended to support formal software development, and therefore has been formally defined. This paper focuses on how to formally prove the mathematical correctness of ASTRAL ...
A case study on the lightweight verification of a multi-threaded task server
We present a case study on the verification of the design of a commercial multi-threaded task server (MTTS), developed by the Novabase company, used for massively parallelizing computational tasks. In a first stage, we employed the Plural tool, which is ...
Comments