,
Jeremy Avigad
Creative Commons Attribution 4.0 International license
Canonical is a solver for type inhabitation in dependent type theory, that is, the problem of producing a term of a given type. We present a Lean tactic which invokes Canonical to generate proof terms and synthesize programs. The tactic supports higher-order and dependently-typed goals, structural recursion over indexed inductive types, and definitional equality. Canonical finds proofs for 84% of Natural Number Game problems in 51 seconds total.
@InProceedings{norman_et_al:LIPIcs.ITP.2025.14,
author = {Norman, Chase and Avigad, Jeremy},
title = {{Canonical for Automated Theorem Proving in Lean}},
booktitle = {16th International Conference on Interactive Theorem Proving (ITP 2025)},
pages = {14:1--14:20},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-396-6},
ISSN = {1868-8969},
year = {2025},
volume = {352},
editor = {Forster, Yannick and Keller, Chantal},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ITP.2025.14},
URN = {urn:nbn:de:0030-drops-246128},
doi = {10.4230/LIPIcs.ITP.2025.14},
annote = {Keywords: Automated Reasoning, Interactive Theorem Proving, Dependent Type Theory, Inhabitation, Unification, Program Synthesis, Formal Methods}
}
archived version
archived version
archived version
archived version