🤖 AI Summary
This work addresses the undecidability of inhabitation and unification in dependent type theory by proposing and implementing a solver named Canonical-min. Built upon a mere 185 lines of Lean code, the solver leverages a monadic transformation framework to refactor a type checker into an efficient solver, achieving both soundness and completeness despite its minimal implementation. The contributions include the first realization of a sound and complete inhabitation and unification solver within such a compact codebase, as well as the creation of DTTBench—the first benchmark suite specifically designed for evaluating dependent type inhabitation solvers—thereby establishing a standardized foundation for future research in this area.
📝 Abstract
Dependent type theory is the foundation of many modern proof assistants. Inhabitation and unification are undecidable problems that are useful for theorem proving and program synthesis. We introduce Canonical-min, a sound and complete solver for inhabitation and unification in dependent type theory, implemented in 185 lines of Lean code. This paper describes a novel implementation of dependent type theory and a monadic framework to transform the type checker into a performant solver. Finally, we introduce DTTBench, a benchmark for type inhabitation in dependent type theory.