Abstract
The concept of set abstraction is introduced as a simple analogy of that of lambda abstraction in the theory of lambda calculus. The set abstraction is concerned with two extensions concerning Prolog language features: “set expression” and “predicate variable.” It has been argued in the literature that the set expression extension to Prolog does really contribute to the power of the language, while the extension of predicate variables does not add anything to Prolog.
Combining these two concepts of extensions to Prolog, we define “set abstraction” as the set expression in which predicate variables are allowed as data objects. In other words, the set abstraction gets involved in the higher order predicate logic. By showing some application examples, it is demonstrated that with the help of predicate variables set abstractions can nicely handle the issues of the second order predicate logic. Further, the implementation programs written in Prolog and Concurrent Prolog are presented.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Bowen, D. L.,DECsystem-10 Prolog User’s Manual, Department of Artificial Intelligence, University of Edinburgh, December, 1981.
Bowen, K. A. and Kowalski, R. A., “Amalgamating Language and Meta Language in Logic Programming,” inLogic Programming (Clark and Tärnlund, eds.) Academic Press, 1982.
Clark, K. L. and Gregory, S., “PARLOG: A Parallel Logic Programming Language,”Research Report DOC83/5, May, 1983.
Clark, K. L., McCabe and Gregory, S., “IC-Prolog language feartures,” inLogic Programming (Clark and Tärnlund, eds.) Academic Press, 1982.
Furukawa, K., Kunifuji, S., Takeuchi, A, and Ueda, K., “The conceptual specification of the Kernel Language version 1,”ICOT Tech. Report TR-054, 1984.
Futamura, Y., “Partial computation of programs,”Proc. of the RIMS Symposia on Software Science and Engineering, Kyoto, LNCS, Springer 147, pp. 255–295, 1982.
Goebel, R., “Interpreting descriptions in a Prolog-based Knowledge Representation System,”Proc. of the 9th IJCAI-85, pp. 711–716, 1985.
Hirakawa, H. and Chikayama, T., “Eager and Lazy Enumerations in Concurrent Prolog,”Proc. of 2nd Intern. Logic Programming Conf., pp. 89–100, 1984.
Kahn, K.,The automatic translation of Prolog programs to Lisp via partial evaluation, UPMAIL, Dept. of Computing Science, Uppsala Univ., Uppsala, Sweden, 1982.
Kahn, K., “Pure Prolog Interpreter in Concurrent Prolog,”Presentation Notes at ICOT, 1983.
Kahn, K., “A primitive for the control of logic programs,”Proc. of the 1984 International Symposium on Logic Programming, Atlantic City, NJ, pp. 242–251, 1984.
Komorowski, H. J., “A specification of an abstract Prolog machine and its application to partial evaluation,”Linkoping Studies in Science and Technology Dissertation, No. 69, Software Systems Research Center, Linkoping Univ., 1981.
Kowalski, R. A., “Predicate Logic as Programming Language,”Proc. IFIP-74 Congress, North-Holland, pp. 569–574, 1974.
Kunifuji, S., Asou, M., Sakai, K., Miyachi, T., Kitakami, H., Yokata, H., Yasukawa, H. and Furukawa, K., “Amalgamation of object knowledge and meta knowledge in Prolog and its application,”Reprint 30-1, Knowledge Engineering and Artificial Intelligence Working Group of the Inform. Process. Soc. of Japan, alsoICOT Tech. Report TR-009 [in Japanese], 1983.
Naish, L., “All solutions predicates in Prolog,”Proc. of the 1985 Symposium on Logic Programming, at Boston, MA, pp. 73–77, 1985.
Nakashima, H., “Term Description: A simple powerful extension to Prolog data structure,”Proc. of the 9th IJCAI-85, pp. 708–710, 1985.
Shapiro, E. Y., “A subset of Concurent Prolog and its interpreter,”ICOT Tech. Report TR-003, 1983.
Takeuchi, A. and Furukawa, K., “Partial evaluation of Prolog programs and its application to meta programming,”ICOT Technical Report TR-109, 1985.
Tanaka, H., Koyama, H. and Okumura, M., “Knowledge representation in Prolog and its applications,”Computer Software Vol. 3, No. 4, pp. 12–20 [in Japanese], Japan Society for Software Science and Technology, 1986.
Tanaka, J., Yokomori, T. and Kishishita, M., “AND-OR Queuing in Extended Concurrent Prolog,”Proc. of the Logic Programming Conference’85, Tokyo,Lecture Notes in Computer Science, 221, Springer, pp. 156–167, 1986.
Warren, D. H. D., “Higher-order Extensions to Prolog—Are They Needed?,”D. A. I. Research paper No. 154, University of Edinburgh, also inMachine Intelligence, Vol. 10, Univ. of Edinburgh, pp. 441–453, 1982.
Yokomori, T., “A note on the set abstraction in logic programming language,”Proc. of the International Conference on FGCS’84, Tokyo, pp. 333–340, 1984.
Author information
Authors and Affiliations
About this article
Cite this article
Yokomori, T. Set abstraction—An extension of all solutions predicate in logic programming language. New Gener Comput 5, 227–248 (1987). https://doi.org/10.1007/BF03037464
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF03037464