Skip to main content

Deriving and applying logic program transformers

  • Knowledge Representation and Programming Languages
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1023))

Abstract

We present a methodology for logic program development based on the use of verified transformation templates. We use the Isabelle Logical Framework to formalize transformation templates as inference rules. We derive these rules in higher-order logic and afterwards use higher-order unification to apply them to develop programs in a deductive synthesis style. Our work addresses the pragmatics of template formalization and application as well as which theories and semantics of programs and data we require to derive templates.

The authors were funded by the German Ministry for Research and Technology (BMFT) under grant ITS 9102. Responsibility for the content lies with the authors. The authors thank Alan Smaill for pointing them to some of the literature on logic programs as inductive definitions.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. P. Aczel. An introduction to inductive definitions. In J. Barwise, editor, Handbook of Mathematical Logic, pages 739–82. North-Holland, Amsterdam, 1977.

    Google Scholar 

  2. Martin Aronsson, Lars-Henrik Eriksson, Lars Hallnäs, and Per Kreuger. A survey of GLCA: A definitional approach to logic programming. In Extensions of Logic Programming, LNCS-475, pages 49–100. Springer-Verlag, 1991.

    Google Scholar 

  3. CIP System Group: F. L. Bauer et al. The Munich Project CIP, Volume II: The Program Transformation System CIP-S, volume 292 of Lecture Notes in Computer Science. Springer-Verlag, 1987.

    Google Scholar 

  4. F.L Bauer and H. Wössner. Algorithmic Language and Program Development. Springer-Verlag, 1982.

    Google Scholar 

  5. Yves Bertot and Ranan Fraer. Reasoning with executable specifications. In International Joint Conference of Theory and Practice of Software Development (TAPSOFT/FASE), volume 915. Springer-Verlag LNCS, May 1995.

    Google Scholar 

  6. W. Bibel. Syntax-directed, semantics-supported program synthesis. Artificial Intelligence, 14:243–261, 1980.

    Google Scholar 

  7. R.M. Burstall and J. Darlington. A transformation system for developing recursive programs. Journal of the Association for Computing Machinery, 24(1):44–67, 1977.

    Google Scholar 

  8. K. L. Clark and S-Å. Tärnlund. A first order theory of data and programs. In B. Gilchrist, editor, Information Processing, pages 939–944. IFIP, 1977.

    Google Scholar 

  9. K.L. Clark. Predicate logic as a computational formalism. Technical Report TOC 79/59, Imperial College, 1979.

    Google Scholar 

  10. Masami Hagiya and Takafumi Sakurai. Foundation of logic programming based on inductive definition. New Generation Computing, 2:59–77, 1984.

    Google Scholar 

  11. P. Hill and J. Lloyd. The Gödel Report. Technical Report TR-91-02, Department of Computer Science, University of Bristol, March 1991. Revised in September 1991.

    Google Scholar 

  12. Berthold Hoffmann and Bernd Krieg-Brückner (Eds.). Program Development by Specification and Transformation. Springer LNCS 680, 1993.

    Google Scholar 

  13. C.J. Hogger. Derivation of logic programs. JACM, 28(2):372–392, April 1981.

    Google Scholar 

  14. Gérard Huet. A unification algorithm for typed lambda-calculus. Theoretical Computer Science, pages 27–57, 1975.

    Google Scholar 

  15. Gérard Huet and Bernard Lang. Proving and applying program transformations expressed with second-order patterns. Acta Informatica, pages 31–55, 1978.

    Google Scholar 

  16. Richard O'Keefe. The Craft of Prolog. MIT Press, Cambridge, Massachusetts, 1990.

    Google Scholar 

  17. Helmut A. Partsch. Specification and Transformation of Programs. Springer-Verlag, 1990.

    Google Scholar 

  18. Lawrence C. Paulson. A fixedpoint approach to implementing (co)inductive definitions. In Proc. of 12th International Conference On Automated Deduction (CADE-12), Nancy, France, June 1994. Springer-Verlag.

    Google Scholar 

  19. Lawrence C. Paulson. Isabelle: a generic theorem prover; with contributions by Tobias Nipkow. LNCS-828. Springer, Berlin, 1994.

    Google Scholar 

  20. Lawrence C. Paulson and Andrew W. Smith. Logic programming, functional programming, and inductive definitions. In Extensions of Logic Programming, LNCS-475, pages 283–310. Springer-Verlag, 1991.

    Google Scholar 

  21. M.H. van Emden and R.A. Kowalski. The semantics of predicate logic as a programming language. Journal of the ACM, 23:733–42, 1976.

    Google Scholar 

  22. Mattias Waldau. Formal validation of transformation schemata. In T. Clement and K.-K. Lau, editors, Logic Program Synthesis and Transformation, pages 97–110. Springer-Verlag, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Kanchana Kanchanasut Jean-Jacques Lévy

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Anderson, P., Basin, D. (1995). Deriving and applying logic program transformers. In: Kanchanasut, K., Lévy, JJ. (eds) Algorithms, Concurrency and Knowledge. ACSC 1995. Lecture Notes in Computer Science, vol 1023. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60688-2_52

Download citation

  • DOI: https://doi.org/10.1007/3-540-60688-2_52

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60688-8

  • Online ISBN: 978-3-540-49262-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics