The structures of induction and co-induction.
- đ¤ Speaker: Paul Downen, University of Oregon.
- đ Date & Time: Thursday 17 September 2015, 15:00 - 16:00
- đ Venue: Small Lecture Theatre, Microsoft Research Ltd, 21 Station Road, Cambridge, CB1 2FB
Abstract
We know that induction and co-induction are two sides of the same coin. So why do our proof assistants and dependently typed languages, like Coq and Agda, support induction better than co-induction? The root of this bias grows out of missing symmetries in our languages, and recovering this symmetry restores the balance. I will present a style of programming that emphasises the patterns of structures for user-defined data and co-data types, where induction and co-induction both blend together under the single umbrella of structural recursion. I will also discuss how to prevent infinite loops and ensure termination (i.e., well-foundedness) by tracking the size of structures in types. The type-based approach to termination gives a mechanism for encapsulating well-founded recursion principles themselves as data and co-data types, giving us first-class structures for describing structural recursion.
Series This talk is part of the Microsoft Research Cambridge, public talks series.
Included in Lists
- All Talks (aka the CURE list)
- bld31
- Cambridge Centre for Data-Driven Discovery (C2D3)
- Cambridge talks
- Chris Davis' list
- Guy Emerson's list
- Interested Talks
- Microsoft Research Cambridge, public talks
- ndk22's list
- ob366-ai4er
- Optics for the Cloud
- personal list
- PMRFPS's
- rp587
- School of Technology
- Small Lecture Theatre, Microsoft Research Ltd, 21 Station Road, Cambridge, CB1 2FB
- Trust & Technology Initiative - interesting events
- yk449
Note: Ex-directory lists are not shown.
![[Talks.cam]](/static/images/talkslogosmall.gif)

Paul Downen, University of Oregon.
Thursday 17 September 2015, 15:00-16:00