Reference. Elegant elaboration with function invocation

We present an elegant design of the core language in a dependently-typed lambda calculus with 𝛿-reduction and an elaboration algorithm.

Cite

Cite as @zhang-2021-elegant (helia, typst) · \cite{zhang-2021-elegant} (LaTeX)
BibTeX
bibtex · 8 lines
@misc{zhang-2021-elegant,
  author = {Tesla Zhang},
  title = {Elegant elaboration with function invocation},
  year = {2021},
  month = {5},
  eprint = {2105.14840},
  archiveprefix = {arXiv}
}
hayagriva YAML (typst)
yaml · 7 lines
zhang-2021-elegant:
  type: misc
  title: Elegant elaboration with function invocation
  author: Zhang, Tesla
  date: 2021-05
  serial-number:
    arxiv: '2105.14840'
Cites 12 works (2 here)
With notes (2)

A simpler encoding of indexed types zhang-2021-a

In functional programming languages, generalized algebraic data types (GADTs) are very useful as the unnecessary pattern matching over them can be ruled out by the failure of unification of type arguments. In dependent type systems, this is usually called indexed types and it’s particularly useful as the identity type is a special case of it. However, pattern matching over indexed types is very complicated as it requires term unification in general. We study a simplified version of indexed types (called simpler indexed types) where we explicitly specify the selection process of constructors, and we discuss its expressiveness, limitations, and properties.
DOI · arXiv

Elaboration in Dependent Type Theory moura-2015-elaboration

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 usability. We describe the central design goals, and the means by which they are achieved.
arXiv
External (10)
zhang-2021-elegant reference entries/refs/zhang-2021-elegant/zhang-2021-elegant.hel