English
Related papers

Related papers: Using Structural Recursion for Corecursion

200 papers

Guarded recursion is a powerful modal approach to recursion that can be seen as an abstract form of step-indexing. It is currently used extensively in separation logic to model programming languages with advanced features by solving domain…

Logic in Computer Science · Computer Science 2022-06-06 Magnus Baunsgaard Kristensen , Rasmus Ejlers Møgelberg , Andrea Vezzosi

A theory of recursive and corecursive definitions has been developed in higher-order logic (HOL) and mechanized using Isabelle. Least fixedpoints express inductive data types such as strict lists; greatest fixedpoints express coinductive…

Logic in Computer Science · Computer Science 2007-05-23 Lawrence C. Paulson

In the present paper we study stability of recurrence equations (which in particular case contain a dynamics of rational functions) generated by contractive functions defined on an arbitrary non-Archimedean algebra. Moreover,…

Dynamical Systems · Mathematics 2016-01-06 Farrukh Mukhamedov , Hasan Akin

In most presentations of ACP with guarded recursion, recursive specifications are finite or infinite sets of recursion equations of which the right-hand sides are guarded terms. The completeness with respect to bisimulation equivalence of…

Logic in Computer Science · Computer Science 2020-05-05 R. J. van Glabbeek , C. A. Middelburg

Clocked Cubical Type Theory is a new type theory combining the power of guarded recursion with univalence and higher inductive types (HITs). This type theory can be used as a metalanguage for synthetic guarded domain theory in which one can…

Logic in Computer Science · Computer Science 2021-12-30 Rasmus Ejlers Møgelberg , Andrea Vezzosi

This paper introduces the notion of referring forms as a new metric for analyzing sequential circuits from a functional perspective. Sequential circuits are modeled as causal stream functions, the outputs of which depend solely on the past…

Hardware Architecture · Computer Science 2025-01-22 Shunji Nishimura

The objective of this paper is to present general, mechanically verified, refinement rules for reasoning about recursive programs and while loops in the context of concurrency. Unlike many approaches to concurrency, we do not assume that…

Logic in Computer Science · Computer Science 2025-12-09 Ian J. Hayes , Larissa A. Meinicke , Cliff B. Jones

Nakano's later modality can be used to specify and define recursive functions which are causal or synchronous; in concert with a notion of clock variable, it is possible to also capture the broader class of productive (co)programs. Until…

Logic in Computer Science · Computer Science 2021-04-20 Jonathan Sterling , Robert Harper

We posit that autoregressive flow models are well-suited to performing a range of causal inference tasks - ranging from causal discovery to making interventional and counterfactual predictions. In particular, we exploit the fact that…

Machine Learning · Statistics 2020-07-28 Ricardo Pio Monti , Ilyes Khemakhem , Aapo Hyvarinen

Expressive querying of machine learning models - viewed as a form of intentional data - enables their verification and interpretation using declarative languages, thereby making learned representations of data more accessible. Motivated by…

Logic in Computer Science · Computer Science 2026-01-07 Martin Grohe , Christoph Standke , Juno Steegmans , Jan Van den Bussche

Different types of reasoning impose different structural demands on representational systems, yet no systematic account of these demands exists across psychology, AI, and philosophy of mind. I propose a framework identifying four structural…

Artificial Intelligence · Computer Science 2026-04-03 Yiling Wu

Coinduction refers to both a technique for the definition of infinite streams, so-called codata, and a technique for proving the equality of coinductively specified codata. This article first reviews coinduction in declarative programming.…

Programming Languages · Computer Science 2020-07-23 François Bry

interpreters are tools to compute approximations for behaviors of a program. These approximations can then be used for optimisation or for error detection. In this paper, we show how to describe an abstract interpreter using the type-theory…

Logic in Computer Science · Computer Science 2008-10-20 Yves Bertot

Primitive recursion is a mature, well-understood topic in the theory and practice of programming. Yet its dual, primitive corecursion, is underappreciated and still seen as exotic. We aim to put them both on equal footing by giving a…

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

We present a unified theory for formal mathematical systems including recursive systems closely related to formal grammars, including the predicate calculus as well as a formal induction principle. We introduce recursive systems generating…

Logic · Mathematics 2021-12-21 Matthias Kunik

Type theories with multi-clocked guarded recursion provide a flexible framework for programming with coinductive types encoding productivity in types. Combining this with solutions to general guarded domain equations one can also construct…

Logic in Computer Science · Computer Science 2025-12-15 Rasmus Ejlers Møgelberg

We propose abstract compilation for precise static type analysis of object-oriented languages based on coinductive logic programming. Source code is translated to a logic program, then type-checking and inference problems amount to queries…

Programming Languages · Computer Science 2017-09-15 Luca Franceschini , Davide Ancona , Ekaterina Komendantskaya

Modern machine learning systems represent their computations as dataflow graphs. The increasingly complex neural network architectures crave for more powerful yet efficient programming abstractions. In this paper we propose an efficient…

Programming Languages · Computer Science 2024-10-29 Kelly Kostopoulou , Angelos Charalambidis , Panos Rondogiannis

User defined recursive types are a fundamental feature of modern functional programming languages like Haskell, Clean, and the ML family of languages. Properties of programs defined by recursion on the structure of recursive types are…

Programming Languages · Computer Science 2013-12-11 James Caldwell

Nakano's later modality allows types to express that the output of a function does not immediately depend on its input, and thus that computing its fixpoint is safe. This idea, guarded recursion, has proved useful in various contexts, from…

Programming Languages · Computer Science 2020-08-04 Adrien Guatto