Termination Checking In The Presence Of Mixed Induction And Coinduction
Stc
Date: 2010-06-24
Time: 11:00
Room:
BBL 023
Speaker: Steven Keuchel
Title: Termination checking in the presence of mixed induction and coinduction
Abstract
Nowadays coinduction is widely used in computer science to formally
define and reason about potentially infinite structures. Amongst other
things it is used for streams and other infinite data types, describing
communication systems and concurrency and defining subtyping relations
for recursive types. Purely coinductive defined structures might
be too infinite, so that a mix of induction and coinduction becomes
necessary. In Agda, a dependently typed functional programming language
and proof assistant, one can define and reason about programs working
on mixed inductive and coinductive data types. At the same time Agda
strives to be a total language: all programs must terminate. In this
talk an introduction to codata and corecursion is given and the
termination checking process currently used in Agda for functions
using mixed inductive and coinductive data is described.