Results 1 - 10
of
46
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 111 (28 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 well-defined operations, we find a number of close ...
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 62 (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.
Dependently Typed Functional Programs and their Proofs
, 1999
"... Research in dependent type theories [M-L71a] has, in the past, concentrated on its use in the presentation of theorems and theorem-proving. 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 61 (13 self)
- Add to MetaCart
Research in dependent type theories [M-L71a] has, in the past, concentrated on its use in the presentation of theorems and theorem-proving. 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
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 40 (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.
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 object-oriented programming: they provide access to the type (or st ..."
Abstract
-
Cited by 31 (10 self)
- Add to MetaCart
. 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 object-oriented 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 single-typed algebras, but in computer science one more naturally uses many-typed algebras like 1 ! list(A), A \Theta l...
Category-based 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 24 (10 self)
- Add to MetaCart
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 category-based approach to a paramodulation-based operational semantics for equational logic programming languages. Category-based 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...
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 13 (5 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.
Set Functors and Generalised Terms
- Proc. IPMU 2000, 8th Information Processing and Management of Uncertainty in Knowledge-Based Systems Conference
, 2000
"... In this paper we use techniques for monad compositions in order to provide a basis for categorical unification in the framework of generalised terms. In particular, we provide results for many-valued sets of terms, and show that this composition of set functors can be extended to a monad. ..."
Abstract
-
Cited by 8 (7 self)
- Add to MetaCart
In this paper we use techniques for monad compositions in order to provide a basis for categorical unification in the framework of generalised terms. In particular, we provide results for many-valued sets of terms, and show that this composition of set functors can be extended to a monad.
Implementing a normalizer using sized heterogeneous types
- In Workshop on Mathematically Structured Functional Programming, MSFP
, 2006
"... In the simply-typed lambda-calculus, 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 7 (1 self)
- Add to MetaCart
In the simply-typed lambda-calculus, 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 simply-typed lambda-calculus. 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.
Monads Need Not Be Endofunctors
"... Abstract. We introduce a generalisation of monads, called relative monads, allowing for underlying functors between different categories. Examples include finite-dimensional vector spaces, untyped and typed λ-calculus syntax and indexed containers. We show that the Kleisli and Eilenberg-Moore constr ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
Abstract. We introduce a generalisation of monads, called relative monads, allowing for underlying functors between different categories. Examples include finite-dimensional vector spaces, untyped and typed λ-calculus syntax and indexed containers. We show that the Kleisli and Eilenberg-Moore 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

