• Corpus ID: 220646744

Coinduction Plain and Simple

@article{Bry2020CoinductionPA,
  title={Coinduction Plain and Simple},
  author={Franccois Bry},
  journal={ArXiv},
  year={2020},
  volume={abs/2007.09909}
}
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… 

References

SHOWING 1-10 OF 91 REFERENCES
Practical coinduction
TLDR
It is shown that coinduction is not only about bisimilarity and equality of behaviors, but also applicable to a variety of functions and relations defined on coinductive datatypes.
Extending Coinductive Logic Programming with Co-Facts
TLDR
A generalized logic programming paradigm where programs, consisting of facts and rules with the usual syntax, can be enriched by co-facts, which syntactically resemble facts but have a special meaning, hence inductive and coinductive predicates can coexist in the same program.
Mechanizing Coinduction and Corecursion in Higher-Order Logic
TLDR
A theory of recursive and corecursive deflnitions has been developed in higher-order logic and mechanized using Isabelle to support reasoning about a wide range of computable functions, but it does not formalize their operational semantics and can express noncomputable functions also.
Advanced Topics in Bisimulation and Coinduction: List of contributors
TLDR
This collection of surveys is aimed at both researchers and Master's students in computer science and mathematics and deals with various aspects of bisimulation and coinduction, with an emphasis on process theory.
On the origins of bisimulation and coinduction
The origins of bisimulation and bisimilarity are examined, in the three fields where they have been independently discovered: Computer Science, Philosophical Logic (precisely, Modal Logic), Set
Tabling, Rational Terms, and Coinduction Finally Together!
TLDR
This paper reports the extension of YAP's Prolog tabling mechanism to support rational terms, and describes the internal representation of rational terms within the table space and proves its correctness.
A Tutorial on Co-induction and Functional Programming
  • A. Gordon
  • Computer Science
    Functional Programming
  • 1994
TLDR
It is shown how to prove properties of lazy streams by co-induction and derive Bird and Wadler’s Take Lemma, a well-known proof technique for lazy streams.
Co-Logic Programming: Extending Logic Programming with Coinduction
TLDR
The theory and practice of co-logic programming is presented, a paradigm that combines both inductive and coinductive logic programming that has applications to rational trees, verifying infinitary properties, lazy evaluation, concurrent LP, model checking, bisimilarity proofs, etc.
CoCaml: Functional Programming with Regular Coinductive Types
TLDR
CoCaml is presented, a functional programming language extending OCaml, which allows us to define recursive functions on regular coinductive datatypes, but parameterized by an equation solver.
Productive corecursion in logic programming*
TLDR
This paper proposes a method that semi-decides productivity of individual derivations for regular formulae and presents an implementation of this algorithm, the first algorithmic counterpart to the notion of productivity of derivations in logic programming.
...
...