Results 1  10
of
18
Recursion Schemes from Comonads
, 2001
"... . Within the setting of the categorical approach to programming with total functions, a \manyinone" recursion scheme is introduced that neatly unies a variety of recursion schemes looking as diverging generalizations of the basic recursion scheme of iteration. The scheme is doubly generic: in addi ..."
Abstract

Cited by 21 (4 self)
 Add to MetaCart
. Within the setting of the categorical approach to programming with total functions, a \manyinone" recursion scheme is introduced that neatly unies a variety of recursion schemes looking as diverging generalizations of the basic recursion scheme of iteration. The scheme is doubly generic: in addition to behaving uniformly with respect to a functor determining an inductive type, it is also uniform in a comonad and a distributive law which together determine a particular recursion scheme for this inductive type. By way of examples, it is shown to subsume iteration, a scheme subsuming primitive recursion, and a scheme subsuming courseofvalue iteration.
An Axiomatic Approach to Binary Logical Relations with Applications to Data Refinement
 Proc. TACS'97, Springer LNCS 1281
, 1997
"... We introduce an axiomatic approach to logical relations and data refinement. We consider a programming language and the monad on the category of small categories generated by it. We identify abstract data types for the language with sketches for the associated monad, and define an axiomatic notion o ..."
Abstract

Cited by 18 (1 self)
 Add to MetaCart
We introduce an axiomatic approach to logical relations and data refinement. We consider a programming language and the monad on the category of small categories generated by it. We identify abstract data types for the language with sketches for the associated monad, and define an axiomatic notion of "relation" between models of such a sketch in a semantic category. We then prove three results: (i) such models lift to the whole language together with the sketch; (ii) any such relation satisfies a soundness condition, and (iii) such relations compose. We do this for both equality of data representations and for an ordered version. Finally, we compare our formulation of data refinement with that of Hoare. This work has been done with the support of the MITI Cooperative Architecture Project. This author also acknowledges the support of Kakenhi. y This author achnowledges the support of the MITI Cooperative Architecture Project. z This author acknowledges the support of EPSRC grant...
Pasting Schemes for the Monoidal Biclosed Structure on
, 1995
"... Using the theory of pasting presentations, developed in chapter 2, I give a detailed description of the tensor product on !categories, which extends Gray's tensor product on 2categories and which is closely related to BrownHiggins's tensor product on !groupoids. Immediate consequences are a gen ..."
Abstract

Cited by 18 (0 self)
 Add to MetaCart
Using the theory of pasting presentations, developed in chapter 2, I give a detailed description of the tensor product on !categories, which extends Gray's tensor product on 2categories and which is closely related to BrownHiggins's tensor product on !groupoids. Immediate consequences are a general and uniform definition of higher dimensional lax natural transformations, and a nice and transparent description of the corresponding internal homs. Further consequences will be in the development of a theory for weak ncategories, since both tensor products and lax structures are crucial in this. Contents 1 Introduction 3 2 Cubes and cubical sets 5 2.1 Cubes combinatorially : : : : : : : : : : : : : : : : : : : : : : : : 5 2.2 A model category for cubes : : : : : : : : : : : : : : : : : : : : : 6 2.3 Generating the model category for cubes : : : : : : : : : : : : : : 7 2.4 Cubical sets : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 2.5 Duality : : : : : : : : : : : : : ...
The Structure of CallbyValue
, 2000
"... To my parents Understanding procedure calls is crucial in computer science and everyday programming. Among the most common strategies for passing procedure arguments (‘evaluation strategies’) are ‘callbyname’, ‘callbyneed’, and ‘callbyvalue’, where the latter is the most commonly used. While ..."
Abstract

Cited by 12 (3 self)
 Add to MetaCart
