Results 1 - 10
of
36
Laws of programming
- Communications of the ACM
, 1987
"... A complete set of algebraic laws is given for Dijkstra’s nondeterministic sequential programming language. Iteration and recursion are explained in terms of Scott’s domain theory as fixed points of continuous functionals. A calculus analogous to weakest preconditions is suggested as an aid to derivi ..."
Abstract
-
Cited by 86 (4 self)
- Add to MetaCart
A complete set of algebraic laws is given for Dijkstra’s nondeterministic sequential programming language. Iteration and recursion are explained in terms of Scott’s domain theory as fixed points of continuous functionals. A calculus analogous to weakest preconditions is suggested as an aid to deriving programs from their specifications.
Peirce Algebras
, 1992
"... We present a two-sorted algebra, called a Peirce algebra, of relations and sets interacting with each other. In a Peirce algebra, sets can combine with each other as in a Boolean algebra, relations can combine with each other as in a relation algebra, and in addition we have both a relationforming o ..."
Abstract
-
Cited by 22 (10 self)
- Add to MetaCart
We present a two-sorted algebra, called a Peirce algebra, of relations and sets interacting with each other. In a Peirce algebra, sets can combine with each other as in a Boolean algebra, relations can combine with each other as in a relation algebra, and in addition we have both a relationforming operator on sets (the Peirce product of Boolean modules) and a set-forming operator on relations (a cylindrification operation). Two applications of Peirce algebras are given. The first points out that Peirce algebras provide a natural algebraic framework for modelling certain programming constructs. The second shows that the so-called terminological logics arising in knowledge representation have evolved a semantics best described as a calculus of relations interacting with sets.
Generic Composition
, 2002
"... This paper presents a technique called generic composition to provide a uniform basis for modal operators, sequential composition, di#erent kinds of parallel compositions and various healthiness conditions appearing in a variety of semantic theories. The weak inverse of generic composition is define ..."
Abstract
-
Cited by 21 (13 self)
- Add to MetaCart
This paper presents a technique called generic composition to provide a uniform basis for modal operators, sequential composition, di#erent kinds of parallel compositions and various healthiness conditions appearing in a variety of semantic theories. The weak inverse of generic composition is defined. A completeness theorem shows that any predicate can be written in terms of generic composition and its weak inverse. A number of algebraic laws that support reasoning are derived.
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 Calculus for Predicative Programming
, 1993
"... . A calculus for developing programs from specifications written as predicates that describe the relationship between the initial and final state is proposed. Such specifications are well known from the specification language Z. All elements of a simple sequential programming notation are defined in ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
. A calculus for developing programs from specifications written as predicates that describe the relationship between the initial and final state is proposed. Such specifications are well known from the specification language Z. All elements of a simple sequential programming notation are defined in terms of predicates. Hence programs form a subset of specifications. In particular, sequential composition is defined by 'demonic composition', nondeterministic choice by 'demonic disjunction', and iteration by fixed points. Laws are derived which allow proving equivalence and refinement of specifications and programs. The weakest precondition is expressed by sequential composition. The approach is compared to the predicative programming approach of E. Hehner and to other refinement calculi. 1 Introduction We view a specification as a predicate which describes the admissible final state of a computing machine with respect to some initial state. A program is a predicate restricted to operat...
Epistemic actions as resources
- Journal of Logic and Computation
, 2007
"... We provide algebraic semantics together with a sound and complete sequent calculus for information update due to epistemic actions. This semantics is flexible enough to accommodate incomplete as well as wrong information e.g. deceit. We give a purely algebraic treatment of the muddy children puzzle, ..."
Abstract
-
Cited by 11 (7 self)
- Add to MetaCart
We provide algebraic semantics together with a sound and complete sequent calculus for information update due to epistemic actions. This semantics is flexible enough to accommodate incomplete as well as wrong information e.g. deceit. We give a purely algebraic treatment of the muddy children puzzle, which moreover extends to situations where the children are allowed to lie and cheat. Epistemic actions, that is, information exchanges between agents A, B,... ∈ A, are modeled as elements of a quantale, hence conceiving them as resources. Indeed, quantales are to locales what monoidal closed categories are to Cartesian closed categories, respectively providing semantics for Intuitionistic Logic, and for non-commutative Intuitionistic Linear Logic, including Lambek calculus. The quantale (Q, � , •) acts on an underlying Q-right module (M, � ) of epistemic propositions and facts. The epistemic content is encoded by appearance maps, one pair f M A: M → M and f Q A: Q → Q of (lax) morphisms for each agent A ∈ A. By adjunction, they give rise to epistemic modalities [12], capturing the agents ’ knowledge on propositions and actions. The module action is epistemic update and gives rise to dynamic modalities [20] — cf. weakest preconditions. This model subsumes the crucial fragment of Baltag, Moss and Solecki’s [6] dynamic epistemic logic, abstracting it in a constructive fashion while introducing resource-sensitive structure on the epistemic actions. Keywords: Multi-agent communication, knowledge update, resource-sensitivity, quantale, Galois adjoints, dynamic epistemic logic, sequent calculus, Lambek calculus, Linear Logic.
Retrenchment: Extending the Reach of Refinement
"... Discussion of a simple example demonstrates various expressive limitations of the refinement calculus, and suggests a liberalization of refinement, called retrenchment, which will support an analogous formal development calculus. Useful concrete system behaviour can be specified outside the domain o ..."
Abstract
-
Cited by 11 (8 self)
- Add to MetaCart
Discussion of a simple example demonstrates various expressive limitations of the refinement calculus, and suggests a liberalization of refinement, called retrenchment, which will support an analogous formal development calculus. Useful concrete system behaviour can be specified outside the domain of pure refinement, and a case is made for fluidity between I/O and state components across the development step. A syntax and a formal definition are presented for retrenchment, which has some necessary properties for a formal development calculus: transitivity gives stepwise composition of retrenchments, and monotonicity w.r.t. the specification language constructors gives piecewise construction of retrenchments.
Universal regular path queries
- Higher-Order and Symbolic Computation
, 2003
"... Given are a directed edge-labelled graph G with a distinguished node n0, and a regular expression P which may contain variables. We wish to compute all substitutions φ (of symbols for variables), together with all nodes n such that all paths n0 → n are in φ(P). We derive an algorithm for this proble ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
Given are a directed edge-labelled graph G with a distinguished node n0, and a regular expression P which may contain variables. We wish to compute all substitutions φ (of symbols for variables), together with all nodes n such that all paths n0 → n are in φ(P). We derive an algorithm for this problem using relational algebra, and show how it may be implemented in Prolog. The motivation for the problem derives from a declarative framework for specifying compiler optimisations. 1 Bob Paige and IFIP WG 2.1 Bob Paige was a long-standing member of IFIP Working Group 2.1 on Algorithmic Languages and Calculi. In recent years, the main aim of this group has been to investigate the derivation of algorithms from specifications by program transformation. Already in the mid-eighties, Bob was way ahead of the pack: instead of applying transformational techniques to well-worn examples, he was applying his theories of program transformation to new problems, and discovering new algorithms [16, 48, 52]. The secret of his success lay partly in his insistence on the study of general algorithm design strategies (in particular
Container Types Categorically
, 2000
"... A program derivation is said to be polytypic if some of its parameters are data types. Often these data types are container types, whose elements store data. Polytypic program derivations necessitate a general, non-inductive definition of `container (data) type'. Here we propose such a definition: a ..."
Abstract
-
Cited by 9 (0 self)
- Add to MetaCart
A program derivation is said to be polytypic if some of its parameters are data types. Often these data types are container types, whose elements store data. Polytypic program derivations necessitate a general, non-inductive definition of `container (data) type'. Here we propose such a definition: a container type is a relator that has membership. It is shown how this definition implies various other properties that are shared by all container types. In particular, all container types have a unique strength, and all natural transformations between container types are strong. Capsule Review Progress in a scientific dicipline is readily equated with an increase in the volume of knowledge, but the true milestones are formed by the introduction of solid, precise and usable definitions. Here you will find the first generic (`polytypic') definition of the notion of `container type', a definition that is remarkably simple and suitable for formal generic proofs (as is amply illustrated in t...

