Log In Sign Up

Gradualizing the Calculus of Inductive Constructions

by   Meven Lennon-Bertrand, et al.

Acknowledging the ordeal of a fully formal development in a proof assistant such as Coq, we investigate gradual variations on the Calculus of Inductive Construction (CIC) for swifter prototyping with imprecise types and terms. We observe, with a no-go theorem, a crucial tradeoff between graduality and the key properties of normalization and closure of universes under dependent product that CIC enjoys. Beyond this Fire Triangle of Graduality, we explore the gradualization of CIC with three different compromises, each relaxing one edge of the Fire Triangle. We develop a parametrized presentation of Gradual CIC that encompasses all three variations, and develop their metatheory. We first present a bidirectional elaboration of Gradual CIC to a dependently-typed cast calculus, which elucidates the interrelation between typing, conversion, and the gradual guarantees. We use a syntactic model into CIC to inform the design of a safe, confluent reduction, and establish, when applicable, normalization. We also study the stronger notion of graduality as embedding-projection pairs formulated by New and Ahmed, using appropriate semantic model constructions. This work informs and paves the way towards the development of malleable proof assistants and dependently-typed programming languages.


Consistency of the Predicative Calculus of Cumulative Inductive Constructions (pCuIC)

In order to avoid well-know paradoxes associated with self-referential d...

Functional Pearl: The Distributive λ-Calculus

We introduce a simple extension of the λ-calculus with pairs—called the ...

Complete Bidirectional Typing for the Calculus of Inductive Constructions

This article presents a bidirectional type system for the Calculus of In...

A Reasonably Gradual Type Theory

Gradualizing the Calculus of Inductive Constructions (CIC) involves deal...

Strong Normalization for the Calculus of Constructions

The calculus of constructions (CC) is a core theory for dependently type...

Dependent Pearl: Normalization by realizability

For those of us who generally live in the world of syntax, semantic proo...

On principal types and well-foundedness of terms in ECC

When we investigate a type system, it is helpful if we can establish the...