598 research outputs found
Structured general corecursion and coinductive graphs [extended abstract]
Bove and Capretta's popular method for justifying function definitions by
general recursive equations is based on the observation that any structured
general recursion equation defines an inductive subset of the intended domain
(the "domain of definedness") for which the equation has a unique solution. To
accept the definition, it is hence enough to prove that this subset contains
the whole intended domain.
This approach works very well for "terminating" definitions. But it fails to
account for "productive" definitions, such as typical definitions of
stream-valued functions. We argue that such definitions can be treated in a
similar spirit, proceeding from a different unique solvability criterion. Any
structured recursive equation defines a coinductive relation between the
intended domain and intended codomain (the "coinductive graph"). This relation
in turn determines a subset of the intended domain and a quotient of the
intended codomain with the property that the equation is uniquely solved for
the subset and quotient. The equation is therefore guaranteed to have a unique
solution for the intended domain and intended codomain whenever the subset is
the full set and the quotient is by equality.Comment: In Proceedings FICS 2012, arXiv:1202.317
Global semantic typing for inductive and coinductive computing
Inductive and coinductive types are commonly construed as ontological
(Church-style) types, denoting canonical data-sets such as natural numbers,
lists, and streams. For various purposes, notably the study of programs in the
context of global semantics, it is preferable to think of types as semantical
properties (Curry-style). Intrinsic theories were introduced in the late 1990s
to provide a purely logical framework for reasoning about programs and their
semantic types. We extend them here to data given by any combination of
inductive and coinductive definitions. This approach is of interest because it
fits tightly with syntactic, semantic, and proof theoretic fundamentals of
formal logic, with potential applications in implicit computational complexity
as well as extraction of programs from proofs. We prove a Canonicity Theorem,
showing that the global definition of program typing, via the usual (Tarskian)
semantics of first-order logic, agrees with their operational semantics in the
intended model. Finally, we show that every intrinsic theory is interpretable
in a conservative extension of first-order arithmetic. This means that
quantification over infinite data objects does not lead, on its own, to
proof-theoretic strength beyond that of Peano Arithmetic. Intrinsic theories
are perfectly amenable to formulas-as-types Curry-Howard morphisms, and were
used to characterize major computational complexity classes Their extensions
described here have similar potential which has already been applied
Normalization by Evaluation in the Delay Monad: A Case Study for Coinduction via Copatterns and Sized Types
In this paper, we present an Agda formalization of a normalizer for
simply-typed lambda terms. The normalizer consists of two coinductively defined
functions in the delay monad: One is a standard evaluator of lambda terms to
closures, the other a type-directed reifier from values to eta-long beta-normal
forms. Their composition, normalization-by-evaluation, is shown to be a total
function a posteriori, using a standard logical-relations argument.
The successful formalization serves as a proof-of-concept for coinductive
programming and reasoning using sized types and copatterns, a new and presently
experimental feature of Agda.Comment: In Proceedings MSFP 2014, arXiv:1406.153
Proving Continuity of Coinductive Global Bisimulation Distances: A Never Ending Story
We have developed a notion of global bisimulation distance between processes
which goes somehow beyond the notions of bisimulation distance already existing
in the literature, mainly based on bisimulation games. Our proposal is based on
the cost of transformations: how much we need to modify one of the compared
processes to obtain the other. Our original definition only covered finite
processes, but a coinductive approach allows us to extend it to cover infinite
but finitary trees. After having shown many interesting properties of our
distance, it was our intention to prove continuity with respect to projections,
but unfortunately the issue remains open. Nonetheless, we have obtained several
partial results that are presented in this paper.Comment: In Proceedings PROLE 2015, arXiv:1512.0617
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
A Sound and Complete Projection for Global Types
Multiparty session types is a typing discipline used to write specifications, known as global types, for branching and recursive message-passing systems. A necessary operation on global types is projection to abstractions of local behaviour, called local types. Typically, this is a computable partial function that given a global type and a role erases all details irrelevant to this role.
Computable projection functions in the literature are either unsound or too restrictive when dealing with recursion and branching. Recent work has taken a more general approach to projection defining it as a coinductive, but not computable, relation. Our work defines a new computable projection function that is sound and complete with respect to its coinductive counterpart and, hence, equally expressive. All results have been mechanised in the Coq proof assistant
- …