Results 1 - 10
of
21
Generic programming: An introduction
- 3rd International Summer School on Advanced Functional Programming
, 1999
"... ..."
Between Functions and Relations in Calculating Programs
, 1992
"... This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made ..."
Abstract
-
Cited by 15 (4 self)
- Add to MetaCart
This thesis is about the calculational approach to programming, in which one derives programs from specifications. One such calculational paradigm is Ruby, the relational calculus developed by Jones and Sheeran for describing and designing circuits. We identify two shortcomings with derivations made using Ruby. The first is that the notion of a program being an implementation of a specification has never been made precise. The second is to do with types. Fundamental to the use of type information in deriving programs is the idea of having types as special kinds of programs. In Ruby, types are partial equivalence relations (pers). Unfortunately, manipulating some formulae involving types has proved difficult within Ruby. In particular, the preconditions of the `induction' laws that are much used within program derivation often work out to be assertions about types; such assertions have typically been verified either by informal arguments or by using predicate calculus, rather than by ap...
Galois Connections Presented Calculationally.
, 1992
"... properties of Galois connections 29 4.1 Pre-orders : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.1 Calculating in pre-orders : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.2 Alternative definitions : : : : : : : : : : : : : : : : : : : : : : : : : 33 4.1.3 Un ..."
Abstract
-
Cited by 15 (0 self)
- Add to MetaCart
properties of Galois connections 29 4.1 Pre-orders : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.1 Calculating in pre-orders : : : : : : : : : : : : : : : : : : : : : : : : 30 4.1.2 Alternative definitions : : : : : : : : : : : : : : : : : : : : : : : : : 33 4.1.3 Uniqueness of adjoints in a pre-order : : : : : : : : : : : : : : : : : 34 4.2 Partial orders : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 35 4.2.1 More cancellation laws : : : : : : : : : : : : : : : : : : : : : : : : : 35 4.2.2 Existence of adjoints : : : : : : : : : : : : : : : : : : : : : : : : : : 36 4.2.3 The closure connection : : : : : : : : : : : : : : : : : : : : : : : : : 40 4.2.4 "Perfect" connections : : : : : : : : : : : : : : : : : : : : : : : : : : 41 4.3 Complete lattices : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 44 i 5 Application: The Domain Operator 47 5.1 Monotypes : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :...
A Relational Basis for Program Construction by Parts
, 1995
"... Program construction by parts consists in tackling a complex specification one component at a time, developing a partially defined solution for each component, then combining the partial solutions into a global solution for the aggregate specification. This method is desirable whenever the specifica ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
Program construction by parts consists in tackling a complex specification one component at a time, developing a partially defined solution for each component, then combining the partial solutions into a global solution for the aggregate specification. This method is desirable whenever the specification at hand is too complex to be grasped in all its detail. It is feasible whenever the specification at hand is structured as an aggregate of clearly defined subspecifications ---where each subspecification represents a simple functional requirement. Our approach is based on relational specifications, whereby a specification is described by a binary relation. The set of relational specifications is naturally ordered by the refinement ordering, which provides a lattice-like structure. The join of two specifications S and S 0 is the specification that carries all the functional features of S and all the functional features of S 0 . Complex specifications are naturally structured as the j...
Making Functionality More General
- In Functional Programming, Glasgow 1991, Workshops in computing
, 1992
"... The notion of functionality is not cast in stone, but depends upon what we have as types in our language. With partial equivalence relations (pers) as types we show that the functional relations are precisely those satisfying the simple equation f = f ffi f [ ffi f , where " [ " is the relation ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
The notion of functionality is not cast in stone, but depends upon what we have as types in our language. With partial equivalence relations (pers) as types we show that the functional relations are precisely those satisfying the simple equation f = f ffi f [ ffi f , where " [ " is the relation converse operator. This article forms part of "A calculational theory of pers as types" [1]. 1 Introduction In calculational programming, programs are derived from specifications by a process of algebraic manipulation. Perhaps the best known calculational paradigm is the Bird--Meertens formalism, or to use its more colloquial name, Squiggol [2]. Programs in the Squiggol style work upon trees, lists, bags and sets, the so--called Boom hierarchy. The framework was uniformly extended to cover arbitrary recursive types by Malcolm in [3], by means of the F--algebra paradigm of type definition, and resulting catamorphic programming style. More recently, Backhouse et al [4] have made a further ...
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 : : : : : : : : :...
Mathematical Induction Made Calculational
, 1994
"... Several concise formulations of mathematical induction are presented and proven equivalent. The formulations are expressed in variable-free relation algebra and thus are in terms of relations only, without mentioning the related objects. It is shown that the induction principle in this form lends ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
Several concise formulations of mathematical induction are presented and proven equivalent. The formulations are expressed in variable-free relation algebra and thus are in terms of relations only, without mentioning the related objects. It is shown that the induction principle in this form lends itself very well for use in calculational proofs. As a non-trivial example a proof of a generalisation of Newman's lemma is given. The paper begins with an introduction to relation algebra and is reasonably selfcontained. (Some knowledge of lattice theory, in particular the Knaster-Tarski fixed point theorem for complete lattices, is assumed.) The style is expository and suggestions for exercises are included. The basic concept underlying many of the calculations is the notion of a Galois connection, and the paper could be seen as an introductory tutorial in the use of this concept. The idea of formal reasoning --- by which we mean the manipulation of uninterpreted formulae accordi...
Generic Properties of Datatypes
, 2002
"... Generic programming adds a new dimension to the parametrisation of programs by allowing programs to be dependent on the structure of the data that they manipulate. ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Generic programming adds a new dimension to the parametrisation of programs by allowing programs to be dependent on the structure of the data that they manipulate.
A Study on Symmetric Quotients
, 1998
"... Symmetric quotients, introduced in the context of heterogeneous relation algebras, have proven useful for applications comprising for example program semantics and databases. Recently, the increased interest in fuzzy relations has fostered a lot of work concerning relation-like structures with weake ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Symmetric quotients, introduced in the context of heterogeneous relation algebras, have proven useful for applications comprising for example program semantics and databases. Recently, the increased interest in fuzzy relations has fostered a lot of work concerning relation-like structures with weaker axiomatisations. In this paper, we study symmetric quotients in such settings and provide many new proofs for properties previously only shown in the strong theory of heterogeneous relation algebras. Thus we hope to make both the weaker axiomatisations and the many applications of symmetric quotients more accessible to people working on problems in some specific part of the wide spectrum of relation categories.
Bipolar Ranking from Pairwise Fuzzy Outrankings
"... kernels (see Bisdor# & Roubens [3, 4]) to the problem of constructing a global ranking from a pairwise outranking relation defined on a set of decision alternatives as encountered in the fuzzy preference modelling context (see Roy & Bouyssou [11] for instance). Our approach is based on a repet ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
kernels (see Bisdor# & Roubens [3, 4]) to the problem of constructing a global ranking from a pairwise outranking relation defined on a set of decision alternatives as encountered in the fuzzy preference modelling context (see Roy & Bouyssou [11] for instance). Our approach is based on a repetitive selection of best and worst candidates from sharpest or most credible initial and terminal kernels (see Bisdor# [6]). A practical illustration will concern the global ranking of movies from individual evaluations by a given set of movie critics.

