Combining Logic Programs and Monadic Second Order Logics by Program Transformation

  • Fabio Fioravanti
  • Alberto Pettorossi
  • Maurizio Proietti
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2664)


We present a program synthesis method based on unfold/fold transformation rules which can be used for deriving terminating definite logic programs from formulas of the Weak Monadic Second Order theory of one successor (WS1S). This synthesis method can also be used as a proof method which is a decision procedure for closed formulas of WS1S. We apply our synthesis method for translating CLP(WS1S) programs into logic programs and we use it also as a proof method for verifying safety properties of infinite state systems.


Model Check Logic Program Decision Procedure Transformation Rule Order Logic 
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 and R. N. Bol. Logic programming and negation: A survey. Journal of Logic Programming, 19, 20:9–71, 1994.CrossRefMathSciNetGoogle Scholar
  2. 2.
    D. Basin and S. Friedrich. Combining WS1S and HOL. In D.M. Gabbay and M. de Rijke (eds.), Frontiers of Combining Systems 2, volume 7 of Studies in Logic and Computation, pp. 39–56. Research Studies Press/Wiley, 2000.Google Scholar
  3. 3.
    D. Basin and N. Klarlund. Automata based symbolic reasoning in hardware verification. The Journal of Formal Methods in Systems Design, 13(3):255–288, 1998.CrossRefGoogle Scholar
  4. 4.
    J. R. Büchi. Weak second order arithmetic and and finite automata. Z. Maath Logik Grundlagen Math, 6:66–92, 1960.zbMATHCrossRefGoogle Scholar
  5. 5.
    W. Chen and D. S. Warren. Tabled evaluation with delaying for general logic programs. JACM, 43(1), 1996.Google Scholar
  6. 6.
    G. Delzanno and A. Podelski. Model checking in CLP. In R. Cleaveland (ed.), Proc. TACAS’99, LNCS 1579, pp. 223–239. Springer, 1999.Google Scholar
  7. 7.
    F. Fioravanti, A. Pettorossi, and M. Proietti. Verification of sets of infinite state systems using program transformation. In A. Pettorossi (ed.), Proc. LOPSTR 2001, LNCS 2372, pp. 111–128. Springer, 2002.Google Scholar
  8. 8.
    L. Fribourg and H. Olsén. Proving safety properties of infinite state systems by compilation into Presburger arithmetic. In Proc. CONCUR’ 97, LNCS 1243, pp. 96–107. Springer, 1997.Google Scholar
  9. 9.
    J. G. Henriksen, J. L. Jensen, M. E. Jørgensen, N. Klarlund, R. Paige, T. Rauhe, and A. Sandholm. Mona: Monadic second-order logic in practice. In E. Brinksma et al. (eds.), Proc. TACAS’ 95, LNCS 1019, pp. 89–110. Springer, 1996.Google Scholar
  10. 10.
    J. Jaffar and M. Maher. Constraint logic programming: A survey. Journal of Logic Programming, 19/20:503–581, 1994.CrossRefMathSciNetGoogle Scholar
  11. 11.
    N. Klarlund, M. Nielsen, and K. Sunesen. Automated logical verification based on trace abstraction. In Proc. 15th ACM Symposium on Principles of Distributed Computing, pp. 101–110. ACM, 1996.Google Scholar
  12. 12.
    L. Lamport. A new solution of Dijkstra’s concurrent programming problem. CACM, 17(8): 453–455, 1974.zbMATHMathSciNetGoogle Scholar
  13. 13.
    M. Leuschel and T. Massart. Infinite state model checking by abstract interpretation and program specialization. In A. Bossi (ed.), Proc. LOPSTR’ 99, LNCS 1817, pp. 63–82. Springer, 1999.Google Scholar
  14. 14.
    J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, Berlin, 1987.zbMATHGoogle Scholar
  15. 15.
    U. Nilsson and J. Lübcke. Constraint logic programming for local and symbolic model-checking. In J. W. Lloyd et al. (eds.), Proc. CL’2000, LNAI 1861, pp. 384–398, 2000.Google Scholar
  16. 16.
    A. Pettorossi and M. Proietti. Perfect model checking via unfold/fold transformations. In J. W. Lloyd et al. (eds.), Proc. CL’2000, LNAI 1861, pp. 613–628. Springer, 2000.Google Scholar
  17. 17.
    A. Pettorossi and M. Proietti. Program Derivation = Rules + Strategies. In A. Kakas and F. Sadri (eds.), Computational Logic: Logic Programming and Beyond (in honour of Bob Kowalski, Part I), LNCS 2407, pp. 273–309. Springer, 2002.Google Scholar
  18. 18.
    A. Pettorossi, M. Proietti, and S. Renault. Reducing nondeterminism while specializing logic programs. In Proc. 24-th POPL, pp. 414–427. ACM Press, 1997.Google Scholar
  19. 19.
    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 Proc. CAV’ 97, LNCS 1254, pp. 143–154. Springer, 1997.Google Scholar
  20. 20.
    A. Roychoudhury and I.V. Ramakrishnan. Automated inductive verification of parameterized protocols. In Proc. CAV 2001, pp. 25–37, 2001.Google Scholar
  21. 21.
    K. Sagonas, T. Swift, D. S. Warren, J. Freire, P. Rao, B. Cui, and E. Johnson. The XSB system, version 2.2., 2000.Google Scholar
  22. 22.
    J.W. Thatcher and J.B. Wright. Generalized finite automata with an application to a decision problem of second-order logic. Mathematical System Theory, 2:57–82, 1968.CrossRefMathSciNetGoogle Scholar
  23. 23.
    The MAP group. The MAP transformation system. Available from, 1995–2002.
  24. 24.
    W. Thomas. Languages, automata, and logic. In G. Rozenberg and A. Salomaa (eds.), Handbook of Formal Languages, volume 3, pp. 389–455. Springer, 1997.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Fabio Fioravanti
    • 1
  • Alberto Pettorossi
    • 2
  • Maurizio Proietti
    • 1
  1. 1.IASI-CNRRomaItaly
  2. 2.DISPUniversity of Roma Tor VergataRomaItaly

Personalised recommendations