POPL 2026
Sun 11 - Sat 17 January 2026 Rennes, France
Sat 17 Jan 2026 14:22 - 14:45 at Salle 13 - Session 3

Dependently typed proof assistants offer powerful meta-programming features, which users can take advantage of to implement proof automation or compile-time code generation. This talk is about a recent pre-print surveying meta-programming frameworks in Rocq, Agda, and Lean, with seven implementations of a running example: deriving instances for the Functor type class. This example is fairly simple, but sufficiently realistic to highlight recurring difficulties with meta-programming: conceptual limitations of frameworks such as term representation – and in particular binder representation –, meta-language expressiveness, and verifiability as well as current limitations such as API completeness, learning curve, and prover state management, which could in principle be remedied. We conclude with insights regarding features an ideal meta-programming framework should provide.

Sat 17 Jan

Displayed time zone: Brussels, Copenhagen, Madrid, Paris change