Skip to main content

An algorithm for checking incomplete proof objects in type theory with localization and unification

  • Conference paper
  • First Online:
Types for Proofs and Programs (TYPES 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1158))

Included in the following conference series:

  • 218 Accesses

Abstract

A modular type/proof checking algorithm for incomplete proof objects is presented, where an incomplete proof object is represented as a term containing placeholders denoting the unfinished parts of the proof. The algorithm is designed for Martin-Löf 's type theory with explicit substitutions, but the general ideas can be adapted to similar theories. It is the kernel of the proof editor ALF.

The algorithm handles incomplete terms in such a way that the type checking problem is reduced to a unification problem, i.e., the problem of finding instantiations to the placeholders in the term. Placeholders are represented together with their expected type and local context. We show that checking the correctness of instantiations can be optimized by localization, which means that it is enough to check an instantiation of a placeholder relative to its expected type and local context.

We present a unification algorithm which partially solves the unification problem, and we apply this unification algorithm to the type checking algorithm. We show that the type checking algorithm with unification and with localization is sound, and hence when all placeholders in a proof object are filled in and checked locally, we do not have to type check the global proof object again to ensure type correctness. Finally, we define two basic operations on a type checking problem, insert and delete, and we show that the basic tactics “intro” and “refine” can be defined in terms of insert. The delete operation provides a local undo mechanism which is unique for ALF. The operations are shown to preserve the validity of a partially solved type checking problem, and hence the proof editing facilities are proved to construct valid proofs.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. P. Barendregt. Introduction to Generalized Type Systems. J. Functional Programming, 1(2):125–154, April 1991.

    Google Scholar 

  2. Thierry Coquand. An algorithm for testing conversion in type theory. In Logical Frameworks. Cambridge University Press, 1991.

    Google Scholar 

  3. Gilles Dowek. A Complete Proof Synthesis Method for the Cube of Type Systems. Journal of Logic and Computation, 3(3):287–315, 1993.

    Google Scholar 

  4. Conal M. Elliot. Higher-order unification with dependent function types. In N. Dershowitz, editor, Proceedings of the 3rd International Conference on Rewriting Techniques and Applications, pages 121–136, April 1989.

    Google Scholar 

  5. W. A. Howard. The formulae-as-types notion of construction. In J. P. Seldin and J. R. Hindley, editors, To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pages 479–490. Academic Press, London, 1980.

    Google Scholar 

  6. Gérard Huet. A unification algorithm for typed λ-calculus. Theoretical Computer Science, 1(1):27–57, 1975.

    Google Scholar 

  7. Lena Magnusson. The Implementation of ALF — a Proof Editor based on Martin-Löf's Monomorphic Type Theory with Explicit Substitution. PhD thesis, Göteborg University and Chalmers University of Technology, January 1995.

    Google Scholar 

  8. Lena Magnusson and Bengt Nordström. The ALF proof editor and its proof engine. In Types for Proofs and Programs, LNCS, pages 213–237, Nijmegen, 1994. Springer-Verlag.

    Google Scholar 

  9. James McKinna and Randy Pollack. Pure type system formalized. In M. Bezem and J.F. Groote, editors, Proceeding of the International Conference on Typed Lambda Calculi and Applications, TLCA '93, pages 289–305. Springer-Verlag, LNCS 664, March 1993.

    Google Scholar 

  10. Randy Pollack. Closure under Alpha conversion. In The Informal Proceeding of the 1993 Workshop on Types for Proofs and Programs, May 1993.

    Google Scholar 

  11. David Pym. A unification algorithm for the logical framework. Technical Report ECS-LFCS-92-229, University of Edinburgh, August 1992.

    Google Scholar 

  12. Anne Salvesen. Polymorphism and Monomorphism in Martin-Löf's Type Theory. Technical report, Norwegian Computing Center, P.b. 114, Blindern, 0316 Oslo 3, Norway, December 1988.

    Google Scholar 

  13. Alvaro Tasistro. Formulation of Martin-Löf's Theory of Types with Explicit Substitution. Licentiate Thesis, Chalmers University of Technology and University of Göteborg, Sweden, May 1993.

    Google Scholar 

  14. L. Théry, Y. Bertot, and G. Kahn. Real Theorem Provers Deserve Real User-Interfaces. Technical Report 1684, INRIA Sophia-Antipolis, May 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Stefano Berardi Mario Coppo

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Magnusson, L. (1996). An algorithm for checking incomplete proof objects in type theory with localization and unification. In: Berardi, S., Coppo, M. (eds) Types for Proofs and Programs. TYPES 1995. Lecture Notes in Computer Science, vol 1158. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61780-9_70

Download citation

  • DOI: https://doi.org/10.1007/3-540-61780-9_70

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61780-8

  • Online ISBN: 978-3-540-70722-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics