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.


Logic Program Inference Rule Logic Programming Function Symbol Proof System 
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. [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