A simpler encoding of indexed types

  title={A simpler encoding of indexed types},
  author={Yinsen Zhang},
  journal={Proceedings of the 6th ACM SIGPLAN International Workshop on Type-Driven Development},
  • Yinsen Zhang
  • Published 29 March 2021
  • Computer Science
  • Proceedings of the 6th ACM SIGPLAN International Workshop on Type-Driven Development
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… 
Elegant elaboration with function invocation
We present an elegant design of the core language in a dependentlytyped lambda calculus with δ-reduction and an elaboration algorithm.


The Aya Proof Assistant. https://github.com/aya-prover/ aya-dev
  • 2021
Vectors are records, too
  • 2018
Cubical agda: a dependently typed programming language with univalence and higher inductive types
This paper describes an extension of the dependently typed functional programming language Agda with cubical primitives, making it into a full-blown proof assistant with native support for univalence and a general schema of higher inductive types.
Elaborating dependent (co)pattern matching
This work presents an algorithm elaborating definitions by dependent copattern matching to a core language with inductive datatypes, coinductive record types, an identity type, and constants defined by well-typed case trees, and proves that elaboration preserves the first-match semantics of the user clauses.
Programming with ornaments
It is shown how current dependently typed programming technology can lead to a clean treatment of the binomial heap constraints when implementing heap operations, and some gaps between the current technology and an ideal dependently typing programming language are identified.
Higher inductive types in cubical computational type theory
This work extends the cartesian cubical computational type theory introduced by Angiuli et al. with a schema for indexed cubical inductive types (CITs), an adaptation of higher induction types to the cubical setting, and proves a canonicity theorem with respect to these values.
Indexed Types
Type-and-scope safe programs and their proofs
This work abstracts the common type-and-scope safe structure from computations on λ-terms that deliver, e.g., renaming, substitution, evaluation, CPS-transformation, and printing with a name supply and can prove generic simulation and fusion lemmas relating operations built this way.
Cubical Type Theory: A Constructive Interpretation of the Univalence Axiom
A type theory in which it is possible to directly manipulate n-dimensional cubes based on an interpretation of dependenttype theory in a cubical set model that enables new ways to reason about identity types, for instance, function extensionality is directly provable in the system.