Skip to main content
Log in

Set abstraction—An extension of all solutions predicate in logic programming language

  • Regular Papers
  • Published:
New Generation Computing Aims and scope Submit manuscript

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.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

References

  1. Bowen, D. L.,DECsystem-10 Prolog User’s Manual, Department of Artificial Intelligence, University of Edinburgh, December, 1981.

  2. 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.

  3. Clark, K. L. and Gregory, S., “PARLOG: A Parallel Logic Programming Language,”Research Report DOC83/5, May, 1983.

  4. Clark, K. L., McCabe and Gregory, S., “IC-Prolog language feartures,” inLogic Programming (Clark and Tärnlund, eds.) Academic Press, 1982.

  5. Furukawa, K., Kunifuji, S., Takeuchi, A, and Ueda, K., “The conceptual specification of the Kernel Language version 1,”ICOT Tech. Report TR-054, 1984.

  6. Futamura, Y., “Partial computation of programs,”Proc. of the RIMS Symposia on Software Science and Engineering, Kyoto, LNCS, Springer 147, pp. 255–295, 1982.

    Google Scholar 

  7. Goebel, R., “Interpreting descriptions in a Prolog-based Knowledge Representation System,”Proc. of the 9th IJCAI-85, pp. 711–716, 1985.

  8. Hirakawa, H. and Chikayama, T., “Eager and Lazy Enumerations in Concurrent Prolog,”Proc. of 2nd Intern. Logic Programming Conf., pp. 89–100, 1984.

  9. Kahn, K.,The automatic translation of Prolog programs to Lisp via partial evaluation, UPMAIL, Dept. of Computing Science, Uppsala Univ., Uppsala, Sweden, 1982.

    Google Scholar 

  10. Kahn, K., “Pure Prolog Interpreter in Concurrent Prolog,”Presentation Notes at ICOT, 1983.

  11. 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.

  12. 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.

  13. Kowalski, R. A., “Predicate Logic as Programming Language,”Proc. IFIP-74 Congress, North-Holland, pp. 569–574, 1974.

  14. 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.

  15. Naish, L., “All solutions predicates in Prolog,”Proc. of the 1985 Symposium on Logic Programming, at Boston, MA, pp. 73–77, 1985.

  16. Nakashima, H., “Term Description: A simple powerful extension to Prolog data structure,”Proc. of the 9th IJCAI-85, pp. 708–710, 1985.

  17. Shapiro, E. Y., “A subset of Concurent Prolog and its interpreter,”ICOT Tech. Report TR-003, 1983.

  18. Takeuchi, A. and Furukawa, K., “Partial evaluation of Prolog programs and its application to meta programming,”ICOT Technical Report TR-109, 1985.

  19. 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.

    Google Scholar 

  20. 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.

    Google Scholar 

  21. 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.

  22. 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.

Download references

Author information

Authors and Affiliations

Authors

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

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF03037464

Keywords