English
Related papers

Related papers: Inductive and Coinductive Components of Corecursiv…

200 papers

We describe a way to represent computable functions between coinductive types as particular transducers in type theory. This generalizes earlier work on functions between streams by P. Hancock to a much richer class of coinductive types.…

Logic in Computer Science · Computer Science 2023-06-22 Pierre Hyvernat

In a previous work, we proved that almost all of the Calculus of Inductive Constructions (CIC), which is the basis of the proof assistant Coq, can be seen as a Calculus of Algebraic Constructions (CAC), an extension of the Calculus of…

Logic in Computer Science · Computer Science 2016-08-16 Frédéric Blanqui

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

Coinductive definitions, such as that of an infinite stream, may often be described by elegant logic programs, but ones for which SLD-refutation is of no value as SLD-derivations fall into infinite loops. Such definitions give rise to…

Programming Languages · Computer Science 2013-12-24 Ekaterina Komendantskaya , John Power , Martin Schmidt

"Interaction trees" (ITrees) are a general-purpose data structure for representing the behaviors of recursive programs that interact with their environments. A coinductive variant of "free monads," ITrees are built out of uninterpreted…

Programming Languages · Computer Science 2019-11-18 Li-yao Xia , Yannick Zakowski , Paul He , Chung-Kil Hur , Gregory Malecha , Benjamin C. Pierce , Steve Zdancewic

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

This article presents a bidirectional type system for the Calculus of Inductive Constructions (CIC). It introduces a new judgement intermediate between the usual inference and checking, dubbed constrained inference, to handle the presence…

Programming Languages · Computer Science 2021-04-20 Meven Lennon-Bertrand

Capitalizing on previous encodings and formal developments about nominal calculi and type systems, we propose a weak Higher-Order Abstract Syntax formalization of the type language of pure System F<: within Coq, a proof assistant based on…

Logic in Computer Science · Computer Science 2013-04-01 Alberto Ciaffaglione , Ivan Scagnetto

Based on a new coinductive characterization of continuous functions we extract certified programs for exact real number computation from constructive proofs. The extracted programs construct and combine exact real number algorithms with…

Logic in Computer Science · Computer Science 2015-07-01 Ulrich Berger

A new theory of data types which allows for the definition of types as initial algebras of certain functors Fam(C) -> Fam(C) is presented. This theory, which we call positive inductive-recursive definitions, is a generalisation of Dybjer…

Logic in Computer Science · Computer Science 2015-07-01 Neil Ghani , Fredrik Nordvall Forsberg , Lorenzo Malatesta

Computational content encoded into constructive type theory proofs can be used to make computing experiments over concrete data structures. In this paper, we explore this possibility when working in Coq with chain complexes of infinite type…

Logic in Computer Science · Computer Science 2010-04-29 César Domínguez , Julio Rubio

Sets and relations are very useful concepts for defining denotational semantics. In the Coq proof assistant, curried functions to Prop are used to represent sets and relations, e.g. A -> Prop, A -> B -> Prop, A -> B -> C -> Prop, etc.…

Programming Languages · Computer Science 2024-04-09 Qinxiang Cao , Xiwei Wu , Yalun Liang

Expressive static typing disciplines are a powerful way to achieve high-quality software. However, the adoption cost of such techniques should not be under-estimated. Just like gradual typing allows for a smooth transition from…

Programming Languages · Computer Science 2015-08-25 Éric Tanter , Nicolas Tabareau

The aim of the paper is to provide solid foundations for a programming paradigm natively supporting the creation and manipulation of cyclic data structures. To this end, we describe coFJ, a Java-like calculus where objects can be infinite…

Programming Languages · Computer Science 2020-05-29 Davide Ancona , Pietro Barbieri , Francesco Dagnino , Elena Zucca

We describe our experience implementing a broad category-theory library in Coq. Category theory and computational performance are not usually mentioned in the same breath, but we have needed substantial engineering effort to teach Coq to…

Category Theory · Mathematics 2022-05-04 Jason Gross , Adam Chlipala , David I. Spivak

The purpose of this paper is to clarify the relationship between various conditions implying essential undecidability: our main result is that there exists a theory $T$ in which all partially recursive functions are representable, yet $T$…

Logic · Mathematics 2020-05-13 Emil Jeřábek

We describe several views of the semantics of a simple programming language as formal documents in the calculus of inductive constructions that can be verified by the Coq proof system. Covered aspects are natural semantics, denotational…

Logic in Computer Science · Computer Science 2007-07-10 Yves Bertot

In order to avoid well-know paradoxes associated with self-referential definitions, higher-order dependent type theories stratify the theory using a countably infinite hierarchy of universes (also known as sorts), Type$_0$ : Type$_1$ :…

Programming Languages · Computer Science 2020-03-12 Amin Timany , Matthieu Sozeau

In the context of interactive theorem provers based on a dependent type theory, automation tactics (dedicated decision procedures, call of automated solvers, ...) are often limited to goals which are exactly in some expected logical…

Logic in Computer Science · Computer Science 2024-02-22 Valentin Blot , Denis Cousineau , Enzo Crance , Louise Dubois de Prisque , Chantal Keller , Assia Mahboubi , Pierre Vial

We give an explicit coinduction principle for recursively-defined stochastic processes. The principle applies to any closed property, not just equality, and works even when solutions are not unique. The rule encapsulates low-level analytic…

Logic in Computer Science · Computer Science 2015-07-01 Dexter Kozen