Journal article, 2018

Type theory should be able to handle its own meta-theory, both to justify its foundational claims and to obtain a verified implementation. At the core of a type checker for intensional type theory lies an algorithm to check equality of types, or in other words, to check whether two types are convertible. We have formalized in Agda a practical conversion checking algorithm for a dependent type theory with one universe à la Russell, natural numbers, and η-equality for Π types. We prove the algorithm correct via a Kripke logical relation parameterized by a suitable notion of equivalence of terms. We then instantiate the parameterized fundamental lemma twice: once to obtain canonicity and injectivity of type formers, and once again to prove the completeness of the algorithm. Our proof relies on inductive-recursive definitions, but not on the uniqueness of identity proofs. Thus, it is valid in variants of intensional Martin-Löf Type Theory as long as they support induction-recursion, for instance, Extensional, Observational, or Homotopy Type Theory.

Agda

Formalization

Dependent types

Logical relations

Chalmers, Computer Science and Engineering (Chalmers), Computing Science (Chalmers)

Fundacion IMDEA Software

Chalmers, Computer Science and Engineering (Chalmers), Computing Science (Chalmers)

2475-1421 (ISSN)

Vol. 2 POPL 23:1-23:29 23Algebra and Logic

Geometry

Mathematical Analysis

Basic sciences

10.1145/3158111