This seminar is supposed to be a contemporary introduction to modern type theory that is suitable for mathematicians needs, in the sense that this theory forms a foundation of mathematics and the language for theorems formulation and their proofs.
The seminar will focus on 1) direct proof-term construction in cubical type theory with computer-based type checker; 2) solving home assignments in cubical type checker; 3) helping people write cubical code; 4) writing lecture notes by students in LaTeX; 5) making small course project as the final task (could be porting some library or theory from Agda or even formalizing a new part of mathematics); 6) gathering smart people together; 7) having fun.
The HoTT Book
While this seminar will try to follow HoTT book as a main source, I will try to give some theory not present in HoTT, such as algebraic topology or higher category theory. On the other hand, I will skip some parts from HoTT. Please treat this course as author's one, but heavily inspired by HoTT book and cubical type checkers.
What is a cubical type theory and why is it important? The cubical type theory is a theory where univalence axiom by Voevodsky has computational interpretation. There are several type checkers which use different flavors of cubical type theory while sharing the same concept. Most notable stable implementations are: 1) agda --cubical; 2) cubicaltt; 3) cubicaltt/hcomptrans; 4) yacctt; 5) RedPRL. We will show differences between them, and students are free to choose the type checker of their flavor (for home assignments), but at learning classes (joint hackathon) I will use cubicaltt flavor I most experienced with.
1. Type Theory
The first section is an introduction to type theory, its subject matter, and the method of computer science. We will show basic principles of lambda calculus, its most powerful version — System $P_\omega$, Calculus of Constructions, and Pure Type Systems. Then we will encode the theorems of MLTT type system in cubical type checkers. This section will cover Pi, Sigma, Equ, W types.
HoTT 1.3, 1.4, 1.5, 1.6, 1.12, 2.7, 2.9, 2.11, 6.2
Issue I: Internalizing Martin-Löf Type Theory
2. Inductive Types
The second section is an introduction to basic inductive types and induction principle. Inductive types form a basis of so-called Calculus of Inductive Constructions, the theory behind Coq. We will show how proving theorems with induction principle will differ from cubical constructions. Also, we introduce a general Impredicative Encoding of Inductive Types (Awodey). This section will cover: Empty, Unit, Either, Prod, Bool, Maybe, Nat, List, Fix, Mu, Nu, Free, Cofree types.
HoTT 1.7, 1.8, 1.9, 5.1, 5.6
Issue II: Inductive Types and Encodings
3. Homotopy Type Theory
This topic gives a fundamental view of Pi types as Fibrations used in constructive Equivalence. Also here we give an infinite hierarchy of types, containing higher globular equalities used as a base for IPL, Set Theory, and Simplicial Geometry. This section will cover Fiber, n-Groupoid, $\infty$-Groupoid types.
HoTT 2.1, 2.3, 2.4, 2.6, 2.7
Issue III: Homotopy Type Theory
4. Higher Inductive Types
One of the primary motivation of HoTT is constructive geometry and cell complexes, the spaces constructed by gluing n-discs along their boundaries. In this section, we show how to build topological primitives and how to reason about them. This section will cover: Line, Suspension, n-Sphere, Pushout, Pullback, Truncation, Quotient types.
HoTT 6.3, 6.4, 6.5, 6.6, 6.9, 6.10
Issue VI: Higher Inductive Types
5. Equiv, Iso and Univ
There exist three equalities in Type Theory: 1) built-in into type checker, representing Id, Equ or Path type with J eliminator; 2) Fibration based Equivalence; 3) Isomorphism containing retract and section. This fact leads to Univalence Axiom that states that all equalities are equal and this could be proved in cubical type checkers. This section will cover: Equiv, Iso, Homotopy, Univalence, Injective, Surjective types.
HoTT 2.10, 4.6, 4.7
Issue V: Many faces of Equality
This section will cover: Infinitesimal type.
7. Set Theory
This section is an introduction to Intuitionistic Propositional Logic (IPL), its difference from Classical Logic, Axiom of Choice, Law of Excluding Middle, Propositional Truncation, Hedberg Theorem, Decidable Types, Constructive Set Theory. This section will cover: Prop, Set, Decidable, Stable, Discrete types.
HoTT 3.1, 3.3, 3.11
8. Category Theory
More than 10 Fields awards are taken with Category Theory (CT) as an instrument. For doing Math, CT is crucial. As a companion to HoTT chapter on CT, we suggest the course of Steve Awodey (the disciple of Saunders Mac Lane), who also made HoTT possible.
This section will give the fundamental notion of following types: Precategory, Rezk Completion, Functor, Natural Transformation, Adjoint, Cone, Structure Identity Principle, Limit, Pullback, Kan Extension, Monomorphism, Epimorphism, Universal Mapping Property.
The primary application of CT in Computer Science is building the categorical model of Dependently Typed Lambda Calculus as an internal language of Locally Cartesian Closed Category. The two models mentioned in this course are Categories with Families (Dybjer) and C-Systems (Voevodsky).
Also as examples of Category instances following types are used: Category of Sets, Category of Functions, Category of Categories, Category of Functors, Slice Category, Product Category. Using those we can construct basic examples of 2-categories, and give a very basic intro to $\infty$-Categories.
Issue VIII: Contextual Categories for Martin-Löf Type Theory
9. Topos Theory
Topos Theory will give a more in-depth look into categorical models and make a stronger foundation to build a bridge between CT and Logic of Space.
In this section, I will mention Subobject Classifier and Topos types.
Issue IX: Formal Topos on Category of Sets
10. Basic Algebra
Types in this section: Monoid, Commutative Monoid, Group, Ring, Abelian Group, Abelian Ring.
Types in this section: Ordinal, Mahlo.
12. Differential Topology
Types in this section: Abstract Homogeneous Structure, Shape, Étale Map, Automorphism, Fiber Bundle, Manifold, Covering Space (G-Set).
13. Hopf Fibrations
Types in this section: Hopf.
14. Introduction to K-Theory
Types in this section: Category of Commutative Monoids, Category of Abelian Groups, Grothendieck Group.
As for the tower of type theories that are necessary for CCHM (Cohen-Coquand-Huber-Mortberg) introduction we will use the following setting.
These historical prerequisites (PTS, MLTT, CiC) and will be given along the way of the course.
Cohesive Type Theory is satisfying the needs of modalities, such as connectedness, compactness, infinitesimal shapes, etc. Differential Cohesive Type Theory is the internal language of differential cohesive $(\infty,1)$-topoi, with additional structure, just as $(\infty,1)$-categories add a globular path equality structure to locally cartesian closed categories and its internal language — MLTT. Please refer to cohesivett for more information.
Cohesive types are modeled in the base library as undefined axioms. Process Calculus is another example of modality types with special spawn arrows hiding the underlying run-time implementation.