14 research outputs found
On Well-Founded and Recursive Coalgebras
This paper studies fundamental questions concerning category-theoretic models
of induction and recursion. We are concerned with the relationship between
well-founded and recursive coalgebras for an endofunctor. For monomorphism
preserving endofunctors on complete and well-powered categories every coalgebra
has a well-founded part, and we provide a new, shorter proof that this is the
coreflection in the category of all well-founded coalgebras. We present a new
more general proof of Taylor's General Recursion Theorem that every
well-founded coalgebra is recursive, and we study under which hypothesis the
converse holds. In addition, we present a new equivalent characterization of
well-foundedness: a coalgebra is well-founded iff it admits a
coalgebra-to-algebra morphism to the initial algebra
On Corecursive Algebras for Functors Preserving Coproducts
For an endofunctor H on a hyper-extensive category preserving countable coproducts we describe the free corecursive algebra on Y as the coproduct of the terminal coalgebra for H and the free H-algebra on Y. As a consequence, we derive that H is a cia functor, i.e., its corecursive algebras are precisely the cias (completely iterative algebras). Also all functors H(-) + Y are then cia functors. For finitary set functors we prove that, conversely, if H is a cia functor, then it has the form H = W times (-) + Y for some sets W and Y
Generic point-free lenses
Lenses are one the most popular approaches to define bidirectional transformations between data models. A bidirectional transformation with view-update, denoted a lens, encompasses the definition of a forward transformation projecting concrete models into abstract views, together with a backward transformation instructing how to translate an abstract view to an update over concrete models. In this paper we show that most of the standard point-free combinators can be lifted to lenses with suitable backward semantics, allowing us to use the point-free style to define powerful bidirectional transformations by composition. We also demonstrate how to define generic lenses over arbitrary inductive data types by lifting standard recursion patterns, like folds or unfolds. To exemplify the power of this approach, we “lensify” some standard functions over naturals and lists, which are tricky to define directly “by-hand” using explicit recursion
Language Constructs for Non-Well-Founded Computation
Recursive functions defined on a coalgebraic datatype C may not
converge if there are cycles in the input, that is, if the input object
is not well-founded. Even so, there is often a useful solution; for
example, the free variables of an infinitary λ-term, or the expected
running time of a finite-state probabilistic protocol.
Theoretical models of recursion schemes have been well studied
CoCaml: Functional Programming with Regular Coinductive Types
Functional languages offer a high level of abstraction, which results in programs that are elegant and easy to understand. Central to the development of functional programming are inductive and coinductive types and associated programming constructs, such as pattern-matching. Whereas inductive types have a long tradition and are well supported in most languages, coinductive types are subject of more recent research and are less mainstream.
We present CoCaml, a functional programming language extending OCaml, which allows us to define recursive functions on regular coinductive datatypes. These functions are defined like usual recursive functions, but parameterized by an equation solver. We present a full implementation of all the constructs and solvers and show how these can be used in a variety of examples, including operations on infinite lists, infinitary Îł-terms, and p-adic numbers