Elaboration in Dependent Type Theory
Leonardo de Moura, Jeremy Avigad, Soonho Kong, Cody Roux

TL;DR
This paper presents an elaboration algorithm for dependent type theory implemented in Lean, enabling efficient and user-friendly expression, definition, and proof development in interactive theorem proving.
Contribution
It introduces a comprehensive elaboration algorithm supporting various features like higher-order unification and type inference, enhancing the usability of dependent type theory in proof assistants.
Findings
Supports higher-order unification and type class inference
Balances efficiency and usability in elaboration process
Implemented successfully in the Lean theorem prover
Abstract
To be usable in practice, interactive theorem provers need to provide convenient and efficient means of writing expressions, definitions, and proofs. This involves inferring information that is often left implicit in an ordinary mathematical text, and resolving ambiguities in mathematical expressions. We refer to the process of passing from a quasi-formal and partially-specified expression to a completely precise formal one as elaboration. We describe an elaboration algorithm for dependent type theory that has been implemented in the Lean theorem prover. Lean's elaborator supports higher-order unification, type class inference, ad hoc overloading, insertion of coercions, the use of tactics, and the computational reduction of terms. The interactions between these components are subtle and complex, and the elaboration algorithm has been carefully designed to balance efficiency and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
