Guarded Recursive Types in Type Theory
Licentiatavhandling, 2015

In total functional (co)programming valid programs are guaranteed to always produce (part of) their output in a finite number of steps. Enforcing this property while not sacrificing expressivity has been challenging. Traditionally systems like Agda and Coq have relied on a syntactic restriction on (co)recursive calls, but this is inherently anti-modular. Guarded recursion, first introduced by Nakano, has been recently applied in the coprogramming case to ensure totality through typing instead. The relationship between the consumption and the production of data is captured by a delay modality, which allows to give a safe type to a general fixpoint combinator. This thesis consists of two parts. In the first we formalize, using the proof assistant Agda, a result about strong normalization for a small language extended with guarded recursive types. In the second we extend guarded recursive types to additionally ensure termination of recursive programs: the main result is a model based on relational parametricity for the dependently typed calculus we designed.

sized types

induction

coinduction

type theory

totality

guarded types

Agda

EDIT Building, room EE
Opponent: Conor McBride

Författare

Andrea Vezzosi

Chalmers, Data- och informationsteknik, Datavetenskap

Fundament

Grundläggande vetenskaper

Ämneskategorier

Datavetenskap (datalogi)

EDIT Building, room EE

Opponent: Conor McBride