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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
P. Aczel. An introduction to inductive definitions. In J. Barwise, editor, Handbook of Mathematical Logic, pages 739–82. North-Holland, Amsterdam, 1977.
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.
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.
F.L Bauer and H. Wössner. Algorithmic Language and Program Development. Springer-Verlag, 1982.
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.
W. Bibel. Syntax-directed, semantics-supported program synthesis. Artificial Intelligence, 14:243–261, 1980.
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.
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.
K.L. Clark. Predicate logic as a computational formalism. Technical Report TOC 79/59, Imperial College, 1979.
Masami Hagiya and Takafumi Sakurai. Foundation of logic programming based on inductive definition. New Generation Computing, 2:59–77, 1984.
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.
Berthold Hoffmann and Bernd Krieg-Brückner (Eds.). Program Development by Specification and Transformation. Springer LNCS 680, 1993.
C.J. Hogger. Derivation of logic programs. JACM, 28(2):372–392, April 1981.
Gérard Huet. A unification algorithm for typed lambda-calculus. Theoretical Computer Science, pages 27–57, 1975.
Gérard Huet and Bernard Lang. Proving and applying program transformations expressed with second-order patterns. Acta Informatica, pages 31–55, 1978.
Richard O'Keefe. The Craft of Prolog. MIT Press, Cambridge, Massachusetts, 1990.
Helmut A. Partsch. Specification and Transformation of Programs. Springer-Verlag, 1990.
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.
Lawrence C. Paulson. Isabelle: a generic theorem prover; with contributions by Tobias Nipkow. LNCS-828. Springer, Berlin, 1994.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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