Results 1  10
of
93
Principles of Programming with Complex Objects and Collection Types
 Theoretical Computer Science
, 1995
"... We present a new principle for the development of database query languages that the primitive operations should be organized around types. Viewing a relational database as consisting of sets of records, this principle dictates that we should investigate separately operations for records and sets. Th ..."
Abstract

Cited by 146 (30 self)
 Add to MetaCart
We present a new principle for the development of database query languages that the primitive operations should be organized around types. Viewing a relational database as consisting of sets of records, this principle dictates that we should investigate separately operations for records and sets. There are two immediate advantages of this approach, which is partly inspired by basic ideas from category theory. First, it provides a language for structures in which record and set types may be freely combined: nested relations or complex objects. Second, the fundamental operations for sets are closely related to those for other "collection types" such as bags or lists, and this suggests how database languages may be uniformly extended to these new types. The most general operation on sets, that of structural recursion, is one in which not all programs are welldefined. In looking for limited forms of this operation that always give rise to welldefined operations, we find a number of close ...
Abstract and Concrete Categories. The Joy of Cats
, 2004
"... Contemporary mathematics consists of many different branches and is intimately related to various other fields. Each of these branches and fields is growing rapidly and is itself diversifying. Fortunately, however, there is a considerable amount of common ground — similar ideas, concepts, and constr ..."
Abstract

Cited by 102 (0 self)
 Add to MetaCart
Contemporary mathematics consists of many different branches and is intimately related to various other fields. Each of these branches and fields is growing rapidly and is itself diversifying. Fortunately, however, there is a considerable amount of common ground — similar ideas, concepts, and constructions. These provide a basis for a general theory of structures.
The purpose of this book is to present the fundamental concepts and results of such a theory, expressed in the language of category theory — hence, as a particular branch of mathematics itself. It is designed to be used both as a textbook for beginners and as a reference source. Furthermore, it is aimed toward those interested in a general theory of structures, whether they be students or researchers, and also toward those interested in using such a general theory to help with organization and clarification within a special field. The only formal prerequisite for the reader is an elementary knowledge of set theory.
Dependently Typed Functional Programs and their Proofs
, 1999
"... Research in dependent type theories [ML71a] has, in the past, concentrated on its use in the presentation of theorems and theoremproving. This thesis is concerned mainly with the exploitation of the computational aspects of type theory for programming, in a context where the properties of programs ..."
Abstract

Cited by 83 (13 self)
 Add to MetaCart
Research in dependent type theories [ML71a] has, in the past, concentrated on its use in the presentation of theorems and theoremproving. This thesis is concerned mainly with the exploitation of the computational aspects of type theory for programming, in a context where the properties of programs may readily be specified and established. In particular, it develops technology for programming with dependent inductive families of datatypes and proving those programs correct. It demonstrates the considerable advantage to be gained by indexing data structures with pertinent characteristic information whose soundness is ensured by typechecking, rather than human effort. Type theory traditionally presents safe and terminating computation on inductive datatypes by means of elimination rules which serve as induction principles and, via their associated reduction behaviour, recursion operators [Dyb91]. In the programming language arena, these appear somewhat cumbersome and give rise to unappealing code, complicated by the inevitable interaction between case analysis on dependent types and equational reasoning on their indices which must appear explicitly in the terms. Thierry Coquand’s proposal [Coq92] to equip type theory directly with the kind of
A Categorical Programming Language
, 1987
"... A theory of data types and a programming language based on category theory are presented. Data types play a crucial role in programming. They enable us to write programs easily and elegantly. Various programming languages have been developed, each of which may use different kinds of data types. Ther ..."
Abstract

Cited by 77 (0 self)
 Add to MetaCart
A theory of data types and a programming language based on category theory are presented. Data types play a crucial role in programming. They enable us to write programs easily and elegantly. Various programming languages have been developed, each of which may use different kinds of data types. Therefore, it becomes important to organize data types systematically so that we can understand the relationship between one data type and another and investigate future directions which lead us to discover exciting new data types. There have been several approaches to systematically organize data types: algebraic specification methods using algebras, domain theory using complete partially ordered sets and type theory using the connection between logics and data types. Here, we use category theory. Category theory has proved to be remarkably good at revealing the nature of mathematical objects, and we use it to understand the true nature of data types in programming.
Mongruences and Cofree Coalgebras
 Algebraic Methods and Software Technology, number 936 in Lect. Notes Comp. Sci
, 1995
"... . A coalgebra is introduced here as a model of a certain signature consisting of a type X with various "destructor" function symbols, satisfying certain equations. These destructor function symbols are like methods and attributes in objectoriented programming: they provide access to the t ..."
Abstract

Cited by 30 (10 self)
 Add to MetaCart