To my parents Understanding procedure calls is crucial in computer science and everyday programming. Among the most common strategies for passing procedure arguments (‘evaluation strategies’) are ‘callbyname’, ‘callbyneed’, and ‘callbyvalue’, where the latter is the most commonly used. While reasoning about procedure calls is simple for callbyname, problems arise for callbyneed and callbyvalue, because it matters how often and in which order the arguments of a procedure are evaluated. We shall classify these problems and see that all of them occur for callbyvalue, some occur for callbyneed, and none occur for callbyname. In that sense, callbyvalue is the ‘greatest common denominator ’ of the three evaluation strategies. Reasoning about callbyvalue programs has been tackled by Eugenio Moggi’s ‘computational lambdacalculus’, which is based on a distinction between ‘values’
Generic Programming With Relations and Functors
 Journal of Functional Programming
, 1999
"... This paper explores the idea of generic programming in which programs are parameterised by data types. Part of the constructive theory of lists, specically the part dealing with properties of segments, is generalised in two ways: from lists to arbitrary inductive data types, and from functions to ..."
Abstract

Cited by 9 (6 self)
 Add to MetaCart
This paper explores the idea of generic programming in which programs are parameterised by data types. Part of the constructive theory of lists, specically the part dealing with properties of segments, is generalised in two ways: from lists to arbitrary inductive data types, and from functions to relations. The new theory is used to solve a generic problem about segments. 1 Introduction To what extent is it possible to construct programs without knowing exactly what data types are involved? At rst sight this may seem a strange question, but consider the case of pattern matching. Over lists, this problem can be formulated in terms of two strings, a pattern and a text; the object is to determine if and where the pattern occurs as a segment of the text. Now, pattern matching can be generalised to other data types, including arrays and trees of various kinds; the essential step is to be able to dene the notion of `segment' in these types. So the intriguing question arises: can one...
Graphbased logic and sketches I: The general framework. Available by web browser from http://www.cwru.edu/1/class/mans/math/pub/wells
, 1996
"... Sketches as a method of specification of mathematical structures are an alternative to the stringbased specification employed in mathematical logic. ..."
Abstract

Cited by 8 (4 self)
 Add to MetaCart
Sketches as a method of specification of mathematical structures are an alternative to the stringbased specification employed in mathematical logic.
Modular monad transformers
 In ESOP ’09: Proceedings of the 18th European Symposium on Programming Languages and Systems
, 2009
"... Abstract. During the last two decades, monads have become an indispensable tool for structuring functional programs with computational effects. In this setting, the mathematical notion of a monad is extended with operations that allow programmers to manipulate these effects. When several effects are ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
Abstract. During the last two decades, monads have become an indispensable tool for structuring functional programs with computational effects. In this setting, the mathematical notion of a monad is extended with operations that allow programmers to manipulate these effects. When several effects are involved, monad transformers can be used to build up the required monad one effect at a time. Although this seems to be modularity nirvana, there is a catch: in addition to the construction of a monad, the effectmanipulating operations need to be lifted to the resulting monad. The traditional approach for lifting operations is nonmodular and adhoc. We solve this problem with a principled technique for lifting operations that makes monad transformers truly modular. 1
Lax Naturality Through Enrichment
, 1995
"... We develop the relationship between algebraic structure and monads enriched over the monoidal biclosed category LocOrd l of small locally ordered categories, with closed structure given by Lax(A; B). We state the theorem, give a series of examples, and incorporate an account of sketches and cont ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
We develop the relationship between algebraic structure and monads enriched over the monoidal biclosed category LocOrd l of small locally ordered categories, with closed structure given by Lax(A; B). We state the theorem, give a series of examples, and incorporate an account of sketches and contravariance into the theory. This was motivated by C.A.R. Hoare's use of category theoretic structures to model data refinement. 1 Introduction In 1987, C.A.R. Hoare wrote a draft paper, "Data refinement in a categorical setting" [10] in which he used category theory to provide an abstract formalism for his development of data refinement over the previous twenty years [9]. The notion of data refinement is central to the programming method called stepwise refinement proposed by Wirth [19], and gave rise to work on abstract data types such as the IOTA programming system developed by Nakajima, Honda and Nakahara [16]. As Hoare said in [10], there was evidently a unified body of category theo...