Where do we come from and where do we go?
Jesper Cockx
13 October 2020



Agda’s type checker checks correctness of our programs and proofs…
…but who checks the checker?

CheckInternal!BUT: does not cover datatypes and pattern matching

BUT: no formally defined type system

Nice for doing optimizations
BUT: impossible to implement a type checker
MetaCoq SafeCheck, a safe-by-construction typecheckerType : TypeMy goal: develop a core language for Agda that:
The more features can be encoded, the smaller the core language can be…
… but the more complex the elaboration and the harder to understand the core code!
How to ensure new features can be added without rewriting Agda Core from scratch?
