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
- PhilosophyMathematical Structures in Computer Science
- 2016
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
- Computer Science, PhilosophyCoALP-Ty
- 2016
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
- Computer ScienceJ. Log. Comput.
- 1997
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
- Computer Science
- 2011
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
- PhilosophyTOPL
- 2009
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!
- Computer ScienceTheory and Practice of Logic Programming
- 2014
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
- Computer ScienceFunctional Programming
- 1994
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
- Computer ScienceICALP
- 2007
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
- Computer ScienceFundam. Informaticae
- 2017
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*
- Computer ScienceTheory and Practice of Logic Programming
- 2017
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.