2 research outputs found
Coinduction Plain and Simple
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
Infinite Computation, Co-induction and Computational Logic
Abstract. We give an overview of the coinductive logic programming paradigm. We discuss its applications to modeling ω-automata, model checking, verification, non-monotonic reasoning, developing SAT solvers, etc. We also discuss future research directions.