Coinduction Plain and Simple

07/20/2020
by   François Bry, et al.
0

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. Second, it reviews and slightly extends the formalism commonly used for specifying codata. Third, it generalizes the coinduction proof principle, which has been originally specified for the equality predicate only, to other predicates. This generalization makes the coinduction proof principle more intuitive and stresses its closeness with structural induction. The article finally suggests in its conclusion extensions of functional and logic programming with limited and decidable forms of the generalized coinduction proof principle.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/17/2019

Path Spaces of Higher Inductive Types in Homotopy Type Theory

The study of equality types is central to homotopy type theory. Characte...
research
02/28/2019

Infinite Types, Infinite Data, Infinite Interaction

We describe a way to represent computable functions between coinductive ...
research
05/18/2023

Parameterized Complexity of Equality MinCSP

We study the parameterized complexity of MinCSP for so-called equality l...
research
06/24/2019

Transitivity of Subtyping for Intersection Types

The subtyping relation for intersection type systems traditionally emplo...
research
08/05/2020

Extensional equality preservation and verified generic programming

In verified generic programming, one cannot exploit the structure of con...
research
07/13/2019

Sharing Equality is Linear

The λ-calculus is a handy formalism to specify the evaluation of higher-...
research
03/01/2018

Memoryless Determinacy of Infinite Parity Games: Another Simple Proof

The memoryless determinacy of infinite parity games was proven independe...

Please sign up or login with your details

Forgot password? Click here to reset