A Functional Programmer's Guide to Homotopy Type Theory
Dependent type theories are functional programming languages with types rich enough to do computer-checked mathematics and software verification. Homotopy type theory is a recent area of work that connects dependent type theory to the mathematical disciplines of homotopy theory and higher-dimensional category theory. From a programming point of view, these connections have revealed that all types in dependent type theory support a certain generic program that had not previously been exploited. Specifically, each type can be equipped with computationally relevant witnesses of equality of elements of that type, and all types support a generic program that transports elements along these equalities. One mechanism for equipping types with non-trivial witnesses of equality is Voevodsky’s univalence axiom, which implies that equality of types themselves is witnessed by type isomorphism. Another is higher inductive types, an extended datatype schema that allows identifications between different datatype constructors. While these new mechanisms were originally formulated as axiomatic extensions of type theory, recent work has investigated their computational meaning, leading to the development of new programming languages that better support them. In this talk, I will illustrate what univalence and higher inductive types mean in programming terms. I will also discuss how studying some related semantic settings can reveal additional structure on types; for example, moving from groupoids (categories where all maps are invertible) to general categories yields an account of coercions instead of equalities. Overall, I hope to convey some of the beauty and richness of these connections between disciplines, which we are just beginning to understand.
Dan Licata is an assistant professor of computer science at Wesleyan University. He received his PhD from Carnegie Mellon University in 2011, and was a postdoc at the Institute for Advanced Study in 2012-2013. His PhD thesis, on programming domain-specific specification logics in type theory, won the 2012 FoLLI E.W. Beth Dissertation Award. Two of his current projects investigate extensions and applications of homotopy type theory, and cost analysis of functional programs. He designed and regularly teaches an introductory functional programming course that integrates parallel thinking throughout the semester.