Formal validation of transformation schemata

  • Mattias Waldau
Conference paper
Part of the Workshops in Computing book series (WORKSHOPS COMP.)


We present a first-order theory Г, which is used to validate transformation schemata. The theory Г consists of two kinds of axioms. Δ is the subset of the axioms Г which can be executed using a SLD-reso-lution like inference system, and Г-Δ contains first-order programs, as defined by T. Sato [Sat90], and induction axioms. Induction is essential if we want to prove correctness of more elaborate transformation schemata, e.g., a scheme which makes a program tail-recursive.

We show how to prove the correctness of transformation schemata using an ordinary proof system for intuitionistic first-order logic. Let ϑ be a transformation scheme which is proved correct. If we apply the scheme ϑ to a (first-order) program, the resulting program computes the same set of solutions as the original one.

We exemplify the method by proving the correctness of unfold/fold transformation, and of a scheme, which replaces recursion by tail-recursion.


Lution Verse 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Bro87]
    Brough, D.R. and Hogger, CJ. Compiling Associativity into Logic Programs. Tech. Rept. 87/2, Imperial College, London, 1987.Google Scholar
  2. [Bur77]
    Burstall, R.M. and Darlington, J. A transformation System for Developing Recursive Programs. J ACM 24, 1 (1977), 44–67.MathSciNetCrossRefGoogle Scholar
  3. [Cla78]
    Clark, K.L. Negation as failure. In Logic and data bases. Plenum Press, Gallaire, H. and Minker, J., pp. 293-322, New York, 1978.Google Scholar
  4. [Fut86]
    Futamura, Y. Recursion Reduction: A Technique for Designing Efficient Recursive Programs. 1986, Lecture Notes, Uppsala.Google Scholar
  5. [Geg89]
    Gegg-Harrison, T.S. Basic Prolog Schemata. Tech. Rept. CS-1989-20, Dept of Computer Science, Duke University, Durham, North Carolina, 1989.Google Scholar
  6. [Hag84]
    Hagiya, M. and Sakurai, T. Foundation of logic programming based on inductive definition. New Generation Computing 2, 2 (1984), 59–77.MATHCrossRefGoogle Scholar
  7. [Llo87]
    Lloyd, J.W. Foundations of logic programming, Springer-Verlag, 2(1987).Google Scholar
  8. [Mah87]
    Mäher, M.J. Correctness of a Logic Program Transformation System. Tech. Rept., IBM T.J. Watson Research Center, 1987.Google Scholar
  9. [Mar71]
    Martin-Löf, P. Hauptsatz for the intuitionistic theory of iterated inductive definitions. In Proceedings of the Second Scandinavian Logic Symposium, Fenstad, J.E., North-Holland, 1971.Google Scholar
  10. [McC88]
    McCarty, L.T. Clausal intuitionistic logic. JLP 5, 1 (1988).Google Scholar
  11. [Mil89]
    Miller, D. A logical analysis of modules in logic programming. JLP (1989), 79-108.Google Scholar
  12. [O90]
    O’Keefe, R. The craft of Prolog, MIT press (1990).Google Scholar
  13. [Sat90]
    Sato, T. A First Order Unfold/Fold System. Tech. Rept. 90-17, Electrotechnical Laboratory, Umezono, Tsukuba, Ibaraki, Japan 305, 1990.Google Scholar
  14. [Sek89]
    Seki, H. Unfold/Fold Transformation of Stratified Programs. In 6th ICLP, 1989, pp. 554-568.Google Scholar
  15. [Tam84]
    Tamaki, H. and Sato, T. Unfold/Fold transformations of logic programs. In Proceedings of the 2nd ICLP, 1984.Google Scholar
  16. [Wal91]
    Waldau, M., Verification of logic programs using verification sentences, Computing Science Dept, Uppsala University, Sweden, 1991.Google Scholar

Copyright information

© Springer-Verlag London 1992

Authors and Affiliations

  • Mattias Waldau
    • 1
  1. 1.Computing Science DepartmentUppsala UniversityUppsalaSweden

Personalised recommendations