Optimizing Higher-Order Pattern Unification
We present an abstract view of existential variables in a dependently typed lambda-calculus based on modal type theory. This allows us to justify optimizations to pattern unification such as linearization, which eliminates many unnecessary occurs-checks. The presented modal framework explains a number of features of the current implementation of higher-order unification in Twelf and provides insight into several optimizations. Experimental results demonstrate significant performance improvement in many example applications of Twelf, including those in the area of proof-carrying code.
KeywordsModal Logic Logic Programming Modal Variable Sequent Calculus Normal Object
Unable to display preview. Download preview PDF.
- 1.Appel, A.: Foundational proof-carrying code. In: Halpern, J. (ed.) Proceedings of the 16th Annual Symposium on Logic in Computer Science (LICS 2001), pp. 247–256. IEEE Computer Society Press, Los Alamitos (2001) (invited talk)Google Scholar
- 2.Brisset, P., Ridoux, O.: Naive reverse can be linear. In: Furukawa, K. (ed.) International Conference on Logic Programming, Paris, France, pp. 857–870. MIT Press, Cambridge (1991)Google Scholar
- 3.Dowek, G., Hardin, T., Kirchner, C., Pfenning, F.: Unification via explicit substitutions: The case of higher-order patterns. In: Maher, M. (ed.) Proceedings of the Joint International Conference and Symposium on Logic Programming, Bonn, Germany, pp. 259–273. MIT Press, Cambridge (1996)Google Scholar
- 6.Miller, D.: Unification of simply typed lambda-terms as logic programming. In: Eighth International Logic Programming Conference, Paris, France, pp. 255–269. MIT Press, Cambridge (1991)Google Scholar
- 7.Nadathur, G.: A treatment of higher-order features in logic programming. Technical Report draft, available upon request, Department of Computer Science and Engineering, University of Minnesota (January 2003)Google Scholar
- 8.Nadathur, G., Jayaraman, B., Wilson, D.S.: Implementation considerations for higher-order features in logic programming. Technical Report CS-1993-16, Department of Computer Science, Duke University (June 1993)Google Scholar
- 9.Nadathur, G., Miller, D.: An overview of λProlog. In: Bowen, K.A., Kowalski, R.A. (eds.) Fifth International Logic Programming Conference, Seattle, Washington, pp. 810–827. MIT Press, Cambridge (1988)Google Scholar
- 11.Necula, G.C., Lee, P.: Efficient representation and validation of logical proofs. In: Pratt, V. (ed.) Proceedings of the 13th Annual Symposium on Logic in Computer Science (LICS 1998), Indianapolis, Indiana, pp. 93–104. IEEE Computer Society Press, Los Alamitos (1998)Google Scholar
- 13.Pfenning, F.: Unification and anti-unification in the Calculus of Constructions. In: Sixth Annual IEEE Symposium on Logic in Computer Science, Amsterdam, The Netherlands, pp. 74–85 (July 1991)Google Scholar
- 14.Pfenning, F., Davies, R.: A judgmental reconstruction of modal logic. Mathematical Structures in Computer Science 11, 511–540 (2001); Notes to an invited talk at the Workshop on Intuitionistic Modal Logics and Applications (IMLA 1999), Trento, Italy (July 1999)Google Scholar
- 16.Polakow, J., Pfenning, F.: Ordered linear logic programming. Technical Report CMU-CS-98-183, Department of Computer Science, Carnegie Mellon University (December 1998)Google Scholar