Eliminating Redundancy in Higher-Order Unification: A Lightweight Approach

  • Brigitte Pientka
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4130)


In this paper, we discuss a lightweight approach to eliminate the overhead due to implicit type arguments during higher-order unification of dependently-typed terms. First, we show that some implicit type information is uniquely determined, and can therefore be safely skipped during higher-order unification. Second, we discuss its impact in practice during type reconstruction and during proof search within the logical framework Twelf. Our experimental results show that implicit type arguments are numerous and large in size, but their impact on run-time is between 10% and 20%. On the other hand optimizations such as eliminating the occurs check are shown to be crucial to achieve significant performance improvements.


Logical Framework Type Argument Proof Search Type Reconstruction Atomic 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)CrossRefGoogle Scholar
  2. 2.
    Aydemir, B., et al.: Mechanized metatheory for the masses: The poplmark challenge. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603, pp. 50–65. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  3. 3.
    Crary, K., Sarkar, S.: Foundational certified code in a metalogical framework. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 106–120. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  4. 4.
    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, September 1996, pp. 259–273. MIT Press, Cambridge (1996)Google Scholar
  5. 5.
    Hannan, J., Pfenning, F.: Compiler verification in LF. In: Scedrov, A. (ed.) Seventh Annual IEEE Symposium on Logic in Computer Science, Santa Cruz, California, June 1992, pp. 407–418 (1992)Google Scholar
  6. 6.
    Harper, R., Honsell, F., Plotkin, G.: A framework for defining logics. Journal of the Association for Computing Machinery 40(1), 143–184 (1993)MATHMathSciNetGoogle Scholar
  7. 7.
    Michaylov, S., Pfenning, F.: An empirical study of the runtime behavior of higher-order logic programs. In: Miller, D. (ed.) Proceedings of the Workshop on the λProlog Programming Language, Philadelphia, Pennsylvania, July 1992, pp. 257–271. University of Pennsylvania (1992)Google Scholar
  8. 8.
    Miller, D.: Unification of simply typed lambda-terms as logic programming. In: Eighth International Logic Programming Conference, Paris, France, June 1991, pp. 255–269. MIT Press, Cambridge (1991)Google Scholar
  9. 9.
    Nadathur, G., Qi, X.: Optimizing the runtime processing of types in polymorphic logic programming languages. In: Sutcliffe, G., Voronkov, A. (eds.) LPAR 2005. LNCS (LNAI), vol. 3835, pp. 110–124. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  10. 10.
    Nanevski, A., Pfenning, F., Pientka, B.: A contextual modal type theory (2005)Google 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, June 1998, pp. 93–104. IEEE Computer Society Press, Los Alamitos (1998)Google Scholar
  12. 12.
    Pfenning, F.: Unification and anti-unification in the Calculus of Constructions. In: Sixth Annual IEEE Symposium on Logic in Computer Science, Amsterdam, The Netherlands, July 1991, pp. 74–85 (1991)Google Scholar
  13. 13.
    Pfenning, F.: Logical frameworks. In: Robinson, A., Voronkov, A. (eds.) Handbook of automated reasoning, Amsterdam, The Netherlands, pp. 1063–1147. Elsevier Science Publishers B. V, Amsterdam (2001)CrossRefGoogle Scholar
  14. 14.
    Pfenning, F., Schürmann, C.: System description: Twelf — a meta-logical framework for deductive systems. In: Ganzinger, H. (ed.) CADE 1999. LNCS (LNAI), vol. 1632, pp. 202–206. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  15. 15.
    Pientka, B.: Tabled higher-order logic programming. PhD thesis, Department of Computer Sciences, Carnegie Mellon University, CMU-CS-03-185 (December, 2003)Google Scholar
  16. 16.
    Pientka, B., Pfennning, F.: Optimizing higher-order pattern unification. In: Baader, F. (ed.) CADE 2003. LNCS (LNAI), vol. 2741, pp. 473–487. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  17. 17.
    Reed, J.: Redundancy Elimination for LF. In: Schuermann, C. (ed.) Fourth Workshop on Logical Frameworks and Meta-languages( LFM 2004), Cork, Ireland (July 2004)Google Scholar
  18. 18.
    Watkins, K., Cervesato, I., Pfenning, F., Walker, D.: A concurrent logical framework I: Judgments and properties. Technical Report CMU-CS-02-101, Department of Computer Science, Carnegie Mellon University (2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Brigitte Pientka
    • 1
  1. 1.School of Computer ScienceMcGill UniversityMontrealCanada

Personalised recommendations