Results 1  10
of
13
Predicate Transformer Semantics of a Higher Order Imperative Language With . . .
 SCIENCE OF COMPUTER PROGRAMMING
, 1998
"... Using a settheoretic model of predicate transformers and ordered data types, we give a totalcorrectness semantics for a typed higherorder imperative programming language that includes record extension, local variables, and proceduretype variables and parameters. The language includes infeasibl ..."
Abstract

Cited by 22 (9 self)
 Add to MetaCart
Using a settheoretic model of predicate transformers and ordered data types, we give a totalcorrectness semantics for a typed higherorder imperative programming language that includes record extension, local variables, and proceduretype variables and parameters. The language includes infeasible speci cation constructs, for a calculus of re nement. Procedures may have global variables, subject to mild syntactic restrictions to avoid the semantic complications of Algollike languages. The semantics is used to validate simple proof rules for noninterference, type extension, and calls of procedure variables and constants.
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 e ..."
Abstract

Cited by 17 (4 self)
 Add to MetaCart
(Show Context)
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
Behavioral subtyping is equivalent to modular reasoning for objectoriented programs
, 2006
"... Abstract. Behavioral subtyping enables modular reasoning about the functional behavior of objectoriented programs. It validates supertype abstraction, that is, modular reasoning about dynamically dispatched method calls, such as E.m(), using specifications associated with their receiver’s static ty ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
(Show Context)
Abstract. Behavioral subtyping enables modular reasoning about the functional behavior of objectoriented programs. It validates supertype abstraction, that is, modular reasoning about dynamically dispatched method calls, such as E.m(), using specifications associated with their receiver’s static type, such as the static type of E. For languages with references and mutable objects neither behavioral subtyping nor supertype abstraction has been rigorously formalized as such. Moreover, the standard informal notion of behavioral subtyping has inadequacies. This paper gives a new formalization of behavioral subtyping and supertype abstraction, and a new proof of their equivalence. Our new formalization handles a realistic subset of sequential Java, with classes and interfaces, recursive types, and dynamicallyallocated mutable objects.
Soundness of Data Refinement for a Higher Order Imperative Language
, 1999
"... Using a settheoretic model of predicate transformers and ordered data types, we give a semantics for an Oberonlike higher order imperative language with record subtyping and proceduretype variables and parameters. Data refinement is shown to be sound for this language: It implies algorithmic refi ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
Using a settheoretic model of predicate transformers and ordered data types, we give a semantics for an Oberonlike higher order imperative language with record subtyping and proceduretype variables and parameters. Data refinement is shown to be sound for this language: It implies algorithmic refinement when suitably localized. And all constructs are shown to preserve simulation, so data refinement can be carried out piecewise.
Data refinement, call by value, and higher order programs
, 2003
"... Using 2categorical laws of algorithmic refinement, we show soundness of data refinement for stored programs and hence for higher order procedures with value/result parameters. The refinement laws hold in a model that slightly generalizes the standard predicate transformer semantics for the usual ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
(Show Context)
Using 2categorical laws of algorithmic refinement, we show soundness of data refinement for stored programs and hence for higher order procedures with value/result parameters. The refinement laws hold in a model that slightly generalizes the standard predicate transformer semantics for the usual imperative programming constructs including prescriptions.
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
(Show Context)
. 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...
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.
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
(Show Context)
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.
Theory for Software Verification
, 2009
"... Semantic models are the basis for specification and verification of software. Operational, denotational, and axiomatic or algebraic methods offer complementary insights and reasoning techniques which are surveyed here. Unifying theories are needed to link models. Also considered are selected program ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Semantic models are the basis for specification and verification of software. Operational, denotational, and axiomatic or algebraic methods offer complementary insights and reasoning techniques which are surveyed here. Unifying theories are needed to link models. Also considered are selected programming features for which new models are needed.
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
(Show Context)
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.