Abstract
This paper presents aut, a modern Automath checker. It is a straightforward re-implementation of the Zandleven Automath checker from the seventies. It was implemented about five years ago, in the programming language C. It accepts both the AUT-68 and AUT-QE dialects of Automath. This program was written to restore a damaged version of Jutting's translation of Landau's Grundlagen. Some notable features:
• It is fast. On a 1 GHz machine it will check the full Jutting formalization (736 K of nonwhitespace Automath source) in 0.6 seconds.
• Its implementation of λ-terms does not use named variables or de Bruijn indices (the two common approaches) but instead uses a graph representation. In this representation variables are represented by pointers to a binder.
• The program can compile an Automath text into one big ‘Automath single line’-style λ-term. It outputs such a term using de Bruijn indices. (These λ-terms cannot be checked by modern systems like Coq or Agda, because the λ-typed λ-calculi of de Bruijn are different from the Π-typed λ-calculi of modern type theory.)
The source of aut is freely available on the Web at the address <http://www.cs.kun.nl/~freek/aut/>.
Similar content being viewed by others
References
Balsters, H.: Lambda calculus extended with segments, Ph.D. thesis, Eindhoven University of Technology, 1986.
Barendregt, H.: Lambda calculi with types, in S. Abramsky, D. Gabbay and T. Maibaum (eds), Handbook of Logic in Computer Science, Vol. II, Oxford University Press, 1992, pp. 117–309.
de Bruijn, N.: Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church–Rosser theorem, Indigationes Math. 34 (1972), 381–392. (C.2) in (Nederpelt et al., 1994).
de Bruijn, N.: Generalizing Automath by means of a lambda-typed lambda calculus, in D. Kueker, E. Lopez-Escobar and C. Smith (eds), Mathematical Logic and Theoretical Computer Science, Lecture Notes in Pure and Appl. Math. 106, Marcel Dekker, New York, 1987, pp. 71–92. (B.7) in (Nederpelt et al., 1994).
de Bruijn, N.: Telescopic mappings in typed lambda calculus, Inform. Comput. 91 (1991), 189–204.
de Groote, P.: Defining λ-typed λ-calculi by axiomatizing the typing relation, Technical Report CRIN 93-R-003, Centre de Recherche en Informatique de Nancy, 1993.
Gordon, M., Milner, R. and Wadsworth, C.: Edinburgh LCF: A Mechanised Logic of Computation, LNCS 78, Springer-Verlag, Berlin, 1979.
Harper, R., Honsell, F. and Plotkin, G.: A framework for defining logics, Technical Report ECSLFCS-91-162, Laboratory for Foundations of Computer Science, Department of Computer Science, The University of Edinburgh, 1991.
F., Bloo, R. and Nederpelt, R.: On П-conversion in the λ-cube and the combination with abbreviations, Ann. Pure Appl. Logic 97 (1999), 27–45.
Kamareddine, F. and Nederpelt, R.: Canonical typing and П-conversion in the Barendregt cube, J. Funct. Programming 6 (1996), 245–267.
Landau E.: Grundlagen der Analysis, 4th edn, Chelsea, New York, 1965. First edition 1930.
Megill, N. D.: Metamath, a computer language for pure mathematics, 1997. <http://metamath.org/>. A NEW IMPLEMENTATION OF AUTOMATH 387
Nederpelt, R., Geuvers, J. and de Vrijer, R.: Selected Papers on Automath, Studies in Logic and the Foundations of Mathematics, Elsevier Science, Amsterdam, 1994.
Nipkow, T., Paulson, L. and Wenzel, M.: Isabelle/HOL – A Proof Assistant for Higher-Order Logic, LNCS 2283, Springer, 2002.
Paulson, L.: Isabelle: A Generic Theorem Prover, LNCS 828, Springer-Verlag, New York, 1994.
Pfenning, F.: The practice of logical frameworks, in H. Kirchner (ed.), Proceedings of the Colloquium on Trees in Algebra and Programming, Linköping, Sweden, LNCS 1059, Springer-Verlag, 1996, pp. 119–134. <http://www.cs.cmu.edu/~fp/papers/caap96.ps.gz>.
The Coq Development Team: The Coq Proof Assistant Reference Manual, 2002. <ftp://ftp.inria.fr/INRIA/coq/current/doc/Reference-Manual-all.ps.gz>.
van Benthem Jutting, L.: A translation of Landau's “Grundlagen” in AUTOMATH, Technical Report, Eindhoven University of Technology, 1976.
van Benthem Jutting, L.: Checking Landau's “Grundlagen” in the Automath System, Mathematical Centre Tracts 83, Mathematisch Centrum, Amsterdam, 1979.
van Benthem Jutting, L.: Typing in pure type systems, Technical Report, Dept. Computer Science, University of Nijmegen, Nijmegen, 1990.
van Daalen, D.: A description of Automath and some aspects of its language theory, in P. Braffort (ed.), Proceedings of the Symposium APLASM, Vol. 1, Orsay, 1973. (A.3) in (Nederpelt et al., 1994).
van Daalen, D.: The language theory of Automath, Ph.D. thesis, Eindhoven University of Technology, 1980.
Wiedijk, F.: The De Bruijn factor, 2000. <http://www.cs.kun.nl/~freek/notes/factor.ps.gz>.
Wiedijk, F.: The fifteen provers of the world, 2002. <http://www.cs.kun.nl/~freek/comparison.ps.gz>.
Zandleven, I.: A verifying program for Automath, in P. Braffort (ed.), Proceedings of the Symposium APLASM, Vol. I, Orsay, 1973. (E.1) in (Nederpelt et al., 1994).
Rights and permissions
About this article
Cite this article
Wiedijk, F. A New Implementation of Automath. Journal of Automated Reasoning 29, 365–387 (2002). https://doi.org/10.1023/A:1021983302516
Issue Date:
DOI: https://doi.org/10.1023/A:1021983302516