Crafting a Proof Assistant

  • Andrea Asperti
  • Claudio Sacerdoti Coen
  • Enrico Tassi
  • Stefano Zacchiroli
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4502)


Proof assistants are complex applications whose development has never been properly systematized or documented. This work is a contribution in this direction, based on our experience with the development of Matita: a new interactive theorem prover based—as Coq—on the Calculus of Inductive Constructions (CIC). In particular, we analyze its architecture focusing on the dependencies of its components, how they implement the main functionalities, and their degree of reusability.

The work is a first attempt to provide a ground for a more direct comparison between different systems and to highlight the common functionalities, not only in view of reusability but also to encourage a more systematic comparison of different softwares and architectural solutions.


Theorem Prover Logical Framework Proof Assistant Level Term Architectural Solution 
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.
    Asperti, A., Guidi, F., Coen, C.S., Tassi, E., Zacchiroli, S.: A content based mathematical search engine: Whelp. In: Filliâtre, J.-C., Paulin-Mohring, C., Werner, B. (eds.) TYPES 2004. LNCS, vol. 3839, pp. 17–32. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  2. 2.
    Aspinall, D.: Proof General: A generic tool for proof development. In: Schwartzbach, M.I., Graf, S. (eds.) ETAPS 2000 and TACAS 2000. LNCS, vol. 1785, Springer, Heidelberg (2000)CrossRefGoogle Scholar
  3. 3.
    Barthe, G.: Implicit coercions in type systems. In: Types for Proofs and Programs: International Workshop, TYPES 1995, pp. 1–15 (1995)Google Scholar
  4. 4.
    Bertot, Y.: The CtCoq system: Design and architecture. Formal Aspects of Computing 11, 225–243 (1999)CrossRefGoogle Scholar
  5. 5.
    Bertot, Y., Kahn, G., Théry, L.: Proof by pointing. In: Hagiya, M., Mitchell, J.C. (eds.) TACS 1994. LNCS, vol. 789, Springer, Heidelberg (1994)Google Scholar
  6. 6.
    Coscoy, Y.: Explication textuelle de preuves pour le Calcul des Constructions Inductives. PhD thesis, Université de Nice-Sophia Antipolis (2000)Google Scholar
  7. 7.
    Coscoy, Y., Kahn, G., Thery, L.: Extracting Text from Proofs. Technical Report RR-2459, Inria (Institut National de Recherche en Informatique et en Automatique), France (1995)Google Scholar
  8. 8.
    Geuvers, H., Jojgov, G.I.: Open proofs and open terms: A basis for interactive logic. In: Bradfield, J.C. (ed.) CSL 2002 and EACSL 2002. LNCS, vol. 2471, pp. 537–552. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  9. 9.
    Harrison, J.: A Mizar Mode for HOL. In: von Wright, J., Harrison, J., Grundy, J. (eds.) TPHOLs 1996. LNCS, vol. 1125, pp. 203–220. Springer, Heidelberg (1996)Google Scholar
  10. 10.
    Luo, Z.: Coercive subtyping. Journal of Logic and Computation 9(1), 105–130 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Magnusson, L., Nordström, B.: The ALF proof editor and its proof engine. In: Barendregt, H., Nipkow, T. (eds.) TYPES 1993. LNCS, vol. 806, pp. 213–237. Springer, Heidelberg (1994)Google Scholar
  12. 12.
    Mathematical Markup Language (MathML) Version 2.0. W3C Recommendation (February 21 2001) (2003),
  13. 13.
    Mu\(\tilde{n}\)oz, C.: A Calculus of Substitutions for Incomplete-Proof Representation in Type Theory. PhD thesis, INRIA (November 1997)Google Scholar
  14. 14.
    OMDoc: An open markup format for mathematical documents (draft, version 1.2) (2005),
  15. 15.
    Padovani, L., Zacchiroli, S.: From notation to semantics: There and back again. In: Asperti, A., Bancerek, G., Trybulec, A. (eds.) MKM 2004. LNCS (LNAI), vol. 3119, pp. 194–207. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  16. 16.
    Riazanov, A.: Implementing an Efficient Theorem Prover. PhD thesis, The University of Manchester (2003)Google Scholar
  17. 17.
    Coen, C.S., Tassi, E., Zacchiroli, S.: Tinycals: step by step tacticals. In: Proceedings of UITP 2006: User Interface for Theorem Provers. Seattle, WA, August 21, 2006. ENTCS, vol. 174(2), pp. 125–142. Elsevier Science, North-Holland (May 2007) ISSN: 1571-0661Google Scholar
  18. 18.
    Coen, C.S., Zacchiroli, S.: Efficient ambiguous parsing of mathematical formulae. In: Asperti, A., Bancerek, G., Trybulec, A. (eds.) MKM 2004. LNCS, vol. 3119, pp. 347–362. Springer, Heidelberg (2004)Google Scholar
  19. 19.
    Strecker, M.: Construction and Deduction in Type Theories. PhD thesis, Universität Ulm (1998)Google Scholar
  20. 20.
    Wiedijk, F.: Mmode, a mizar mode for the proof assistant coq. Technical Report NIII-R0333, University of Nijmegen (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Andrea Asperti
    • 1
  • Claudio Sacerdoti Coen
    • 1
  • Enrico Tassi
    • 1
  • Stefano Zacchiroli
    • 1
  1. 1.Department of Computer Science, University of Bologna, Mura Anteo Zamboni, 7 – 40127 BolognaItaly

Personalised recommendations