Verifying Uniqueness in a Logical Framework

  • Penny Anderson
  • Frank Pfenning
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3223)


We present an algorithm for verifying that some specified arguments of an inductively defined relation in a dependently typed λ-calculus are uniquely determined by some other arguments. We prove it correct and also show how to exploit this uniqueness information in coverage checking, which allows us to verify that a definition of a function or relation covers all possible cases. In combination, the two algorithms significantly extend the power of the meta-reasoning facilities of the Twelf implementation of LF.


Operational Semantic Type Family Logical Framework Horn Clause Ground Instance 
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.
    Coquand, T.: An algorithm for testing conversion in type theory. In: Huet, G., Plotkin, G. (eds.) Logical Frameworks, pp. 255–279. Cambridge University Press, Cambridge (1991)CrossRefGoogle Scholar
  2. 2.
    Coquand, T.: Pattern matching with dependent types. In: Proceedings of the Workshop on Types for Proofs and Programs, Båstad, Sweden, pp. 71–83 (1992)Google Scholar
  3. 3.
    Crary, K.: Toward a foundational typed assembly language. In: Morrisett, G. (ed.) Proceedings of the 30th Annual Symposium on Principles of Programming Languages, New Orleans, Louisiana, January 2003, pp. 198–212. ACM Press, New York (2003)Google Scholar
  4. 4.
    Crary, K., Sarkar, S.: A metalogical approach to foundational certified code. Technical Report CMU-CS-03-108, Carnegie Mellon University (January 2003)Google Scholar
  5. 5.
    Despeyroux, J., Leleu, P.: A modal lambda calculus with iteration and case constructs. In: Altenkirch, T., Naraschewski, W., Reus, B. (eds.) TYPES 1998. LNCS, vol. 1657, pp. 47–61. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  6. 6.
    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
  7. 7.
    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
  8. 8.
    Harper, R., Pfenning, F.: On equivalence and canonical forms in the LF type theory. Transactions on Computational Logic (2003); To appear. Preliminary version available as Technical Report CMU-CS-00-148Google Scholar
  9. 9.
    Hofmann, M.: Extensional Concepts in Intensional Type Theory. PhD thesis, Department of Computer Science, University of Edinburgh (July 1995); available as Technical Report CST-117-95Google Scholar
  10. 10.
    Hofmann, M., Streicher, T.: The groupoid model refutes uniqueness of identity proofs. In: Proceedings of the 9th Annual Symposium on Logic in Computer Science (LICS 1994), Paris, France, pp. 208–212. IEEE Computer Society Press, Los Alamitos (1994)CrossRefGoogle Scholar
  11. 11.
    McBride, C.: Dependently Typed Functional Programs and their Proofs. PhD thesis, University of Edinburgh (1999); available as Technical Report ECS-LFCS-00-419.Google Scholar
  12. 12.
    Pfenning, F.: Structural cut elimination I. intuitionistic and classical logic. Information and Computation 157(1/2), 84–141 (2000)MATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Pfenning, F.: Logical frameworks. In: Robinson, A., Voronkov, A. (eds.) Handbook of Automated Reasoning, ch. 17, pp. 1063–1147. Elsevier Science and MIT Press (2001)Google Scholar
  14. 14.
    Pfenning, F., Schürmann, C.: Algorithms for equality and unification in the presence of notational definitions. In: Altenkirch, T., Naraschewski, W., Reus, B. (eds.) TYPES 1998. LNCS, vol. 1657, pp. 179–193. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  15. 15.
    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
  16. 16.
    Pientka, B.: Termination and reduction checking for higher-order logic programs. In: Goré, R.P., Leitsch, A., Nipkow, T. (eds.) IJCAR 2001. LNCS (LNAI), vol. 2083, pp. 401–415. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  17. 17.
    Poswolsky, A., Schürmann, C.: Factoring pure logic programs. Draft manuscript (November 2003)Google Scholar
  18. 18.
    Rohwedder, E., Pfenning, F.: Mode and termination checking for higher-order logic programs. In: Riis Nielson, H. (ed.) ESOP 1996. LNCS, vol. 1058, pp. 296–310. Springer, Heidelberg (1996)Google Scholar
  19. 19.
    Schürmann, C.: Automating the Meta Theory of Deductive Systems. PhD thesis, Department of Computer Science, Carnegie Mellon University (August 2000); Available as Technical Report CMU-CS-00-146Google Scholar
  20. 20.
    Schürmann, C.: Recursion for higher-order encodings. In: Fribourg, L. (ed.) CSL 2001. LNCS, vol. 2142, pp. 585–599. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  21. 21.
    Schürmann, C.: A type-theoretic approach to induction with higher-order encodings. In: Nieuwenhuis, R., Voronkov, A. (eds.) LPAR 2001. LNCS (LNAI), vol. 2250, pp. 266–281. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  22. 22.
    Schürmann, C.: Delphin – toward functional programming with logical frameworks. Technical Report TR #1272, Yale University, Department of Computer Science (2004)Google Scholar
  23. 23.
    Schürmann, C., Despeyroux, J., Pfenning, F.: Primitive recursion for higherorder abstract syntax. Theoretical Computer Science 266, 1–57 (2001)MATHCrossRefMathSciNetGoogle Scholar
  24. 24.
    Schürmann, C., Pfenning, F.: A coverage checking algorithm for LF. In: Basin, D., Wolff, B. (eds.) TPHOLs 2003. LNCS, vol. 2758, pp. 120–135. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  25. 25.
    Washburn, G., Weirich, S.: Boxes go bananas: Encoding higher-order abstract syntax with parametric polymorphism. In: Proceedings of the Eighth International Conference on Functional Programming, Uppsala, Sweden, August 2003, pp. 249–262. ACM Press, New York (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Penny Anderson
    • 1
  • Frank Pfenning
    • 2
  1. 1.Department of Computer ScienceLafayette College 
  2. 2.Department of Computer ScienceCarnegie Mellon University 

Personalised recommendations