Optimizing Higher-Order Pattern Unification

  • Brigitte Pientka
  • Frank Pfenning
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2741)


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.


Modal Logic Logic Programming Modal Variable Sequent Calculus Normal Object 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 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. 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
  4. 4.
    Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. Journal of the Association for Computing Machinery 40(1), 143–184 (1993)zbMATHMathSciNetGoogle Scholar
  5. 5.
    Huet, G.: A unification algorithm for typed λ-calculus. Theoretical Computer Science 1, 27–57 (1975)CrossRefMathSciNetGoogle Scholar
  6. 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. 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. 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. 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
  10. 10.
    Nadathur, G., Mitchell, D.J.: System description: Teyjus—a compiler and abstract machine based implementation of λ prolog. In: Ganzinger, H. (ed.) CADE 1999. LNCS (LNAI), vol. 1632, pp. 287–291. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  11. 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
  12. 12.
    Paulson, L.C.: Natural deduction as higher-order resolution. Journal of Logic Programming 3, 237–258 (1986)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 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. 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
  15. 15.
    Pfenning, F., Schürmann, C.: System description: Twelf — a metalogical framework for deductive systems. In: Ganzinger, H. (ed.) CADE 1999. LNCS (LNAI), vol. 1632, pp. 202–206. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  16. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Brigitte Pientka
    • 1
  • Frank Pfenning
    • 1
  1. 1.Department of Computer ScienceCarnegie Mellon University 

Personalised recommendations