Abstract
Providing a clean procedural semantics of the “Negation As Failure rule” in Logic Programming has been an open problem for some time now. This rule has been treated as a technique in nonmonotonic reasoning, not as a rule in classical logic. This paper contains a demonstration of the negation as failure rule as a resolution procedure in first-order logic. We present a sound and complete resolution scheme for negation as failure rule for the larger class of constraint logic programs. The approach is to consider a canonical partition of the completion of a definite (constraint) program into the IF and the FI programs. We show that a negated goal, provable from the completed definite program is provable from just the FI part. The clauses in this program have a structure dual to that of definite Horn clauses. We describe a sound and complete linear resolution rule for this fragment, and show that a resolution proof of the negated goal from the FI part corresponds to a finite failure tree resulting from classical linear resolution applied to the goal on the If part of the original definite program. Our work shows that negation as failure rule can be computationally efficient in the sense that the SLD-resolution on the If part of a definite program along with the negation as failure rule is more efficient than a direct resolution procedure on the completion of that program.
Similar content being viewed by others
References
Apt, K. R. (1990). Logic Programming, in J. van Leeuwen (ed.), Handbook of Theoretical Computer Science. Elsevier, New York, Vol B, 493-574.
Barbuti, R., Mancarella, P., Pedreschi, D, Turini, F. (1990). A Transformational Approach To Negation In Logic Programming. Journal of Logic Programming8:201-228.
Bruscoli, P., Levi, F., Levi, G., & Meo, M. C. (1993). Intensional Negation In Constraint Logic Programs. Technical Report TR-11/93, Dipartimento Di Informatica, University Di Pisa.
Chandru, V., Roy, S., & Ramesh, S. (1996). Constructive Negation in Definite Logic Programs. Proceedings of 2nd Asian Computing Science Conference, ASIAN'96, 335-36, LNCS 1179, Springer.
Chang, C. L. & Lee, R. C. T. (1973). Symbolic Logic and Mechanical Theorem Proving. Academic Press, New York.
Clark, K. L. (1978). Negation as Failure, in H. Gallaire and J. Minker, (eds.), Logic and Databases. Plenum Press, New York, 293-322.
Jaffar, J. & Lassez, J.-L. (1986). Constraint Logic Programming, Technical Report 86/73, Department of Computer Science, Monash University.
Jaffar, J., & Lassez, J.-L. (1987). Constraint Logic Programming. Proc. 14th ACM Symposium on Principles of Programming Languages, Munich, 111-19.
Jaffar, J., Lassez, J.-L., & Lloyd, J.W. (1983). Completeness of Negation as Failure Rule. Proc. of 8th IJCAI, Karlsruhe, 500-506.
Jaffar, J., Lassez, J.-L., & Maher, M. J. (1986). Some Issues and Trends in the Semantics of Logic Programming. Proc. 3rd International Conference on Logic Programming, LNCS 225, Springer-Verlag, 223-241.
Jaffer, J., & Maher, M. J. (1994). Constraint Logic programming: A survey. Journal of Logic Programming19,20:503-581.
Lloyd, J. W. (1987). Foundations of Logic Programming, 2nd edition, Springer, Berlin.
Loveland, D. W. (1978). Automated Theorem Proving: A Logical Basis, North Holland, New York.
Shoenfield, J. (1967). Mathematical Logic, Addison-Wesley, Reading, Mass.
Wolfram, D., Maher, M., & Lassez, J.-L. (1984). A Unified Treatment of Resolution Strategies for Logic Programs. Proc. 2nd International Conference on Logic Programming, 263-276.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Chandru, V., Roy, S. & Subrahmanyam, R. Negation as Failure as Resolution. Constraints 3, 315–329 (1998). https://doi.org/10.1023/A:1009724005666
Issue Date:
DOI: https://doi.org/10.1023/A:1009724005666