Programming and Reasoning with Guarded Recursion for Coinductive Types

@inproceedings{Clouston2015ProgrammingAR,
  title={Programming and Reasoning with Guarded Recursion for Coinductive Types},
  author={Ranald Clouston and Ale{\vs} Bizjak and Hans Bugge Grathwohl and Lars Birkedal},
  booktitle={FoSSaCS},
  year={2015}
}
We present the guarded lambda-calculus, an extension of the simply typed lambda-calculus with guarded recursive and coinductive types. [] Key Method We give a call-by-name operational semantics for the calculus, and define adequate denotational semantics in the topos of trees. The adequacy proof entails that the evaluation of a program always terminates. We demonstrate the expressiveness of the calculus by showing the definability of solutions to Rutten's behavioural differential equations. We introduce a…

Figures from this paper

A model of Clocked Cubical Type Theory
TLDR
This paper presents the first denotational model of a type theory combining multi-clocked guarded recursion with the features of Cubical Type Theory, which allows for simple programming and reasoning about coinductive types that are traditionally hard to represent in type theory.
A Model of Guarded Recursion With Clock Synchronisation
Denotational semantics for guarded dependent type theory
TLDR
A new model of guarded dependent type theory (GDTT), a type theory with guarded recursion and multiple clocks in which one can program with and reason about coinductive types, and shows how to model these universes in such a way that inclusions of clock contexts give rise toInclusions of universes commuting with type operations on the nose.
Greatest HITs: Higher inductive types in coinductive definitions via induction under clocks
TLDR
A new principle of induction under clocks is provided, providing computational content to one of the main axioms required for encoding coinductive types in type theory.
The clocks are ticking: no more delays!: reduction semantics for type theory with guarded recursion
TLDR
Clocked Type Theory is presented, a new type theory for guarded recursion that is more suitable for reduction semantics than the existing ones, and it is proved confluence, strong normalisation and canonicity for its reduction semantics, constructing the theoretical basis for a future implementation.
Guarded Recursive Types in Type Theory
TLDR
The main result is a model based on relational parametricity for the dependently typed calculus the authors designed, a result about strong normalization for a small language extended with guarded recursive types.
Guarded Cubical Type Theory: Path Equality for Guarded Recursion
TLDR
This paper improves the treatment of equality in guarded dependent type theory (GDTT), by combining it with cubicaltype theory (CTT), and provides a computational interpretation of extensionality for guarded recursive types.
Sequent Calculus in the Topos of Trees
TLDR
A sound and cut-free complete sequent calculus for KM lin is given via a strategy that decomposes implication into its static and irreflexive components and yields decidability of the logic and the coNP-completeness of its validity problem.
Relational Reasoning for Markov Chains in a Probabilistic Guarded Lambda Calculus
We extend the simply-typed guarded \(\lambda \)-calculus with discrete probabilities and endow it with a program logic for reasoning about relational properties of guarded probabilistic computations.
...
...

References

SHOWING 1-10 OF 55 REFERENCES
First Steps in Synthetic Guarded Domain Theory
TLDR
It is proposed that the internal logic of S provides the right setting for the synthetic construction of abstract versions of step-indexed models of programming languages and program logics and shows how to solve recursive type equations involving dependent types.
Subtyping, declaratively: an exercise in mixed induction and coinduction
TLDR
An inference system for subtyping is defined which combines the advantages of coinduction with the convenience of an explicit rule of transitivity and is mechanised using Agda, a dependently typed programming language and proof assistant.
Sequent Calculus in the Topos of Trees
TLDR
A sound and cut-free complete sequent calculus for KM lin is given via a strategy that decomposes implication into its static and irreflexive components and yields decidability of the logic and the coNP-completeness of its validity problem.
Codifying Guarded Definitions with Recursive Schemes
TLDR
An extension of the Calculus of Constructions with inductive and coinductive types which allows a more direct description of recursive definitions and develops a general method to codify a fix point definition satisfying them using well-known recursive schemes, like primitive recursion and co-recursion.
A very modal model of a modern, major, general type system
TLDR
A model of recursive and impredicatively quantified types with mutable references is presented, interpreting all of the type constructors needed for typed intermediate languages and typed assembly languages used for object-oriented and functional languages and establishing a soundness proof of the typing systems underlying these TILs and TALs---ensuring that every well-typed program is safe.
A Formalized Proof of Strong Normalization for Guarded Recursive Types
TLDR
It is proved that reduction is strongly normalizing for any depth, using a typed inductive notion of strong normalization and a Kripke model of types in two dimensions: depth and typing context.
A type theory for productive coprogramming via guarded recursion
TLDR
This paper investigates a type-based alternative to the existing syntactic productivity checks of Coq and Agda, using a combination of guarded recursion and quantification over clocks, which was developed by Atkey and McBride in the simply typed setting.
A Model of Countable Nondeterminism in Guarded Type Theory
TLDR
This work shows how to construct a logical relation for countable nondeterminism in a guarded type theory, corresponding to the internal logic of the topos Sh ω 1 of sheaves overω 1, and gives an internal proof of the adequacy of the model with respect to standard contextual equivalence.
First Steps in Synthetic Guarded Domain Theory: Step-Indexing in the Topos of Trees
TLDR
It is proposed that the internal logic of S provides the right setting for the synthetic construction of abstract versions of step-indexed models of programming languages and program logics.
...
...