Skip to main content Accessibility help

Classical mathematics for a constructive world



Interactive theorem provers based on dependent type theory have the flexibility to support both constructive and classical reasoning. Constructive reasoning is supported natively by dependent type theory, and classical reasoning is typically supported by adding additional non-constructive axioms. However, there is another perspective that views constructive logic as an extension of classical logic. This paper will illustrate how classical reasoning can be supported in a practical manner inside dependent type theory without additional axioms. We will show several examples of how classical results can be applied to constructive mathematics. Finally, we will show how to extend this perspective from logic to mathematics by representing classical function spaces using a weak value monad.



Hide All
Altenkirch, T. and McBride, C. (2006) Towards observational type theory. Manuscript, available online.
Altenkirch, T., McBride, C. and Swierstra, W. (2007) Observational equality, now! In: PLPV '07 Proceedings of the 2007 workshop on Programming languages meets program verification, ACM 5768.
Barendregt, H. and Geuvers, H. (2001) Proof-assistants using dependent type systems. In: Robinson, A. and Voronkov, A. (eds.) Handbook of Automated Reasoning 2, Elsevier Science Publishers 11491238.
Bauer, A. and Taylor, P. (2009) The Dedekind reals in abstract Stone duality. Mathematical Structures in Computer Science 19 757838.
Coq Development Team (2009) The Coq Proof Assistant Reference Manual – Version V8.2, INRIA-Rocquencourt. (Available at
Geuvers, H., Koprowski, A., Synek, D. and van der Weegen, E. (2010) Automated machine-checked hybrid system safety proofs. In: Kaufmann, M. and Paulson, L. (eds.) Proceedings Interactive Theorem Proving, ITP 2010. Springer-Verlag Lecture Notes in Computer Science 6172259274.
Gonthier, G., Mahboubi, A., Rideau, L., Tassi, E. and Théry, L. (2007) A modular formalisation of finite group theory. In: Schneider, K. and Brandt, J. (eds.) Proceedings Theorem Proving in Higher Order Logics, 20th International Conference, TPHOLs 2007. Springer-Verlag Lecture Notes in Computer Science 473286101.
Gonthier, G. and Stéphane, L. R. (2009) An Ssreflect Tutorial. Technical Report RT-0367, INRIA. (Available at
Gödel, K. (1933) Zur intuitionistischen Arithmetik und Zahlentheorie. Ergebnisse eines mathematischen Kolloquiums 4 3438. (English translation: On intuitionistic arithmetic and number theory. In: M. Davis (ed.) The Undecidable – Basic Papers on Undecidable Propositions, Unsolvable Problems and Computable Functions, Raven, New York, 1965 (Reprint, Dover, 2004) 75–81.)
Kock, A. (1972) Strong functors and monoidal monads. Archiv der Mathematik 23 113120.
Leroy, X. (2009) Programming with dependent types: Passing fad or useful tool? (Available at
Mines, R., Richman, F. and Ruitenburg, W. (1988) A Course in Constructive Algebra, Springer-Verlag.
Nordström, B., Petersson, K. and Smith, J. M. (1990) Programming in Martin-Löf's type theory: an introduction, Clarendon Press.
Norell, U. (2007) Towards a practical programming language based on dependent type theory, Ph.D. thesis, Department of Computer Science and Engineering, Chalmers University of Technology, Göteborg, Sweden.
O'Connor, R. (2008a) Certified exact transcendental real number computation in Coq. In: Mohamed, O. A., Muñoz, C. and Tahar, S. (eds.) Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2008). Springer-Verlag Lecture Notes in Computer Science 5170246261.
O'Connor, R. (2008b) A computer verified theory of compact sets. In: Buchberger, B., Ida, T. and Kutsia, T. (eds.) Proceedings of Austrian–Japanese Workshop on Symbolic Computation in Software Science (SCSS 2008). RISC-Linz Report Series (08-08) 148–162.
O'Connor, R. (2009) Incompleteness & Completeness: Formalizing Logic and Analysis in Type Theory, Ph.D. thesis, Radboud Universiteit Nijmegen.
Rasiowa, H. and Sikorski, R. (1968) The Mathematics of Metamathematics (second edition), Polish Scientific Publishers.
Simpson, S. G. (1999) Subsystems of second order arithmetic, Perspectives in Mathematical Logic, Springer-Verlag.
Thompson, S. (1991) Type Theory and Functional Programming, Addison Wesley.
Troelstra, A. S. and Schwichtenberg, H. (1996) Basic Proof Theory, Cambridge tracts in theoretical computer science 43, Cambridge University Press.
Wadler, P. (1995) Monads for functional programming. In: Jeuring, J. and Meijer, E. (eds.) Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques – Tutorial Text. Springer-Verlag Lecture Notes in Computer Science 9252452.

Related content

Powered by UNSILO

Classical mathematics for a constructive world



Altmetric attention score

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed.