Results 1 - 10
of
17
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...
Structured Calculational Proof
, 1996
"... We propose a new format for writing proofs, which we call structured calculational proof. The format is similar to the calculational style of proof already familiar to many computer scientists, but extends it by allowing large proofs to be hierarchically decomposed into smaller ones. In fact, struc ..."
Abstract
-
Cited by 14 (8 self)
- Add to MetaCart
We propose a new format for writing proofs, which we call structured calculational proof. The format is similar to the calculational style of proof already familiar to many computer scientists, but extends it by allowing large proofs to be hierarchically decomposed into smaller ones. In fact, structured calculational proof can be seen as an alternative presentation of natural deduction. Natural deduction is a well established style of reasoning which uses hierarchical decomposition to great effect, but which is traditionally expressed in a notation that is inconvenient for writing calculational proofs. The hierarchical nature of structured calculational proofs can be used for proof browsing. We comment on how browsing can increase the value of a proof, and discuss the possibilities offered by electronic publishing for the presentation and dissemination of papers containing browsable proofs. Note: This paper is also available as Australian National University Joint Computer Science Tec...
Making Formality Work For Us
- EATCS Bulletin
, 1989
"... Formal reasoning is notoriously long and arduous; in order to use it to reason effectively in the construction of programs it is, therefore, paramount that we design our notations to be both clear and economical. Taking examples from AI, from imperative programming, from the use of the Bird-Meer ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
Formal reasoning is notoriously long and arduous; in order to use it to reason effectively in the construction of programs it is, therefore, paramount that we design our notations to be both clear and economical. Taking examples from AI, from imperative programming, from the use of the Bird-Meertens formalism and from category theory we demonstrate how the right choice of what to denote and how it is denoted can make significant improvements to formal calculations. Brief mention is also made of the connection between economical notation and properties of type. 1 2 Foreword Earlier this year I was an invited speaker at the 5th British Computer Society Theoretical Computer Science Colloquium held at Royal Holloway and Bedford New College, London. Before you is the text of my lecture, almost but not quite as given at the conference. (Perhaps the best way to describe the present paper is as the lecture that I should have given.) The publication of the text of the lecture will, ...
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 ...
Specification Architecture Illustrated in a Communications Context
- Computer Networks and ISDN Systems
, 1997
"... The concept of specification architecture is introduced, and its importance is emphasised. Three important architectural principles are offered as a way of achieving a satisfactory specification architecture: modularity, generality and simplicity. These are supported by subsidiary techniques that ..."
Abstract
-
Cited by 6 (6 self)
- Add to MetaCart
The concept of specification architecture is introduced, and its importance is emphasised. Three important architectural principles are offered as a way of achieving a satisfactory specification architecture: modularity, generality and simplicity. These are supported by subsidiary techniques that realise them. Criteria are identified to evaluate successful application of the techniques and conformance to the principles. The approach is illustrated throughout with the example of a message switch, culminating in a larger case study based on the work of the PANGLOSS project to design a high-speed message switch. Keywords: architecture, architectural principle, communications architecture, message switch, specification, specification architecture 1 Introduction 1.1 Specification Architecture Except for completely trivial specifications, a specification necessarily has a significant structure -- its specification architecture. Even non-constructive specifications have an architec...
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 : : : : : : : : :...
Calculate Categorically!
- Formal Aspects of Computing
, 1992
"... this paper is an alternative to diagram chasing (4). The use of a standard notation for various unique arrows obviates in some cases the need for pictures for the purpose of naming (2). The need for a pictorial overview of the typing (1) is decreased to some extend by a consistent notation, in parti ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
this paper is an alternative to diagram chasing (4). The use of a standard notation for various unique arrows obviates in some cases the need for pictures for the purpose of naming (2). The need for a pictorial overview of the typing (1) is decreased to some extend by a consistent notation, in particular f ; g for composition (so that f : a ! b g: b ! c ) f
Varieties of Mathematical Prose
- Primus
, 1997
"... This article begins the development of a taxonomy of mathematical prose, describing the precise function and meaning of specific types mathematical exposition. This article further discusses the merits and demerits of a style of mathematical writing that labels each passage according to its function ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
This article begins the development of a taxonomy of mathematical prose, describing the precise function and meaning of specific types mathematical exposition. This article further discusses the merits and demerits of a style of mathematical writing that labels each passage according to its function as described in the taxonomy. Key words Mathematical exposition, writing style, mathematical argument, formal reasoning, symbolic logic, definitions, proofs, terminology, hypertext. 1 Introduction 1.1 Rationale Many students of mathematics are not experienced in reading mathematics texts. They may not understand the nature and use of definitions. Even if they do, they may not easily distinguish between a definition and an informal discussion of a topic. They may not pick up on the use of a word such as "group" that has a meaning in ordinary discourse but that has been given a special technical meaning in their text. They may not distinguish a plausibility argument from a careful proof, an...
TAS - A Generic Window Inference System
"... This paper presents work on technology for transformational proof and program development, as used by window inference calculi and transformation systems. The calculi are characterised by a certain class of theorems in the underlying logic. Our transformation system TAS compiles these rules to concr ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
This paper presents work on technology for transformational proof and program development, as used by window inference calculi and transformation systems. The calculi are characterised by a certain class of theorems in the underlying logic. Our transformation system TAS compiles these rules to concrete deduction support, complete with a graphical user interface with command-language-free user interaction by gestures like drag&drop and proof-by-pointing, and a development management for transformational proofs. It is generic in the sense that it is completely independent of the particular window inference or transformational calculus, and can be instantiated to many different ones; three such instantiations are presented in the paper.

