English
Related papers

Related papers: Using Structural Recursion for Corecursion

200 papers

We propose a simple calculus for processing data streams (infinite flows of data series), represented by finite sets of equations built on stream operators. Furthermore, functions defining streams are regularly corecursive, that is, cyclic…

Programming Languages · Computer Science 2021-08-03 Davide Ancona , Pietro Barbieri , Elena Zucca

Some total languages, like Agda and Coq, allow the use of guarded corecursion to construct infinite values and proofs. Guarded corecursion is a form of recursion in which arbitrary recursive calls are allowed, as long as they are guarded by…

Logic in Computer Science · Computer Science 2010-12-23 Nils Anders Danielsson

We propose a novel approach to stream definition and manipulation. Our solution is based on two key ideas. Regular corecursion, which avoids non termination by detecting cyclic calls, is enhanced, by allowing in equations defining streams…

Programming Languages · Computer Science 2022-02-15 Davide Ancona , Pietro Barbieri , Elena Zucca

Bove and Capretta's popular method for justifying function definitions by general recursive equations is based on the observation that any structured general recursion equation defines an inductive subset of the intended domain (the "domain…

Logic in Computer Science · Computer Science 2012-02-17 Tarmo Uustalu

In Constructive Type Theory, recursive and corecursive definitions are subject to syntactic restrictions which guarantee termination for recursive functions and productivity for corecursive functions. However, many terminating and…

Logic in Computer Science · Computer Science 2008-07-10 Yves Bertot , Ekaterina Komendantskaya

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…

Logic in Computer Science · Computer Science 2019-03-14 Ranald Clouston , Aleš Bizjak , Hans Bugge Grathwohl , Lars Birkedal

Structural recursion is a common technique used by programmers in modern languages and is taught to introductory computer science students. But what about its dual, structural corecursion? Structural corecursion is an elegant technique,…

Programming Languages · Computer Science 2026-03-05 Zena M. Ariola , Paul Downen , Hugo Herbelin

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…

Programming Languages · Computer Science 2015-01-16 Ranald Clouston , Aleš Bizjak , Hans Bugge Grathwohl , Lars Birkedal

Constructive type theory combines logic and programming in one language. This is useful both for reasoning about programs written in type theory, as well as for reasoning about other programming languages inside type theory. It is…

Programming Languages · Computer Science 2024-10-25 Philipp Jan Andries Stassen , Rasmus Ejlers Møgelberg , Maaike Zwart , Alejandro Aguirre , Lars Birkedal

Recursive relational specifications are commonly used to describe the computational structure of formal systems. Recent research in proof theory has identified two features that facilitate direct, logic-based reasoning about such…

Logic in Computer Science · Computer Science 2010-09-24 Andrew Gacek , Dale Miller , Gopalan Nadathur

Guarded recursion is a framework allowing for a formalisation of streams in classical programming languages. The latter take their semantics in cartesian closed categories. However, some programming paradigms do not take their semantics in…

Logic in Computer Science · Computer Science 2025-03-05 Louis Lemonnier

Our aim here is to illustrate how the benefits of structural corecursion can be found in a broader swath of the programming landscape than previously thought. Beginning from a tutorial on structural corecursion in the total, pure functional…

Programming Languages · Computer Science 2021-03-15 Paul Downen , Zena M. Ariola

Neither the classical nor intuitionistic logic traditions are perfectly-aligned with the purpose of reasoning about computation, in that neither tradition can permit unconstrained recursive definitions without inconsistency: recursive…

Programming Languages · Computer Science 2026-01-27 Elliot Bobrow , Bryan Ford , Stefan Milenkovic

In type theory, coinductive types are used to represent processes, and are thus crucial for the formal verification of non-terminating reactive programs in proof assistants based on type theory, such as Coq and Agda. Currently, programming…

Logic in Computer Science · Computer Science 2018-11-01 Rasmus Ejlers Møgelberg , Niccolò Veltri

We define representations of continuous functions on infinite streams of discrete values, both in the case of discrete-valued functions, and in the case of stream-valued functions. We define also an operation on the representations of two…

Data Structures and Algorithms · Computer Science 2015-07-01 Neil Ghani , Peter Hancock , Dirk Pattinson

We investigate feasible computation over a fairly general notion of data and codata. Specifically, we present a direct Bellantoni-Cook-style normal/safe typed programming formalism, RS1, that expresses feasible structural recursions and…

Logic in Computer Science · Computer Science 2012-01-31 Norman Danner , James S. Royer

Notions of guardedness serve to delineate the admissibility of cycles, e.g. in recursion, corecursion, iteration, or tracing. We introduce an abstract notion of guardedness structure on a symmetric monoidal category, along with a…

Logic in Computer Science · Computer Science 2018-02-27 Sergey Goncharov , Lutz Schröder

Motivated by the recent interest in models of guarded (co-)recursion we study its equational properties. We formulate axioms for guarded fixpoint operators generalizing the axioms of iteration theories of Bloom and Esik. Models of these…

Logic in Computer Science · Computer Science 2013-09-05 Stefan Milius , Tadeusz Litak

Motivated by the recent interest in models of guarded (co-)recursion, we study their equational properties. We formulate axioms for guarded fixpoint operators generalizing the axioms of iteration theories of Bloom and \'Esik. Models of…

Logic in Computer Science · Computer Science 2018-08-21 Stefan Milius , Tadeusz Litak

Coinductive reasoning about infinitary structures such as streams is widely applicable. However, practical frameworks for developing coinductive proofs and finding reasoning principles that help structure such proofs remain a challenge,…

Programming Languages · Computer Science 2020-01-13 Yannick Zakowski , Paul He , Chung-Kil Hur , Steve Zdancewic
‹ Prev 1 2 3 10 Next ›