The Guarded Lambda-Calculus: Programming and Reasoning with Guarded Recursion for Coinductive Types

We present the guarded lambda-calculus, an extension of the simply typed lambda-calculus with guarded recursive and coinductive types. The use of guarded recursive types ensures the productivity of well-typed programs. Guarded recursive types may be transformed into coinductive types by a type-forme...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Logical methods in computer science Ročník 12, Issue 3
Hlavní autoři: Clouston, Ranald, Bizjak, Aleš, Grathwohl, Hans Bugge, Birkedal, Lars
Médium: Journal Article
Jazyk:angličtina
Vydáno: Logical Methods in Computer Science e.V 01.01.2016
Témata:
ISSN:1860-5974, 1860-5974
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:We present the guarded lambda-calculus, an extension of the simply typed lambda-calculus with guarded recursive and coinductive types. The use of guarded recursive types ensures the productivity of well-typed programs. Guarded recursive types may be transformed into coinductive types by a type-former inspired by modal logic and Atkey-McBride clock quantification, allowing the typing of acausal functions. 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 introduce a program logic with L\"ob induction for reasoning about the contextual equivalence of programs. We demonstrate the expressiveness of the calculus by showing the definability of solutions to Rutten's behavioural differential equations.
ISSN:1860-5974
1860-5974
DOI:10.2168/LMCS-12(3:7)2016