Write a Blog >>
ICFP 2020
Thu 20 - Fri 28 August 2020
Sun 23 Aug 2020 10:00 - 10:30 at TyDe - Session 1

People writing proofs or programs in dependently typed languages can omit some function arguments in order to decrease the code size and improve readability. Type checking such a program involves filling in each of these implicit arguments in a type-correct way. This is typically done using some form of unification.

One approach to unification, taken by Agda, involves sometimes starting to unify terms before their types are known to be equal: in some cases one can make progress on unifying the terms, and then use information gleaned in this way to unify the types. This flexibility allows Agda to solve implicit arguments that are not found by several other systems. However, Agda’s implementation is buggy: sometimes the solutions chosen are ill-typed, which can cause the type checker to crash.

Gundry and McBride’s twin variable technique also allows starting to unify terms before their types are known to be equal, and furthermore this technique is accompanied by correctness proofs. However, so far this technique has not been tested in practice as part of a full type checker.

We have reformulated Gundry and McBride’s technique without twin variables, using only twin types, with the aim of making the technique easier to implement in existing type checkers (in particular Agda). We have also introduced a type-agnostic syntactic equality rule that seems to be useful in practice. The reformulated technique has been tested in a type checker for a tiny variant of Agda. This type checker handles some challenging examples that Coq, Idris, Lean and Matita cannot handle, and does so in time and space comparable to that used by Agda. This suggests that the reformulated technique is usable in practice.

Sun 23 Aug
Times are displayed in time zone: Eastern Time (US & Canada) change

10:00 - 11:30: Session 1TyDe at TyDe
10:00 - 10:30
Practical Dependent Type Checking Using Twin Types
Víctor López JuanChalmers University of Technology, Nils Anders DanielssonUniversity of Gothenburg, Chalmers University of Technology
Media Attached
10:30 - 11:00
Shallowly Embedding Type Theories as Presheaf Models in Agda (Extended Abstract)
Joris CeulemansVrije Universiteit Brussel, Dominique DevrieseVrije Universiteit Brussel
File Attached
11:00 - 11:30
Generalization of Meta-Programs with Dependent Types in Mtac2 with Mtac2 (Extended Abstract)
Ignacio TiraboschiNone, Jan-Oliver KaiserMPI-SWS, Beta ZilianiFAMAF, UNC and CONICET