Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
166 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
42 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Regular Typed Unification (2404.16406v1)

Published 25 Apr 2024 in cs.LO

Abstract: Here we define a new unification algorithm for terms interpreted in semantic domains denoted by a subclass of regular types here called deterministic regular types. This reflects our intention not to handle the semantic universe as a homogeneous collection of values, but instead, to partition it in a way that is similar to data types in programming languages. We first define the new unification algorithm which is based on constraint generation and constraint solving, and then prove its main properties: termination, soundness, and completeness with respect to the semantics. Finally, we discuss how to apply this algorithm to a dynamically typed version of Prolog.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (23)
  1. Apt, K. R. 1996. From Logic Programming to Prolog. Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
  2. Data type inference for logic programming. In De Angelis, E. and Vanhoof, W., editors, Logic-Based Program Synthesis and Transformation 2022a, pp. 16–37, Cham. Springer International Publishing.
  3. Typed SLD-Resolution: Dynamic typing for logic programming. In Villanueva, A., editor, Logic-Based Program Synthesis and Transformation 2022b, pp. 123–141, Cham. Springer International Publishing.
  4. Type dependencies for logic programs using aci-unification. Theor. Comput. Sci., 238, 1-2, 131–159.
  5. The YAP Prolog System. Theory and Practice of Logic Programming, 12, 1-2, 5–34.
  6. Principal type-schemes for functional programs. In Conference Record of the Ninth Annual ACM Symposium on Principles of Programming Languages 1982, pp. 207–212.
  7. A regular type language for logic programs. In Pfenning, F., editor, Types in Logic Programming 1992, pp. 157–187. The MIT Press.
  8. Logic programs as types for logic programs. In Proc. of the Sixth Annual Symposium on Logic in Computer Science (LICS ’91), Netherlands,1991 1991, pp. 300–309.
  9. Abstract Domains Based on Regular Types. In International Conference on Logic Programming 2004, pp. 27–42. Springer.
  10. Types, modes and so much more - the prolog way. In Prolog: The Next 50 Years 2023, volume 13900 of Lecture Notes in Computer Science, pp. 23–37. Springer.
  11. Jim, T. What are principal typings and what are they good for? In Conference Record of POPL’96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Papers Presented at the Symposium, St. Petersburg Beach, Florida, USA, January 21-24, 1996 1996, pp. 42–53. ACM Press.
  12. Lloyd, J. W. 1984. Foundations of Logic Programming. Springer-Verlag, Berlin, Heidelberg.
  13. An efficient unification algorithm. ACM Trans. Program. Lang. Syst., 4, 2, 258–282.
  14. Milner, R. 1978. A theory of type polymorphism in programming. J. Comput. Syst. Sci., 17, 3, 348–375.
  15. Mishra, P. Towards a theory of types in Prolog. In Proceedings of the 1984 International Symposium on Logic Programming, Atlantic City, New Jersey, USA, February 6-9, 1984 1984, pp. 289–298. IEEE-CS.
  16. Robinson, J. A. 1965. A Machine-Oriented Logic Based on the Resolution Principle. Journal of the ACM, 12, 1, 23–41.
  17. From monomorphic to polymorphic well-typings and beyond. In Logic-Based Program Synthesis and Transformation, 18th International Symposium, LOPSTR 2008, Valencia, Spain, July 17-18, 2008, Revised Selected Papers 2008a, volume 5438 of Lecture Notes in Computer Science, pp. 152–167. Springer.
  18. Towards Typed Prolog. In Logic Programming, 24th International Conference, ICLP 2008b, volume 5366 of Lecture Notes in Computer Science, pp. 693–697. Springer.
  19. Smolka, G. Logic programming with polymorphically order-sorted types. In Algebraic and Logic Programming, International Workshop, Gaussig, GDR, November 14-18, 1988, Proceedings 1988, volume 343 of Lecture Notes in Computer Science, pp. 53–70. Springer.
  20. Walther, C. 1988. Many-sorted unification. J. ACM, 35, 1, 1–17.
  21. Wand, M. 1987. A simple algorithm and proof for type inference. Fundamenta Infomaticae, 10, 115–122.
  22. A type system for logic programs. The Journal of Logic Programming, 10, 2, 125–153.
  23. Zobel, J. Derivation of polymorphic types for Prolog programs. In Logic Programming, Proceedings of the Fourth International Conference, Melbourne, 1987 1987.

Summary

We haven't generated a summary for this paper yet.