Results 1 
9 of
9
Elements of a Relational Theory of Datatypes
 Formal Program Development, volume 755 of Lecture Notes in Computer Science
, 1993
"... The "Boom hierarchy" is a hierarchy of types that begins at the level of trees and includes lists, bags and sets. This hierarchy forms the basis for the calculus of total functions developed by Bird and Meertens, and which has become known as the "BirdMeertens formalism". This paper describes a hie ..."
Abstract

Cited by 35 (0 self)
 Add to MetaCart
The "Boom hierarchy" is a hierarchy of types that begins at the level of trees and includes lists, bags and sets. This hierarchy forms the basis for the calculus of total functions developed by Bird and Meertens, and which has become known as the "BirdMeertens formalism". This paper describes a hierarchy of types that logically precedes the Boom hierarchy. We show how the basic operators of the BirdMeertens formalism (map, reduce and filter) can be introduced in a logical sequence by beginning with a very simple structure and successively refining that structure. The context of this work is a relational theory of datatypes, rather than a calculus of total functions. Elements of the theory necessary to the later discussion are summarised at the beginning of the paper. 1 Introduction This paper reports on an experiment into the design of a programming algebra. The algebra is an algebra of datatypes oriented towards the calculation of polymorphic functions and relations. Its design d...
A Structured Specification of an Active Database System
, 1995
"... Active database systems are a current focus of considerable research interest, as a means of supporting a range of tasks including constraint enforcement, realtime applications and derived data management. However, although many different proposals have been made for active rule systems, such propo ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
Active database systems are a current focus of considerable research interest, as a means of supporting a range of tasks including constraint enforcement, realtime applications and derived data management. However, although many different proposals have been made for active rule systems, such proposals are normally described in an informal manner, which makes it difficult to understand how different proposals differ or how a set of rules will behave. This paper compares a range of formal specification methods, considering how suitable they are for describing active database functionality, and then shows how the modelbased notation ObjectZ, an objectoriented extension of Z, can be used to specify the semantics of a representative active database system, namely Starburst. Keywords: formal specification, active rules, active database, Starburst, Z, ObjectZ. 1 Active database systems Active database systems extend a preexisting database model (relational, extended relational, funct...
An InitialAlgebra Approach to Directed Acyclic Graphs
, 1995
"... . The initialalgebra approach to modelling datatypes consists of giving constructors for building larger objects of that type from smaller ones, and laws identifying di#erentways of constructing the same object. The recursive decomposition of objects of the datatype leads directly to a recursiv ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
. The initialalgebra approach to modelling datatypes consists of giving constructors for building larger objects of that type from smaller ones, and laws identifying di#erentways of constructing the same object. The recursive decomposition of objects of the datatype leads directly to a recursive pattern of computation on those objects, whichisvery helpful for both functional and parallel programming. We showhow to model a particular kind of directed acyclic graph using this initialalgebra approach. Keywords. Graphs, data types, catamorphisms, initial algebras, BirdMeertens Formalism, program derivation. 1 Introduction It is now widely recognized that the traditional adhoc approaches to program construction do not yield reliable software; a more systematic and formal approach is required. One such approach consists of program veri#cationproving after the fact that a given program satis#es its formal speci#cation. This approach turns out to be di#cult to implement, not lea...
Inductive Datatypes with Laws and Subtyping – A Relational Model
 Faculty of Mathematics and Computing
"... ..."
Constructive Lattice Theory
, 1993
"... A notion of simulation of one datatype by another is defined as a constructive preorder. A calculus of datatype simulation is then developed by formulating constructive versions of leastfixedpoint theorems in lattice theory. The calculus is applied to the construction of several isomorphisms betwe ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
A notion of simulation of one datatype by another is defined as a constructive preorder. A calculus of datatype simulation is then developed by formulating constructive versions of leastfixedpoint theorems in lattice theory. The calculus is applied to the construction of several isomorphisms between classes of datatypes. In particular constructive adaptations of theorems in lattice theory about closure operators are shown to yield simulations and isomorphisms between monad structures, and constructive adaptations of theorems in regular algebra are shown to yield isomorphisms between list structures. A question to which any respectable theory of datatypes should provide immediate answers is when two datatypes are isomorphic, i.e. entirely equivalent modulo implementation details. A subsidiary question is when one datatype simulates another. This second question is of interest in its own right but is also important to answering the first question since isomorphism is frequently reduce...
The Boom Hierarchy
 Proc. of the Workshop on Functional Programming, Workshops in Computing
, 1993
"... The Boom Hierarchy is the family of data structures tree, list, bag, set. By combining their properties in other ways, more data structures can be made, like mobiles. The paper defines the data structures of this extended Boom Hierarchy and shows how the functions reduce, map, and filter are applie ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
The Boom Hierarchy is the family of data structures tree, list, bag, set. By combining their properties in other ways, more data structures can be made, like mobiles. The paper defines the data structures of this extended Boom Hierarchy and shows how the functions reduce, map, and filter are applied to them. 1 Introduction The Boom Hierarchy is the family of data structures tree, list, bag, set, to be used with the higherorder Squiggol functions reduce, map, filter. Example The term that filters the odd numbers from the list [1..10], and adds up their squares is += ffi sqr ffi odd / : [1::10]: (Reduce =, map , and filter / are defined further down.) end of example In this paper the data structures are presented as free algebras. New data structures in the family (e.g. mobiles) spring from algebras with new combinations of laws. The relations between the data structures are explained and some sample data structures. No category theory required! 2 The Boom hierarchy The hie...
An introduction to the theories of bulk data types
, 1994
"... This note summarises my understanding to date of two closelyrelated theories for dealing with “bulk ” data types: the BirdMeertens formalism (henceforth abbreviated to BMF) and its extension in categorical data types (CDT). I've been led to this study for two reasons: as interesting formalisms for ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
This note summarises my understanding to date of two closelyrelated theories for dealing with “bulk ” data types: the BirdMeertens formalism (henceforth abbreviated to BMF) and its extension in categorical data types (CDT). I've been led to this study for two reasons: as interesting formalisms for program derivation in their own right, and as a possible basis for defining useful operations for shared abstract data types. In this note I cover all the essential ideas I've found so far, and include a bibliography of the theories. Overview specifications using a small number of higherorder constructs. Functions are expressed as combinations of functions over data structures, avoiding the explicit use of recursion. This both simplifies proofs of correctness and allows the possibility for efficient (possibly parallel) implementation of the combination operators over a range of data types. A smallscale theory leads to potentially largescale applications. The theory does not, however, start from a standpoint of immediate mechanisation. To do so, in Bird and Meertens ' view, would severely limit the many ways in which an
A Relational Perspective on Types With Laws
, 1993
"... With relational transformational programming in mind, an extension of a "lawless " relational theory of datatypes is proposed in order to study and manipulate quotient types within a Tarskilike calculus of relations. The extended notion of type, pertype (from partial equivalence relation), is sh ..."
Abstract
 Add to MetaCart
With relational transformational programming in mind, an extension of a "lawless " relational theory of datatypes is proposed in order to study and manipulate quotient types within a Tarskilike calculus of relations. The extended notion of type, pertype (from partial equivalence relation), is shown to admit a complete lattice structure by constructing the order via a Galois connection. A pertyping of relations is developed and inductive pertypes generated by equations are discussed. Pertypes do occur in model theory for calculus but we are unaware of manipulations with inductive "lawful" types based on a simple relational calculus. 1 Introduction Program construction and its theory are developing steadily towards an algebraic discipline combining methods from category theory, algebraic logic and lattice theory. The driving forces are the needs for uninterpreted manipulation, problem structuring and generalisation, and polymorphy, with a major role for calculational type theo...
Bag Equivalence via a ProofRelevant Membership Relation
"... Abstract. Two lists are bag equivalent if they are permutations of each other, i.e. if they contain the same elements, with the same multiplicity, but perhaps not in the same order. This paper describes how one can define bag equivalence as the presence of bijections between sets of membership proof ..."
Abstract
 Add to MetaCart
Abstract. Two lists are bag equivalent if they are permutations of each other, i.e. if they contain the same elements, with the same multiplicity, but perhaps not in the same order. This paper describes how one can define bag equivalence as the presence of bijections between sets of membership proofs. This definition has some desirable properties: – Many bag equivalences can be proved using a flexible form of equational reasoning. – The definition generalises easily to arbitrary unary containers, including types with infinite values, such as streams. – By using a slight variation of the definition one gets set equivalence instead, i.e. equality up to order and multiplicity. Other variations give the subset and subbag preorders. – The definition works well in mechanised proofs. 1