(Show Context)
. A coalgebra is introduced here as a model of a certain signature consisting of a type X with various "destructor" function symbols, satisfying certain equations. These destructor function symbols are like methods and attributes in objectoriented programming: they provide access to the type (or state) X. We show that the category of such coalgebras and structure preserving functions is comonadic over sets. Therefore we introduce the notion of a `mongruence' (predicate) on a coalgebra. It plays the dual role of a congrence (relation) on an algebra. An algebra is a set together with a number of operations on this set which tell how to form (derived) elements in this set, possibly satisfying some equations. A typical example is a monoid, given by a set M with operations 1 ! M , M \Theta M ! M . Here 1 = f;g is a singleton set. In mathematics one usually considers only singletyped algebras, but in computer science one more naturally uses manytyped algebras like 1 ! list(A), A \Theta l...
Categorybased Semantics for Equational and Constraint Logic Programming
, 1994
"... This thesis proposes a general framework for equational logic programming, called categorybased equational logic by placing the general principles underlying the design of the programming language Eqlog and formulated by Goguen and Meseguer into an abstract form. This framework generalises equation ..."
Abstract

Cited by 25 (10 self)
 Add to MetaCart
(Show Context)
This thesis proposes a general framework for equational logic programming, called categorybased equational logic by placing the general principles underlying the design of the programming language Eqlog and formulated by Goguen and Meseguer into an abstract form. This framework generalises equational deduction to an arbitrary category satisfying certain natural conditions; completeness is proved under a hypothesis of quantifier projectivity, using a semantic treatment that regards quantifiers as models rather than variables, and regards valuations as model morphisms rather than functions. This is used as a basis for a model theoretic categorybased approach to a paramodulationbased operational semantics for equational logic programming languages. Categorybased equational logic in conjunction with the theory of institutions is used to give mathematical foundations for modularisation in equational logic programming. We study the soundness and completeness problem for module imports i...
Monads Need Not Be Endofunctors
"... Abstract. We introduce a generalisation of monads, called relative monads, allowing for underlying functors between different categories. Examples include finitedimensional vector spaces, untyped and typed λcalculus syntax and indexed containers. We show that the Kleisli and EilenbergMoore constr ..."
Abstract

Cited by 18 (5 self)
 Add to MetaCart
(Show Context)
Abstract. We introduce a generalisation of monads, called relative monads, allowing for underlying functors between different categories. Examples include finitedimensional vector spaces, untyped and typed λcalculus syntax and indexed containers. We show that the Kleisli and EilenbergMoore constructions carry over to relative monads and are related to relative adjunctions. Under reasonable assumptions, relative monads are monoids in the functor category concerned and extend to monads, giving rise to a coreflection between monads and relative monads. Arrows are also an instance of relative monads. 1
MONADS OF EFFECTIVE DESCENT TYPE AND COMONADICITY
"... Abstract. We show, for an arbitrary adjunction F ⊣ U: B→Awith B Cauchy complete, that the functor F is comonadic if and only if the monad T on A induced by the adjunction is of effective descent type, meaning that the free Talgebra functor F T: A→A T is comonadic. This result is applied to several ..."
Abstract

Cited by 17 (6 self)
 Add to MetaCart
(Show Context)
Abstract. We show, for an arbitrary adjunction F ⊣ U: B→Awith B Cauchy complete, that the functor F is comonadic if and only if the monad T on A induced by the adjunction is of effective descent type, meaning that the free Talgebra functor F T: A→A T is comonadic. This result is applied to several situations: In Section 4 to give a sufficient condition for an exponential functor on a cartesian closed category to be monadic, in Sections 5 and 6 to settle the question of the comonadicity of those functors whose domain is Set, orSet⋆, or the category of modules over a semisimple ring, in Section 7 to study the effectiveness of (co)monads on module categories. Our final application is a descent theorem for noncommutative rings from which we deduce an important result of A. Joyal and M. Tierney and of J.P. Olivier, asserting that the effective descent morphisms in the opposite of the category of commutative unital rings are precisely the pure monomorphisms. 1.
Algebraic logic, varieties of algebras, and algebraic varieties
, 1995
"... Abstract. The aim of the paper is discussion of connections between the three kinds of objects named in the title. In a sense, it is a survey of such connections; however, some new directions are also considered. This relates, especially, to sections 3, 4 and 5, where we consider a field that could ..."
Abstract

Cited by 15 (6 self)
 Add to MetaCart
Abstract. The aim of the paper is discussion of connections between the three kinds of objects named in the title. In a sense, it is a survey of such connections; however, some new directions are also considered. This relates, especially, to sections 3, 4 and 5, where we consider a field that could be understood as an universal algebraic geometry. This geometry is parallel to universal algebra. In the monograph [51] algebraic logic was used for building up a model of a database. Later on, the structures arising there turned out to be useful for solving several problems from algebra. This is the position which the present paper is written from.
Implementing a Normalizer Using Sized Heterogeneous Types
 Journal of Functional Programming, MSFP’06 special issue
"... In the simplytyped lambdacalculus, a hereditary substitution replaces a free variable in a normal form r by another normal form s of type a, removing freshly created redexes on the fly. It can be defined by lexicographic induction on a and r, thus, giving rise to a structurally recursive normalize ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
(Show Context)
In the simplytyped lambdacalculus, a hereditary substitution replaces a free variable in a normal form r by another normal form s of type a, removing freshly created redexes on the fly. It can be defined by lexicographic induction on a and r, thus, giving rise to a structurally recursive normalizer for the simplytyped lambdacalculus. We generalize this scheme to simultaneous substitutions, preserving its simple termination argument. We further implement hereditary simultaneous substitutions in a functional programming language with sized heterogeneous inductive types, Fωb, arriving at an interpreter whose termination can be tracked by the type system of its host programming language.