Results 1  10
of
15
Calculating Sharp Adaptation Rules
 Information Processing Letters
, 2000
"... Introduction For reasoning about total correctness of whileprograms, the rules proposed by Hoare [10] have stood the test of time. But for procedure calls, a number of dierent rules have appeared (e.g, [11,9,2,1,5,12]). There appears to be no consensus on the \right" rule, and some proposals even t ..."
Abstract

Cited by 17 (5 self)
 Add to MetaCart
Introduction For reasoning about total correctness of whileprograms, the rules proposed by Hoare [10] have stood the test of time. But for procedure calls, a number of dierent rules have appeared (e.g, [11,9,2,1,5,12]). There appears to be no consensus on the \right" rule, and some proposals even turn out to be unsound. The results reported in this note were found in an attempt to derive an adaptation rule rather than pulling it from a magician's hat using tools from renement calculus. This sheds new light on the subject, explaining and extending the applicability of recent proposals, and it brings to light a new form of specication statement. Adaptation rules. For the moment, let us take for granted a semantics for commands and predicates. Say a triple f pre g S f post g is valid if every computation of command S from a state satisfying pre terminates in
A Categorical Model for Higher Order Imperative Programming
 Mathematical Structures in Computer Science
, 1993
"... This paper gives the first complete axiomatization for higher types in the refinement calculus of predicate transformers. ..."
Abstract

Cited by 14 (13 self)
 Add to MetaCart
This paper gives the first complete axiomatization for higher types in the refinement calculus of predicate transformers.
Inductive Data Types for Predicate Transformers
 Information Processing Letters
, 1995
"... Introduction Modern functional programming languages [5, 6] and specification formalisms [3] are built around the notion of inductive data types and homomorphisms on these data types. Such homomorphisms, which correspond to the familiar fold or reduce operators in functional programming, are calle ..."
Abstract

Cited by 9 (1 self)
 Add to MetaCart
Introduction Modern functional programming languages [5, 6] and specification formalisms [3] are built around the notion of inductive data types and homomorphisms on these data types. Such homomorphisms, which correspond to the familiar fold or reduce operators in functional programming, are called catamorphisms. In this note, it is shown how catamorphisms can be generalised from functions to relations, and from relations to predicate transformers. The first step of this generalisation (from functions to relations) was already achieved in a slightly different setting by Backhouse et al. [2]; the generalisation to predicate transformers is new. In practical terms, the main result presented here says that a calculus based on predicate transformers (like the refinement calculus studied by Back, Morgan and others [1, 14]) can be enriched with program constructors for iterating over inductive data types. The refineme
Predicate transformers and Linear Logic  yet another Denotational Model
 In http://jumpstart.anr.mcnc.org
, 2004
"... In the refinement calculus, monotonic predicate transformers are used to model specifications for (imperative) programs. Together with a natural notion of simulation, they form a category enjoying many algebraic properties. We build on this structure to make predicate transformers into a denotationa ..."
Abstract

Cited by 7 (6 self)
 Add to MetaCart
In the refinement calculus, monotonic predicate transformers are used to model specifications for (imperative) programs. Together with a natural notion of simulation, they form a category enjoying many algebraic properties. We build on this structure to make predicate transformers into a denotational model of full linear logic: all the logical constructions have a natural interpretation in terms of predicate transformers (i.e. in terms of specifications). We then interpret proofs of a formula by a safety property for the corresponding specification.
Ordinals and Interactive Programs
, 2000
"... The work reported in this thesis arises from the old idea, going back to the origins of constructive logic, that a proof is fundamentally a kind of program. If proofs can be ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
The work reported in this thesis arises from the old idea, going back to the origins of constructive logic, that a proof is fundamentally a kind of program. If proofs can be
Beyond Fun: Order and Membership in Polytypic Imperative Programming
 Mathematics of Program Construction, volume 1422 of Springer LNCS
, 1997
"... . We argue that the category of transformers of monotonic predicates on posets is superior to the category of transformers on powersets, as the basis for a calculus of higher order imperative programming. We show by an example polytypic program derivation that such transformers (and the underlyi ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
. We argue that the category of transformers of monotonic predicates on posets is superior to the category of transformers on powersets, as the basis for a calculus of higher order imperative programming. We show by an example polytypic program derivation that such transformers (and the underlying categories of ordercompatible relations and monotonic functions) model a calculus quite similar to the more familiar calculus of functional programs and relations. The derived program uses as a data type an exponent of transformers; unlike functionspace, this transformerspace is adequate for semantics of higher order imperative programs. 1 Introduction Programs are arrows of a category whose objects are data types  but what category? what objects? what arrows? The primordial, if fanciful, answer is Fun, the category of "all" sets and functions (often called Set). If we choose a few objects as primitives, say integers and booleans, we get a rich collection of types by applicat...
Towards Squiggly Refinement Algebra
 IFIP Working Conference on Programming Concepts and Methods
, 1998
"... The algebra of functions and relations has been used so successfully in program construction that textbooks have appeared. Despite the importance of predicate transformers in imperative programming, the algebra of transformers has been less explored. To show its promise, we prove results on exponent ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
The algebra of functions and relations has been used so successfully in program construction that textbooks have appeared. Despite the importance of predicate transformers in imperative programming, the algebra of transformers has been less explored. To show its promise, we prove results on exponents and recursion on inductive data types, sufficient for carrying out a polytypic derivation that has been given as a substantial example for functions and relations. We also give a data refinement from exponents of specifications to the concrete exponents needed for program semantics.
On the Semantics of Refinement Calculi
, 2000
"... Refinement calculi for imperative programs provide an integrated framework for programs and specifications and allow one to develop programs from specifications in a systematic fashion. The semantics of these calculi has traditionally been de ned in terms of predicate transformers and poses several ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Refinement calculi for imperative programs provide an integrated framework for programs and specifications and allow one to develop programs from specifications in a systematic fashion. The semantics of these calculi has traditionally been de ned in terms of predicate transformers and poses several challenges in defining a state transformer semantics in the denotational style. We de ne a novel semantics in terms of sets of state transformers and prove it to be isomorphic to positively multiplicative predicate transformers. This semantics disagrees with the traditional semantics in some places and the consequences of the disagreement are analyzed.
Deriving Sharp Rules of Adaptation for Hoare Logics
, 1999
"... Abstract. Adaptation rules adapt the prepost specification of a procedure to contexts where it is called. Such rules are important for practical reasons, and are necessary for completeness of proof systems for languages with recursive procedures. A sharp rule is one that gives the weakest precondit ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Abstract. Adaptation rules adapt the prepost specification of a procedure to contexts where it is called. Such rules are important for practical reasons, and are necessary for completeness of proof systems for languages with recursive procedures. A sharp rule is one that gives the weakest precondition with respect to a given postcondition. A number of rules have been proposed for simple imperative languages with recursive procedures, most unsound or incomplete or nonsharp. Taking an algebraic approach, we clarify and extend the applicability of previously proposed sharp rules for total correctness, and show how further rules may be found.
Patterns and Lax Lambda Laws for Relational and Imperative Programming

"... Pointfree relation calculi have been fruitful in functional programming, but in specific applications pointwise expressions can be more convenient and comprehensible than pointfree ones. To integrate pointwise with pointfree, de Moor and Gibbons [AMAST 2000] give a relational semantics for lamb ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Pointfree relation calculi have been fruitful in functional programming, but in specific applications pointwise expressions can be more convenient and comprehensible than pointfree ones. To integrate pointwise with pointfree, de Moor and Gibbons [AMAST 2000] give a relational semantics for lambda terms with noninjective pattern matching. Alternative semantics has