Hostname: page-component-6b989bf9dc-476zt Total loading time: 0 Render date: 2024-04-15T02:49:43.620Z Has data issue: false hasContentIssue false

Unfold/fold transformations of logic programs

Published online by Cambridge University Press:  04 March 2009

J. C. Shepherdson
Affiliation:
Mathematics Department, University of Bristol, Bristol, Uk

Abstract

Unfold/fold transformations have been used in logic programming for some years to transform programs into more efficient ones. We describe recent work on the extent to which these transformations produce programs which are equivalent to the original one. Various notions of equivalence are considered: same success set; finite failure set; least Herbrand model; completion. This is used to illustrate the rather unsatisfactory relationship between logic programming and logic shown by the wide variety of different declarative semantics proposed for logic programs.

Type
Research Article
Copyright
Copyright © Cambridge University Press 1992

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Burstall, R.M. and Darlington, J. (1997) A transformation system for developing recursive programs. J. ACM 24 4467.CrossRefGoogle Scholar
Clark, K. L. (1979) Predicate logic as a computational formalism. Imperial College Research Monograph 79/59.TO.Google Scholar
Clark, K.L. and Sickel, S. (1977) Predicate logic: a calculus for deriving programs, procs. IJCAI-77, Boston.Google Scholar
Gardner, P.A. and Shepherdson, J.C. (1990) Unfold/fold transformations of logic programs. Festschrift in Honour of Alan Robinson. Oxford University press, London.Google Scholar
Hogger, C.J. (1981) Derivation of logic programs. J. ACM 28 372391.CrossRefGoogle Scholar
Kanamori, T. and Horiuchi, K. (1987) Construction of logic programs based on generalized unfold/fold rules. Proc. 4th Int. Conf. on Logic Programming, pp 744768, Melbourne. Also, a preliminary version appeared as ICOT Technical Report TR-177, 1986.Google Scholar
Kanamori, T. and Fujita, H. (1987) Unfold/fold logic program transformation with counters. Presented at US-Japan Workshop on Logic of programs, Honolulu. Also, a preliminary version appeared as ICOT Technical Report TR-179.Google Scholar
Kanamori, T. and Maeji, M. (1986) Derivation of logic programs from implicit definition. ICOT Technical Report TR-178.Google Scholar
Kanamori, T. and Kawamura, T. (19XX) Preservation of stronger equivalence in unfold/fold logic program transformation (II). ICOT Technical Report TF-403.Google Scholar
Kawamura, T. and Kanamori, T. (1988) Preservation of stronger equivalence in unfold/fold logic program translformation. Proc. Int. Conf. Fifth Generation Computer Systems. pp. 413421.Google Scholar
Kunen, K. (1989) Signed data dependencies in logic programs. J. Logic Programming 7 231245.CrossRefGoogle Scholar
Lloyd, J.W. (1987) Foundations of Logic Programming (second ed.). Springer-Verlag, New York.CrossRefGoogle Scholar
Lloyd, J.W. and Shepherdson, J.C. (1988) Partial evaluation in logic programming, Res, Report PM-88-01. Dept. of Maths., Bristol University. To appear J. Logic Programming.Google Scholar
Mather, M. (1988) Correctness of a logic program transformation system, IBM Research Report RC 13496, T.J. Watson Research Center.Google Scholar
Maher, M. (1989) A transformation system for deductive database modules with perfect model semantics. IBM Research Report, T.J. Watson Researh Center.Google Scholar
Manna, Z. and Waldinger, R.J. (19XX) Knowledge and reasoning program synthesis. Artificial Intelligence 6 175208.CrossRefGoogle Scholar
Manna, Z. and Waldinger, R.J. (1979) Synthesis: dreams ⇒ programs. IEEE Trans. Software Engineering 5 294328.CrossRefGoogle Scholar
Przymusinski, T.C. (1988) On the semantics of stratified deductive database. In: Foundations of Deductive Database and Logic Programming (Minker, J., ed.) Morgan Kaufmann publishers, Los Altos, CA, pp. 193216.CrossRefGoogle Scholar
Przymusinski, T.C. (1988a) On the declarative and procedural semantics of logic programs. J. Automated Reasoning 4. In print. (Extended abstract appeared in:Przymusinski T. C. (1988) Perfect model semantics. In: Proc. Fifth Logic Programming Symposium (R. Kowalski and K. Bowen, eds.) pp. 1081–1096.Google Scholar
Seki, H. (1989) Unfold/fold transformation of stratified programs (extended abstract). 6th Int. Conf. Logic Programming, Lisbon. Full revision to appear in Theoret. Comput. Sci.Google Scholar
Seki, H. (1990) Unfold/fold transformation of general logic programs preserving the well-founded semantics. J.Logic Programming to appear.Google Scholar
Shepherdson, J.C. (1988) Language and equality theory in logic programming. Technical Report PM-88-08, Dept. of Mathematics, Bristol University.Google Scholar
Tamaki, H. and Sato, T. (1983) A transformation system for logic programs which preserves equivalence. ICOT TR-018.Google Scholar
Tamaki, H. and Sato, T. (1984) Unfold/fold transformation of logic programs. Proc. 2nd. Int. Logic Programming Conf. Uppsala, pp. 127138.Google Scholar
Tamaki, H. and Sato, T. (1986) A generalized correctness proof of the unfold/fold logic program transformation. Department of Information Science TF86-04, Ibaraki University.Google Scholar
Tamaki, H. (1987) Program transformation in logic programming. (In Japanese.) In: Program Transformation (Fuchi, K., Furukawa, K. and Mizoguchi, F., eds.) Kyoritsu, pp. 3962.Google Scholar
Wegbreit, B. (1976) Goal-directed program transformation. 3rd POPL Symp. Tucson.Google Scholar