Corecursive programs produce values of greatest fixpoint types, in contrast to recursive programs, which consume values of least fixpoint types. There are a number of widely used methods for proving properties of corecursive programs, including fixpoint induction, the take lemma, and coinduction. However, these methods are all rather low level, in that they do not exploit the common structure that is often present in corecursive definitions. We argue for a more structured approach to proving properties of corecursive programs. In particular, we show that by writing corecursive programs using a simple operator that encapsulates a common pattern of corecursive definition, we can then use high-level algebraic properties of this operator to...
AbstractIn Constructive Type Theory, recursive and corecursive definitions are subject to syntactic ...
International audienceWe propose a (limited) solution to the problem of constructing stream values d...
We argue that abstract datatypes - with public interfaces hiding private implementations - represent...
Corecursive programs produce values of greatest fixpoint types, in contrast to recursive programs, w...
Recursion is a well-known and powerful programming technique, with a wide variety of applications. ...
Abstract. Recursion is a well-known and powerful programming technique, with a wide variety of appli...
This paper presents a new approach to optimising corecursive programs by factorisation. In particula...
Programmers happily use induction to prove properties of recursive programs. To show properties of c...
This paper presents a formalized framework for defining corecursive functions safely in a total sett...
This paper presents a formalized framework for defining corecursive functions safely in a total sett...
peer-reviewedProofs involving infinite structures can use corecursive functions as inhabitants of a...
This paper presents a new approach to optimising corecursive pro-grams by factorisation. In particul...
International audienceThis paper presents a formalized framework for defining corecursive functions ...
Coinduction is an important concept in functional programming. To formally prove properties of corec...
Presented at the WPTE 2022 workshop (https://wpte2022.github.io), Haïfa, Israel, August 2022, whose ...
AbstractIn Constructive Type Theory, recursive and corecursive definitions are subject to syntactic ...
International audienceWe propose a (limited) solution to the problem of constructing stream values d...
We argue that abstract datatypes - with public interfaces hiding private implementations - represent...
Corecursive programs produce values of greatest fixpoint types, in contrast to recursive programs, w...
Recursion is a well-known and powerful programming technique, with a wide variety of applications. ...
Abstract. Recursion is a well-known and powerful programming technique, with a wide variety of appli...
This paper presents a new approach to optimising corecursive programs by factorisation. In particula...
Programmers happily use induction to prove properties of recursive programs. To show properties of c...
This paper presents a formalized framework for defining corecursive functions safely in a total sett...
This paper presents a formalized framework for defining corecursive functions safely in a total sett...
peer-reviewedProofs involving infinite structures can use corecursive functions as inhabitants of a...
This paper presents a new approach to optimising corecursive pro-grams by factorisation. In particul...
International audienceThis paper presents a formalized framework for defining corecursive functions ...
Coinduction is an important concept in functional programming. To formally prove properties of corec...
Presented at the WPTE 2022 workshop (https://wpte2022.github.io), Haïfa, Israel, August 2022, whose ...
AbstractIn Constructive Type Theory, recursive and corecursive definitions are subject to syntactic ...
International audienceWe propose a (limited) solution to the problem of constructing stream values d...
We argue that abstract datatypes - with public interfaces hiding private implementations - represent...