J. Robin B. Cockett
University of Calgary
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by J. Robin B. Cockett.
european symposium on programming | 1994
C. Barry Jay; J. Robin B. Cockett
Shapely types separate data, represented by lists, from shape, or structure. This separation supports shape polymorphism, where operations are defined for arbitrary shapes, and shapely operations, for which the shape of the result is determined by that of the input, permitting static shape checking. They include both arrays and the usual algebraic types (of trees, graphs, etc.), and are closed under the formation of initial algebras.
Mathematical Structures in Computer Science | 2007
J. Robin B. Cockett; Stephen Lack
A restriction category is an abstract formulation for a category of partial maps, defined in terms of certain specified idempotents called the restriction idempotents. All categories of partial maps are restriction categories; conversely, a restriction category is a category of partial maps if and only if the restriction idempotents split. Restriction categories facilitate reasoning about partial maps as they have a purely algebraic formulation. In this paper we consider colimits and limits in restriction categories. As the notion of restriction category is not self-dual, we should not expect colimits and limits in restriction categories to behave in the same manner. The notion of colimit in the restriction context is quite straightforward, but limits are more delicate. The suitable notion of limit turns out to be a kind of lax limit, satisfying certain extra properties. Of particular interest is the behaviour of the coproduct, both by itself and with respect to partial products. We explore various conditions under which the coproducts are ‘extensive’ in the sense that the total category (of the related partial map category) becomes an extensive category. When partial limits are present, they become ordinary limits in the total category. Thus, when the coproducts are extensive we obtain as the total category a lextensive category. This provides, in particular, a description of the extensive completion of a distributive category.
Mathematical Structures in Computer Science | 2009
J. Robin B. Cockett; Ernie Manes
A restriction category is an abstract category of partial maps. A Boolean restriction category is a restriction category that supports classical (Boolean) reasoning. Such categories are models of loop-free dynamic logic that is deterministic in the sense that Q ⊂ [α]Q. Classical restriction categories are restriction categories with a locally Boolean structure: it is shown that they are precisely full subcategories of Boolean restriction categories. In particular, a Boolean restriction category may be characterised as a classical restriction category with finite coproducts in which all restriction idempotents split. Every restriction category admits a restriction embedding into a Boolean restriction category. Thus, every abstract category of partial maps admits a conservative extension that supports classical reasoning. An explicit construction of the classical completion of a restriction category is given.
Electronic Notes in Theoretical Computer Science | 2010
J. Robin B. Cockett; Brian F. Redmond
A polarized strong category consists of a cartesian category, X, and a category Y, together with a module M:XxY->Y equipped with a strong composition and identities. These categories can be used to provide an abstract setting for investigating computational setting with complexity below primitive recursive. This paper develops the theory of polarized strong categories, explains how they relate to the theory of fibrations, and provides a concrete example which illustrates their applicability to these lower complexity systems of computation.
Electronic Notes in Theoretical Computer Science | 2001
J. Robin B. Cockett
Abstract The problem of proving that two programs, in any reasonable programming language, are equivalent is well-known to be undecidable. In a formal programming system, in which the rules for equivalence are finitely presented, the problem of provable equivalence is semi-decidable. Despite this improved situation there is a significant lack of generally accepted automated techniques for systematically searching for a proof (or disproof) of program equivalence. Techniques for searching for proofs of equivalence often stumble on the formulation of induction and, of course, coinduction (when it is present) which are often formulated in such a manner as to require inspired guesses. There are, however, well-known program transformation techniques which do address these issues. Of particular interest to this paper are the deforestation techniques introduced by Phil Wadler and the fold/unfold program transformation techniques introduced by Burstall and Darlington. These techniques are shadows of an underlying cut-elimination procedure and, as such, should be more generally recognized as proof techniques. In this paper we show that these techniques apply to languages which have both inductive and coinductive datatypes. The relationship between these program transformation techniques and cut-elimination requires a transformation from initial and final “algebra” proof rules into “circular” proof rules as introduced by Santocanale (and used implicitly in the model checking community). This transformation is only possible in certain proof systems. Here we show that it can be applied to cartesian closed categories with datatypes: closedness is an essential requirement. The cut-elimination theorems and attendant program transformation techniques presented here rely heavily on this alternate presentation of induction and coinduction.
Theoretical Computer Science | 2014
J. Robin B. Cockett; Richard Garner
Restriction categories were introduced as a simple equational axiomatisation for categories of partial maps such as those which arise in the foundations of computability theory. A restriction structure on a category is given by an operation obeying four simple axioms, that assigns to each morphism of the category an endomorphism of its domain to be thought of as the partial identity representing the degree of definition. In this paper, we show that restriction categories can be seen as a kind of enriched category; this allows their theory to be studied by way of the enrichment. Unlike most enrichments, ours is based not on a monoidal category, but rather a weak double category in the sense of Grandis-Pare, and provides-from a purely mathematical perspective-an example of such an enrichment arising in nature. Beyond exhibiting restriction categories as enriched categories, we show that varying the base of this enrichment also allows the important notions of join and range restriction category to be understood in the same manner.
Electronic Notes in Theoretical Computer Science | 2003
J. Robin B. Cockett; Luigi Santocanale
We investigate the reasons for which the existence of certain right adjoints implies the existence of some final coalgebras, and vice-versa. In particular we prove and discuss the following theorem which has been partially available in the literature: let F a G be a pair of adjoint functors, and suppose that an initial algebra b F(X) of the functor H(Y ) = X + F(Y ) exists; then a right adjoint e G(X) to b F(X) exists if and only if a final coalgebra ˇ G(X) of the functor K(Y ) = X ◊ G(Y ) exists. Motivated by the problem of understanding the structures that arise from initial algebras, we show the following: if F is a left adjoint with a certain commutativity property, then an initial algebra of H(Y ) = X + F(Y ) generates a subcategory of functors with inductive types where the functorial composition is constrained to be a Cartesian product.
Electronic Notes in Theoretical Computer Science | 2010
Pieter J. W. Hofstra; J. Robin B. Cockett
This paper explores the fine structure of classifying categories of partial equational theories. The central concept is that of unitary category, and results about those are applied to the problem of completing partial algebras to total ones. We also look at the special case of partial combinatory logic and give a characterization of the global sections of the generic PCA.
mathematics of program construction | 2006
J. Robin B. Cockett
Current mathematical tools for understanding processes predominantly support process modeling. In particular, they faithully represent all the things that can go wrong (deadlock, livelock, etc.). However, for the development of good programming abstractions in concurrent (and other) setting it is important to focus on formal systems in which things do not go wrong. So what are the formal models of processes where nothing goes wrong?
fixed points in computer science | 2009
Michael J. Burrell; J. Robin B. Cockett; Brian F. Redmond