4 research outputs found
Generic Fibrational Induction
This paper provides an induction rule that can be used to prove properties of
data structures whose types are inductive, i.e., are carriers of initial
algebras of functors. Our results are semantic in nature and are inspired by
Hermida and Jacobs' elegant algebraic formulation of induction for polynomial
data types. Our contribution is to derive, under slightly different
assumptions, a sound induction rule that is generic over all inductive types,
polynomial or not. Our induction rule is generic over the kinds of properties
to be proved as well: like Hermida and Jacobs, we work in a general fibrational
setting and so can accommodate very general notions of properties on inductive
types rather than just those of a particular syntactic form. We establish the
soundness of our generic induction rule by reducing induction to iteration. We
then show how our generic induction rule can be instantiated to give induction
rules for the data types of rose trees, finite hereditary sets, and
hyperfunctions. The first of these lies outside the scope of Hermida and
Jacobs' work because it is not polynomial, and as far as we are aware, no
induction rules have been known to exist for the second and third in a general
fibrational framework. Our instantiation for hyperfunctions underscores the
value of working in the general fibrational setting since this data type cannot
be interpreted as a set.Comment: For Special Issue from CSL 201
Refining Inductive Types
Dependently typed programming languages allow sophisticated properties of
data to be expressed within the type system. Of particular use in dependently
typed programming are indexed types that refine data by computationally useful
information. For example, the N-indexed type of vectors refines lists by their
lengths. Other data types may be refined in similar ways, but programmers must
produce purpose-specific refinements on an ad hoc basis, developers must
anticipate which refinements to include in libraries, and implementations must
often store redundant information about data and their refinements. In this
paper we show how to generically derive inductive characterisations of
refinements of inductive types, and argue that these characterisations can
alleviate some of the aforementioned difficulties associated with ad hoc
refinements. Our characterisations also ensure that standard techniques for
programming with and reasoning about inductive types are applicable to
refinements, and that refinements can themselves be further refined
Relating coalgebraic notions of bisimulation
The theory of coalgebras, for an endofunctor on a category, has been proposed
as a general theory of transition systems. We investigate and relate four
generalizations of bisimulation to this setting, providing conditions under
which the four different generalizations coincide. We study transfinite
sequences whose limits are the greatest bisimulations