Abstract
We try to formalize the intuitive reasoning which we normally use to get convinced that a query has successful LD-derivations in a program. To this purpose we define the class of programs and queries without failures which have the property of not having finitely failing derivations. Such property is simple to verify, it is preserved through leftmost unfolding and it can be useful both in verifying properties of logic programs and in program transformation. The class of programs without failures is very restricted but in program transformations it is sufficient that only some predicates in the program are in the class.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
K. R. Apt. Introduction to Logic Programming. In J. van Leeuwen, editor, Hand-book of Theoretical Computer Science, volume B: Formal Models and Semantics. Elsevier, Amsterdam and The MIT Press, Cambridge, 1990.
K. R. Apt. Declarative programming in Prolog. In D. Miller, editor, Proceedings of the 1993 International Symposium on Logic Programming, pages 12–35. The MIT Press, 1993.
K. R. Apt. From Logic Programming to Prolog. Prentice Hall International Series in Computer Science, 1997.
K. R. Apt and E. Marchiori. Reasoning about Prolog programs: from modes through types to assertions. Formal Aspects of Computing, 6(6A):743–765, 1994.
K. R. Apt and D. Pedreschi. Reasoning about termination of pure Prolog programs. Information and Computation, 106(1):109–157, 1993.
A. Bossi and N. Cocco. Verifying correctness of logic programs. In J. Diaz and F. Orejas, editors, TAPSOFT’ 89, Barcelona, Spain, March 1989, (Lecture Notes in Computer Science, vol. 352), pages 96–110. Springer-Verlag, 1989.
A. Bossi and N. Cocco. Preserving Universal Termination through Unfold/Fold. In G. Levi and M. Rodriguez-Artalejo, editors, Algebraic and Logic Programming-Proceedings ALP’94, volume 850 of Lecture Notes in Computer Science, pages 269–286. Springer-Verlag, Berlin, 1994.
A. Bossi and N. Cocco. Replacement Can Preserve Termination. In J. Gallagher, editor, Proceedings LOPSTR’96, volume 1207 of Lecture Notes in Computer Science, pages 104–129. Springer-Verlag, Berlin, 1997.
A. Bossi, N. Cocco, and S. Etalle. Transforming Normal Programs by Replacement. In A. Pettorossi, editor, Meta Programming in Logic-Proceedings META’92, volume 649 of Lecture Notes in Computer Science, pages 265–279. Springer-Verlag, Berlin, 1992.
A. Bossi, N. Cocco, and M. Fabris. Norms on terms and their use in proving universal termination of a logic program. Theoretical Computer Science, 124:297–328, 1994.
J. Boye and J. Maluszynski. Two Aspects of Directional Types. In Sterling, editor, Proc. Int’l Conf. on Logic Programming, pages 747–761. MIT Press, 1995.
F. Bronsard, T. K. Lakshman, and U. S. Reddy. A framework of directionalities for proving termination of logic programs. In K. R. Apt, editor, Proceedings of the Joint International Conference and Symposium on Logic Programming, pages 321–335. The MIT Press, 1992.
L. Colussi and E. Marchiori. Proving Correctness of Logic Programs using axiomatic semantics. In Proc. Eighth Int’l Conf. on Logic Programming, pages 629–644. MIT Press, 1991.
S. Debray, P. Lopez-Garcia, and M. Hermenegildo. Non-Failure Analysis for Logic Programs. In Proceedings of the International Symposium on Logic Programming, pages 48–62, 1997.
P. Deransart. Proof Methods of Declarative Properties of Definite Programs. Theoretical Computer Science, 118:99–166, 1993.
W. Drabent and J. Maluszynski. Inductive assertion method for logic programs. Theoretical Computer Science, 59:133–155, 1988.
P.A. Gardner and J.C. Shepherdson. Unfold/fold Transformations of Logic Programs. In J-L Lassez and editor G. Plotkin, editors, Computational Logic: Essays in Honor of Alan Robinson. 1991.
J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, Berlin, 1987. Second edition.
M.J. Maher. Correctness of a Logic Program Transformation System. IBM Research Report RC13496, T.J. Watson Research Center, 1987.
D. Pedreschi and S. Ruggeri. Verification of Metainterpreters. Journal of Logic and Computation, 7(2), 1997.
A. Pettorossi and M. Proietti. Transformation of Logic Programs: Foundations and Techniques. Journal of Logic Programming, 19(20):261–320, 1994.
M. Proietti and A. Pettorossi. Synthesis of Programs from Unfold/Fold Proofs. In Y. Deville, editor, LOPSTR’93, pages 141–158, 1994.
T. Sato. An equivalence preserving first order unfold/fold transformation system. In Second Int. Conference on Algebraic and Logic Programming, Nancy, France, October 1990, (Lecture Notes in Computer Science, Vol. 463), pages 175–188. Springer-Verlag, 1990.
D. De Schreye and S. Decorte. Termination of Logic Programs: the never-ending story. Journal of Logic Programming, 19–20:199–260, 1994.
L. Sterling and E. Shapiro. The Art of Prolog. The MIT Press, 1986.
H. Tamaki and T. Sato. Unfold/Fold Transformations of Logic Programs. In Sten-Åke Tärnlund, editor, Proc. Second Int’l Conf. on Logic Programming, pages 127–139, 1984.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bossi, A., Cocco, N. (1998). Programs Without Failures. In: Fuchs, N.E. (eds) Logic Program Synthesis and Transformation. LOPSTR 1997. Lecture Notes in Computer Science, vol 1463. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49674-2_2
Download citation
DOI: https://doi.org/10.1007/3-540-49674-2_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65074-4
Online ISBN: 978-3-540-49674-8
eBook Packages: Springer Book Archive