Two Lectures on Constructive Type Theory


Main Goal: One goal of these two lectures is to explain how important ideas and problems from computer science and mathematics can be expressed well in constructive type theory and how proof assistants for type theory help us solve them. Another goal is to note examples of abstract mathematical ideas currently not expressed well enough in type theory. The two lectures will address the following three specific questions related to this goal. Three Questions: One, what are the most important foundational ideas in computer science and mathematics that are expressed well in constructive type theory, and what concepts are more difficult to express? Two, how can proof assistants for type theory have a large impact on research and education, specifically in computer science, mathematics, and beyond? Three, what key ideas from type theory are students missing if they know only one of the modern type theories? The lectures are intended to complement the hands-on Nuprl tutorials by Dr. Mark Bickford that will introduce new topics as well as address these questions. The lectures refer to recent educational material posted on the PRL project web page,, especially the on-line article Logical Investigations, July 2014 on the front page of the web cite. Background: Decades of experience using proof assistants for constructive type theories, such as Agda, Coq, and Nuprl, have brought type theory ever deeper into computer science research and education. New type theories implemented by proof assistants are being developed. Moreover, mathematicians are showing interest in enriching these theories to make them a more suitable foundation for mathematics. The scope of type theory includes providing a formal semantics for programming languages and expanding their capabilities. It includes specifying, defining, and building the next generation of compilers, operating systems, software defined networks, distributed systems and other critical software systems. It applies to specifying computational problems well and finding algorithms and systems that provably solve them. The scope includes establishing computational complexity bounds on problems and solutions. Type theory is also valuable in providing a precise semantics for natural languages and in understanding the limits and hazards of deep learning, and more generally in exploring epistemology in the Age of Artificial Intelligence. Elements of constructive type theories are now taught to computer science undergraduates because of their relevance to the goals just mentioned. Moreover, proof assistants for these theories liberate students to confidently explore open problems. It is likely that teaching these new tools for thought will spread into the secondary school system in due course. It might have already happened in the most advanced secondary schools.

Cite this paper

@inproceedings{Constable2015TwoLO, title={Two Lectures on Constructive Type Theory}, author={Robert L. Constable}, year={2015} }