Abstract Conjunctive Partial Deduction Using Regular Types and Its Application to Model Checking

  • Michael Leuschel
  • Stefan Gruner
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2372)


We present an abstract partial deduction technique which uses regular types as its domain and which can handle conjunctions, and thus perform deforestation and tupling. We provide a detailed description of all the required operations and present an implementation within the ecce system. We discuss the power of this new specialisation algorithm, especially in the light of verifying and specialising infinite state process algebras. Here, our new algorithm can provide a more precise treatment of synchronisation and can be used for refinement checking.


Model Check Logic Program Logic Programming Partial Evaluation Abstract Interpretation 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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 Scholar
  2. 2.
    M. Bruynooghe. A practical framework for the abstract interpretation of logic programs. The Journal of Logic Programming, 10:91–124, 1991.CrossRefMathSciNetzbMATHGoogle Scholar
  3. 3.
    M. Bruynooghe, H. Vandecasteele, D. A. de Waal, and M. Denecker. Detecting unsolvable queries for definite logic programs. In C. Palamidessi, H. Glaser, and K. Meinke, editors, Proceedings of ALP/PLILP’98, LNCS 1490, pages 118–133. Springer-Verlag, 1998.Google Scholar
  4. 4.
    W. Charatonik and A. Podelski. Set-based analysis of reactive infinite-state systems. In B. Steffen, editor, Tools and Algorithms for the Construction and Analysis of Systems, LNCS 1384, pages 358–375. Springer-Verlag, March 1998.CrossRefGoogle Scholar
  5. 5.
    E. M. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 1999.Google Scholar
  6. 6.
    C. Consel and S. C. Khoo. Parameterized partial evaluation. ACM Transactions on Programming Languages and Systems, 15(3):463–493, 1993.CrossRefMathSciNetGoogle Scholar
  7. 7.
    P. Cousot and R. Cousot. Abstract interpretation and application to logic programs. The Journal of Logic Programming, 13(2 & 3):103–179, 1992.zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    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 Scholar
  9. 9.
    D. De Schreye, R. Glück, J. Jørgensen, M. Leuschel, B. Martens, and M. H. Sørensen. Conjunctive partial deduction: Foundations, control, algorithms and experiments. The Journal of Logic Programming, 41(2 & 3):231–277, November 1999.Google Scholar
  10. 10.
    D. A. de Waal and J. Gallagher. The applicability of logic program analysis and transformation to theorem proving. In A. Bundy, editor, Automated Deduction— CADE-12, pages 207–221. Springer-Verlag, 1994.Google Scholar
  11. 11.
    G. Delzanno and A. Podelski. Model checking in CLP. In R. Cleaveland, editor, Proceedings of TACAS’99, LNCS 1579, pages 223–239. Springer-Verlag, 1999.Google Scholar
  12. 12.
    A. Finkel and P. Schnoebelen. Well-structured transition systems everywhere ! Theoretical Computer Science, 256(1–-2):63–92, 2001.zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    F. Fioravanti, A. Pettorossi, and M. Proietti. Verifying ctl properties of infinite-state systems by specializing constraint logic programs. In Proceedings of VCL’2001, Florence, Italy, September 2001.Google Scholar
  14. 14.
    L. Fribourg. Constraint logic programming applied to model checking. In Proceedings of LOPSTR’99, LNCS 1817, pages 30–41. Springer-Verlag, 1999.Google Scholar
  15. 15.
    J. Gallagher. A system for specialising logic programs. Technical Report TR-91-32, University of Bristol, November 1991.Google Scholar
  16. 16.
    J. Gallagher. Tutorial on specialisation of logic programs. In Proceedings of PEPM’93, pages 88–98. ACM Press, 1993.Google Scholar
  17. 17.
    J. Gallagher. A bottom-up analysis toolkit. Technical Report CSTR-95-016, University of Bristol, July 1995.Google Scholar
  18. 18.
    J. Gallagher and D. A. de Waal. Fast and precise regular approximations of logic programs. In P. Van Hentenryck, editor, Proceedings of ICLP’94, pages 599–613. The MIT Press, 1994.Google Scholar
  19. 19.
    J. P. Gallagher and J. C. Peralta. Using regular approximations for generalisation during partial evaluation. In J. Lawall, editor, Proceedings of PEPM’00, pages 44–51. ACM Press, 2000.Google Scholar
  20. 20.
    J. P. Gallagher and J. C. Peralta. Regular tree languages as an abstract domain in program specialisation. Higher Order and Symbolic Computation, 14(2–-3):143–172, November 2001.Google Scholar
  21. 21.
    J. P. Gallagher and G. Puebla. Abstract interpretation over non-deterministic finite tree automata for set-based analysis of logic programs. In S. Krishnamurthi and C. R. Ramakrishnan, editors, Proceedings of PADL 2002, LNCS 2257, pages 243–261. Springer-Verlag, 2002.Google Scholar
  22. 22.
    M. Hermenegildo, R. Warren, and S. K. Debray. Global flow analysis as a practical compilation tool. The Journal of Logic Programming, 13(4):349–366, 1992.CrossRefGoogle Scholar
  23. 23.
    N. D. Jones. Combining abstract interpretation and partial evaluation. In P. Van Hentenryck, editor, Static Analysis, Proceedings of SAS’97, LNCS 1302, pages 396–405, Paris, 1997. Springer-Verlag.CrossRefGoogle Scholar
  24. 24.
    N. D. Jones, C. K. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Prentice Hall, 1993.Google Scholar
  25. 25.
    J. Jørgensen, M. Leuschel, and B. Martens. Conjunctive partial deduction in practice. In J. Gallagher, editor, Proceedings of LOPSTR’96, LNCS 1207, pages 59–82, Stockholm, Sweden, August 1996. Springer-Verlag.Google Scholar
  26. 26.
    J.-L. Lassez, M. Maher, and K. Marriott. Unification revisited. In J. Minker, editor, Foundations of Deductive Databases and Logic Programming, pages 587–625. Morgan-Kaufmann, 1988.Google Scholar
  27. 27.
    M. Leuschel. The ecce partial deduction system and the dppd library of benchmarks. Obtainable via, 1996–2000.
  28. 28.
    M. Leuschel. Program specialisation and abstract interpretation reconciled. In J. Jaffar, editor, Proceedings of JICSLP’98, pages 220–234, Manchester, UK, June 1998. MIT Press.Google Scholar
  29. 29.
    M. Leuschel. Logic program specialisation. In J. Hatcliff, T.Æ. Mogensen, and P. Thiemann, editors, Partial Evaluation: Practice and Theory, LNCS 1706, pages 155–188, Copenhagen, Denmark, 1999. Springer-Verlag.Google Scholar
  30. 30.
    M. Leuschel. Logic program specialisation and top-down abstract interpretation reconciled. Technical Report DSSE-TR-2000-3, Department of Electronics and Computer Science, University of Southampton, May 2000.Google Scholar
  31. 31.
    M. Leuschel, L. Adhianto, M. Butler, C. Ferreira, and L. Mikhailov. Animation and model checking of CSP and B using prolog technology. In Proceedings of VCL’2001, pages 97–109, Florence, Italy, September 2001.Google Scholar
  32. 32.
    M. Leuschel and M. Bruynooghe. Logic program specialisation through partial deduction: Control issues. Theory and Practice of Logic Programming, Special issue on program development, 2(4 & 5), July 2002. To appear.Google Scholar
  33. 33.
    M. Leuschel and D. DeSchreye. Logic program specialisation: How to be more specific. In H. Kuchen and S. Swierstra, editors, Proceedings of PLILP’96, LNCS 1140, pages 137–151, Aachen, Germany, September 1996. Springer-Verlag.Google Scholar
  34. 34.
    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 CL’2000, LNAI 1861, pages 101–115, London, UK, 2000. Springer-Verlag.Google Scholar
  35. 35.
    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 Scholar
  36. 36.
    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 Scholar
  37. 37.
    M. Leuschel and T. Massart. Infinite state model checking by abstract interpretation and program specialisation. In A. Bossi, editor, Logic-Based Program Synthesis and Transformation. Proceedings of LOPSTR’99, LNCS 1817, pages 63–82, Venice, Italy, September 1999.Google Scholar
  38. 38.
    M. Leuschel and T. Massart. Logic programming and partial deduction for the verification of reactive systems: An experimental evaluation. In G. Norman, M. Kwiatkowska, and D. Guelev, editors, Proceedings of AVoCS 2002, Second Workshop on Automated Verification of Critical Systems, pages 143–149, Brimingham, UK, 2002.Google Scholar
  39. 39.
    J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1987.Google Scholar
  40. 40.
    J. W. Lloyd and J. C. Shepherdson. Partial evaluation in logic programming. The Journal of Logic Programming, 11(3& 4):217–242, 1991.CrossRefMathSciNetzbMATHGoogle Scholar
  41. 41.
    K. Marriott, L. Naish, and J.-L. Lassez. Most specific logic programs. Annals of Mathematics and Artificial Intelligence, 1:303–338, 1990.zbMATHCrossRefGoogle Scholar
  42. 42.
    P. Mildner. Type Domains for Abstract Interpretation: A Critical Study. PhD thesis, Dept. of Computing Sc. and Information Techn., PO-Box 331, S-75105 Uppsala, 1999.Google Scholar
  43. 43.
    U. Nilsson and J. Lübcke. Constraint logic programming for local and symbolic model checking. In J. Lloyd, editor, Proceedings of CL’2000, LNAI 1861, pages 384–398, London, UK, 2000. Springer-Verlag.Google Scholar
  44. 44.
    G. Puebla, J. Gallagher, and M. Hermenegildo. Towards integrating partial evaluation in a specialization framework based on generic abstract interpretation. In M. Leuschel, editor, Proceedings of the ILPS’97 Workshop on Specialisation of Declarative Programs and its Application, K.U. Leuven, Tech. Rep. CW 255, pages 29–38, Port Jefferson, USA, October 1997.Google Scholar
  45. 45.
    G. Puebla and M. Hermenegildo. Abstract Multiple Specialization and its Application to Program Parallelization. J. of Logic Programming. Special Issue on Synthesis, Transformation and Analysis of Logic Programs, 41(2&3):279–316, November 1999.Google Scholar
  46. 46.
    G. Puebla, M. Hermenegildo, and J. Gallagher. An Integration of Partial Evaluation in a Generic Abstract Interpretation Framework. In O. Danvy, editor, Proceedings of PEPM’99, number NS-99-1 in BRISC Series, pages 75–85. University of Aarhus, Denmark, January 1999.Google Scholar
  47. 47.
    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 of CAV’97, LNCS 1254, pages 143–154. Springer-Verlag, 1997.Google Scholar
  48. 48.
    A. W. Roscoe. The Theory and Practice of Concurrency. Prentice-Hall, 1999.Google Scholar
  49. 49.
    E. Yardeni and E. Shapiro. A type system for logic programs. The Journal of Logic Programming, 10(2):125–154, 1990.CrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Michael Leuschel
    • 1
  • Stefan Gruner
    • 1
  1. 1.Department of Electronics and Computer ScienceUniversity of SouthamptonHighfield, SouthamptonUK

Personalised recommendations