Results 1 
8 of
8
Containers  Constructing Strictly Positive Types
, 2004
"... ... with disjoint coproducts and initial algebras of container functors (the categorical analogue of Wtypes) — and then establish that nested strictly positive inductive and coinductive types, which we call strictly positive types, exist in any MartinLöf category. Central to our development are t ..."
Abstract

Cited by 83 (28 self)
 Add to MetaCart
... with disjoint coproducts and initial algebras of container functors (the categorical analogue of Wtypes) — and then establish that nested strictly positive inductive and coinductive types, which we call strictly positive types, exist in any MartinLöf category. Central to our development are the notions of containers and container functors, introduced in Abbott, Altenkirch, and Ghani (2003a). These provide a new conceptual analysis of data structures and polymorphic functions by exploiting dependent type theory as a convenient way to define constructions in MartinLöf categories. We also show that morphisms between containers can be full and faithfully interpreted as polymorphic functions (i.e. natural transformations) and that, in the presence of Wtypes, all strictly positive types (including nested inductive and coinductive types) give rise to containers.
First steps in synthetic guarded domain theory: stepindexing in the topos of trees
"... ..."
(Show Context)
Continuous functions on final coalgebras
, 2007
"... In a previous paper we have given a representation of continuous functions on streams, both discretevalued functions, and functions between streams. the topology on streams is the ‘Baire ’ topology induced by taking as a basic neighbourhood the set of streams that share a given finite prefix. We ga ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
(Show Context)
In a previous paper we have given a representation of continuous functions on streams, both discretevalued functions, and functions between streams. the topology on streams is the ‘Baire ’ topology induced by taking as a basic neighbourhood the set of streams that share a given finite prefix. We gave also a combinator on the representations of stream processing functions that reflects composition. Streams are the simplest example of a nontrivial final coalgebras, playing in the coalgebraic realm the same role as do the natural numbers in the algebraic realm. Here we extend our previous results to cover the case of final coalgebras for a broad class of functors generalising (×A). The functors we deal with are those that arise from countable signatures of finiteplace untyped operators. These have many applications. The topology we put on the final coalgebra for such a functor is that induced by taking for basic neighbourhoods the set of infinite objects which share a common prefix, according to the usual definition of the final coalgebra as the limit of a certain inverse chain starting at �. 1
Generic programming with dependent types
 Spring School on Datatype Generic Programming
, 2006
"... In these lecture notes we give an overview of recent research on the relationship ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
In these lecture notes we give an overview of recent research on the relationship
Partiality, State and Dependent Types
"... Partial type theories allow reasoning about recursivelydefined computations using fixedpoint induction. However, fixedpoint induction is only sound for admissible types and not all types are admissible in sufficiently expressive dependent type theories. Previous solutions have either introduced ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
Partial type theories allow reasoning about recursivelydefined computations using fixedpoint induction. However, fixedpoint induction is only sound for admissible types and not all types are admissible in sufficiently expressive dependent type theories. Previous solutions have either introduced explicit admissibility conditions on the use of fixed points, or limited the underlying type theory. In this paper we propose a third approach, which supports Hoarestyle partial correctness reasoning, without admissibility conditions, but at a tradeoff that one cannot reason equationally about effectful computations. The resulting system is still quite expressive and useful in practice, which we confirm by an implementation as an extension of Coq.
A foundation for GADTs and inductive families: dependent polynomial functor approach
 In WGP’11
, 2011
"... Every Algebraic Datatype (ADT) is characterised as the initial algebra of a polynomial functor on sets. This paper extends the characterisation to the case of more advanced datatypes: Generalised Algebraic Datatypes (GADTs) and Inductive Families. Specifically, we show that GADTs and Inductive Fa ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
Every Algebraic Datatype (ADT) is characterised as the initial algebra of a polynomial functor on sets. This paper extends the characterisation to the case of more advanced datatypes: Generalised Algebraic Datatypes (GADTs) and Inductive Families. Specifically, we show that GADTs and Inductive Families are characterised as initial algebras of dependent polynomial functors. The theoretical tool we use throughout is an abstract notion of polynomial between sets together with its associated general form of polynomial functor between categories of indexed sets introduced by Gambino and Hyland. In the context of ADTs, this fundamental result is the basis for various generic functional programming techniques. To establish the usefulness of our approach for such developments in the broader context of inductively defined dependent types, we apply the theory to construct zippers for Inductive Families.
MFPS 2009 Continuous Functions on Final Coalgebras
"... In a previous paper we gave a representation of, and simultaneously a way of programming with, continuous functions on streams, whether discretevalued functions, or functions between streams. We also defined a combinator on the representations of such continuous functions that reflects composition. ..."
Abstract
 Add to MetaCart
(Show Context)
In a previous paper we gave a representation of, and simultaneously a way of programming with, continuous functions on streams, whether discretevalued functions, or functions between streams. We also defined a combinator on the representations of such continuous functions that reflects composition. Streams are one of the simplest examples of nontrivial final coalgebras. Here we extend our previous results to cover the case of final coalgebras for a broader class of functors than that giving rise to streams. Among the functors we can deal with are those that arise from countable signatures of finiteplace untyped operators. These have many applications. The topology we put on the final coalgebra for such a functor is that induced by taking for basic neighbourhoods the set of infinite objects which share a common ‘prefix’, a la Baire space. The datatype of prefixes is defined together with the set of ‘growth points ’ in a prefix, simultaneously. This we call beheading. To program and reason about representations of continuous functions requires a language whose type system incorporates the dependent function and pair types, inductive definitions at types Set, I → Set and (Σ I: Set) Set I, coinductive definitions at types Set and I → Set, as well as universal arrows for such definitions. Keywords: Continuous functions, final coalgebras, containers
Theory and Applications of Induction Recursion Case for Support
"... at the University of Strathclyde and asked to form the Mathematically Structured Programming research group there. Research Summary: Prof. Ghani’s research tries to understand the nature and structure of computation. This is quite a bold statement and inevitably, only partial answers will be forthco ..."
Abstract
 Add to MetaCart
at the University of Strathclyde and asked to form the Mathematically Structured Programming research group there. Research Summary: Prof. Ghani’s research tries to understand the nature and structure of computation. This is quite a bold statement and inevitably, only partial answers will be forthcoming. Nevertheless, this statement shows his commitment to ask deep and fundamental questions so as to produce research which is of the highest calibre and which will stand the test of time rather than become obsolete within a few years. In particular, he has worked extensively in the following areas which form the pillars upon which this proposal is built. – Category Theory: Category theory is a relatively new mathematical discipline which provides an abstract theory of structure and hence is key to Prof. Ghani’s work. He has applied various categorical structures such as monads, comonads, coalgebras, enriched categories and Kan extensions to problems in computation. Of closest relevance to this proposal is his work on containers which provides a theory of concrete data types. – Type Theory: Prof. Ghani uses type theory as an intermediate abstraction between functional programming and its categorical underpinnings. He has worked on features such as type systems, pattern matching and explicit substitutions which make the lambdacalculus closer to “real ” functional languages. He also developed the subject of etaexpansions and showed it to be better behaved than the more traditional theory of etacontractions. He solved the long standing open problem of the decidability of betaetaequality for sum types which had attracted