Results 1 -
6 of
6
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 33 (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 Bird-Meertens 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 Calculational Theory of Pers as Types
, 1992
"... We present a programming paradigm based upon the notion of binary relations as programs, and partial equivalence relations (pers) as types. Our method is calculational , in that programs are derived from specifications by algebraic manipulation. Working with relations as programs generalises the fu ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
We present a programming paradigm based upon the notion of binary relations as programs, and partial equivalence relations (pers) as types. Our method is calculational , in that programs are derived from specifications by algebraic manipulation. Working with relations as programs generalises the functional paradigm, admiting non--determinism and the use of relation converse. Working with pers as types, we have a more general notion than normal of what constitutes an element of a type; this leads to a more general class of functional relations, the so--called difunctional relations. Our basic method of defining types is to take the fixpoint of a relator , a simple strengthening of the categorical notion of a functor. Further new types can be made by imposing laws and restrictions on the constructors of other types. Having pers as types is fundamental to our treatment of types with laws. Contents 1 Introduction 2 2 Relational calculus 4 2.1 Powerset lattice structure : : : : : : : : :...
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 least-fixed-point 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 least-fixed-point 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...
Domain Operators and Domain Kinds
, 1993
"... The notions of domain operator and domain kind are introduced. Several examples are presented. In particular, it is shown that the partial equivalence relations form a domain kind. The proof involves the construction of a Galois connection demonstrating that the partial equivalence relations form a ..."
Abstract
- Add to MetaCart
The notions of domain operator and domain kind are introduced. Several examples are presented. In particular, it is shown that the partial equivalence relations form a domain kind. The proof involves the construction of a Galois connection demonstrating that the partial equivalence relations form a complete lattice under the so-called domain ordering, thus providing another illustration of the importance of the early recognition of Galois connections. 1 Introduction This paper has been specially prepared for the workshop on Galois connections organised by the (Dutch) Mathematics of Programming group and held on 13th and 14th September, 1993. It is essentially a tutorial on how recognition of a Galois connection aids the construction of a complete lattice of partial equivalence relations. Additionally, the notions domain operator and domain kind are introduced. A central element of the calculus of datatypes [3, 2, 4, 1] developed by the authors and their students is the notion of a mon...
A Relationally Parametric Model of the Calculus of Constructions
"... In this paper, we give the first relationally parametric model of the (extensional) calculus of constructions. Our model remains as simple as traditional PER models of dependent types, but unlike them, our model additionally permits relating terms at different implementation types. Using this model, ..."
Abstract
- Add to MetaCart
In this paper, we give the first relationally parametric model of the (extensional) calculus of constructions. Our model remains as simple as traditional PER models of dependent types, but unlike them, our model additionally permits relating terms at different implementation types. Using this model, we can validate the soundness of quotient types, as well as derive strong equality axioms for Church-encoded data, such as the eta-law for strong dependent pair types. 1.
Internalizing Relational Parametricity in the Extensional Calculus of Constructions
"... Abstract—We give the first relationally parametric model of the extensional calculus of constructions. Our model remains as simple as traditional PER models of types, but unlike them, it types in different ways. Using our model, we can validate the soundness of quotient types, as well as derive stro ..."
Abstract
- Add to MetaCart
Abstract—We give the first relationally parametric model of the extensional calculus of constructions. Our model remains as simple as traditional PER models of types, but unlike them, it types in different ways. Using our model, we can validate the soundness of quotient types, as well as derive strong equality axioms for Church-encoded data, such as the usual induction principles for Church naturals and booleans, and the eta law for strong dependent pair types. Furthermore, we show that such equivalences, justified by relationally parametric reasoning, may soundly be internalized (i.e., added as equality axioms to our type theory). Thus, we demonstrate that it is possible to interpret equality in a dependently-typed setting using parametricity. The key idea behind our approach is to interpret types as so-called quasi-PERs (or zigzag-complete relations), which enable us to model the symmetry and transitivity of equality while at the same time allowing for different representations of abstract types. 1

