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



type theory


guarded types


EDIT Building, room EE
Opponent: Conor McBride


Andrea Vezzosi

Chalmers, Data- och informationsteknik, Datavetenskap


Grundläggande vetenskaper


Datavetenskap (datalogi)

EDIT Building, room EE

Opponent: Conor McBride

Mer information