Equality, Quasi-Implicit Products, and Large Eliminations

  title={Equality, Quasi-Implicit Products, and Large Eliminations},
  author={Vilhelm Sj{\"o}berg and Aaron Stump},
This paper presents a type theory with a form of equality reflection: provable equalities can be used to coerce the type of a term. Coercions and other annotations, including implicit arguments, are dropped during reduction of terms. We develop the metatheory for an undecidable version of the system with unannotated terms. We then devise a decidable system with annotated terms, justified in terms of the unannotated system. Finally, we show how the approach can be extended to account for large… 

Figures from this paper

Irrelevance, Heterogeneous Equality, and Call-by-value Dependent Type Systems

We present a full-spectrum dependently typed core language which includes both nontermination and computational irrelevance (a.k.a. erasure), a combination which has not been studied before. The two

A Framework for Internalizing Relations into Type Theory

This paper introduces the concept of internalization, which can be used to incorporate certain relations into FΠ, a variant of system F, while maintaining termination of the new system, through the process of incorporation internalization.

A dependently typed language with nontermination

It is proved type saftey for a large subset of the Zombie core language, including features such as computational irrelevance, CBV-reduction, and propositional equality with a heterogeneous, completely erased elimination form.

Strong functional pearl: Harper’s regular-expression matcher in Cedille

This paper describes an implementation of Harper's continuation-based regular-expression matcher as a strong functional program in Cedille; i.e., Cedille statically confirms termination of the

Automatic Deduction for Theories of Algebraic Data Types

This thesis presents formal logical systems, concerned with reasoning about algebraic data types, and describes the built-in deductive capabilities of Term Builder, the deductive system based on higher order type theory, which subsumes second order and higher order logics.

Lambda encodings in type theory

This dissertation proposes to consider adding an abstraction construct to the intuitionistic type to support lambdaencoded data, while still be able to derive the corresponding induction principle.

The Implicit Calculus of Constructions

In this paper, we introduce a new type system, the Implicit Calculus of Constructions, which is a Curry-style variant of the Calculus of Constructions that we extend by adding an intersection type

Observational equality, now!

The new proposal simplifies Altenkirch's construction of a setoid-model for a system with canonicity and extensionality on top of an intensional type theory with proof-irrelevant propositions by adopting McBride's heterogeneous approach to equality.

The Implicit Calculus of Constructions as a Programming Language with Dependent Types

This paper shows how Miquel's Implicit Calculus of Constructions can be used as a programming language featuring dependent types and introduces a more verbose variant, called ICC* which fixes the issue of an undecidable type-checking.

Verified programming in Guru

This paper gives an introduction to verified programming in Guru, a type theory allowing possibly diverging programs while retaining decidability of type checking and a consistent logic.

A new type assignment for λ-terms

A new type assignment for λ-terms is proposed whose motivation is to introduce a system with simple inferential rules to study termination (i.e. the property of having a normal form) of λ -terms.

A framework for defining logics

The Edinburgh Logical Framework provides a means to define (or present) logics through a general treatment of syntax, rules, and proofs by means of a typed λ-calculus with dependent types, whereby each judgment is identified with the type of its proofs.

Parallel Reductions in lambda-Calculus

Dependently typed functional programs and their proofs

This thesis shows that the adoption of this uniqueness as axiomatic is sufficient to make pattern matching admissible, and develops technology for programming with dependent inductive families of datatypes and proving those programs correct.

Erasure and Polymorphism in Pure Type Systems

The execution model of EPTS generalizes the familiar notions of type erasure and parametric polymorphism, and it is believed functional programmers will find it quite natural to program in such a setting.

Proving termination with multiset orderings

The multiset ordering enables the use of relatively simple and intuitive termination functions in otherwise difficult termination proofs, and is used to prove the termination of production systems, programs defined in terms of sets of rewriting rules.