Refinement Calculus
A Systematic Introduction
within Ralph-Johan Back
Chapter
Contracts have been introduced earlier as a way of modeling a collection of agents that work within the limits set by the contract. We have analyzed the question of when an agent or a coalition of agents can r...
Ralph-Johan Back, Joakim von Wright in Programming Methodology (2003)
Chapter and Conference Paper
Refinement calculus [1,5] is a formal framework for reasoning about program correctness and correctness preserving program refinements. It serves as the foundation for an object-oriented software architecture and...
Ralph-Johan Back in Formal Methods and Software Engineering (2002)
Chapter and Conference Paper
We study a method for software construction that is based on introducing new features to an evolving system one by one. A layered software architecture is proposed to support this method. We show how to descri...
Ralph-Johan Back in ZB 2002:Formal Specification and Development in Z and B (2002)
Article
Data refinement is the systematic replacement of a data structure with another one in program development. Data refinement between program statements can on an abstract level be described as a commutativity p...
Ralph-Johan Back, Joakim von Wright in Formal Aspects of Computing (2000)
Article
Subtype polymorphism, based on syntactic conformance of objects' methods and used for substituting subtype objects for supertype objects, is a characteristic feature of the object-oriented programming style. ...
Ralph-Johan Back, Anna Mikhajlova, Joakim von Wright in Formal Aspects of Computing (2000)
Chapter and Conference Paper
The Unified Modeling Language (UML) consists in a set of diagrams that describe a system under development. A use case diagram specifies the required functionality of the system, showing the collaboration among a...
Ralph-Johan Back, Luigia Petre… in «UML»’99 — The Unified Modeling Language (1999)
Article
In the refinement calculus, program statements are modelled as predicate transformers. A product operator for predicate transformers was introduced by Martin [18] and Naumann [25] using category theoretic con...
Ralph-Johan Back, Michael Butler in Acta Informatica (1998)
Book
A Systematic Introduction
Ralph-Johan Back, Joakim von Wright in Graduate Texts in Computer Science (1998)
Chapter
In our preceding treatment of iteration, we have considered the situation where the body of the iteration is either monotonic or continuous. In this chapter, we look at some of the additional properties that i...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)
Chapter
So far, we have assumed a fixed collection of types, type operators, constants and axioms in the logic. We next consider how to extend our theories to model new domains of discourse by defining new types with ...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)
Chapter
The predicate transformers that we use to model contracts are constructed from other predicate transformers or from simpler elements, like state predicates, state transformers, or state relations. The predicat...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)
Chapter
We start our overview of the basic axioms and inference of higher-order logic by studying the rules for reasoning about functions. These are essentially the rules of simply typed lambda calculus. A method of exte...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)
Chapter
In the previous chapter we showed that contract statements can be interpreted as (monotonic) predicate transformers. But predicate transformers are pure mathematical entities, functions from predicates (sets) ...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)
Chapter
In previous chapters we have introduced higher-order logic and described the constants and inference rules that are used for reasoning about functions. In this chapter we present the constants and inference ru...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)
Chapter
Not only monotonicity, but also other homomorphism properties of predicate transformers turn out to be important in modeling programming constructs. In this chapter we study homomorphic predicate transformers,...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)
Chapter
We now apply fixed-point theory to recursively defined statements, interpreting a recursive statement as the least fixed point of a monotonic function on predicate transformers. We show how to construct recurs...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)
Chapter
In the previous chapter we showed how to reason about predicates and sets in general. In programming, predicates arise in two different disguises. First, they are used to describe control structures with branc...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)
Chapter
So far, we have looked at lattices as a special kind of posets. In this chapter, we focus on another important special kind of posets: well-founded sets and well-ordered sets. Well-founded sets are partially orde...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)
Chapter
In Chapter 19, we used ordinals to express fixed points as limits. In practice, the natural numbers are sufficient as long as all statements involved are continuous. In this chapter we will study the notion of...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)
Chapter
The n-queens problem is to place n queens (where n > 0) on an n -by-n chessboard so that no queen is threatened by another one. According to the rules of chess, this is equivalent to the requirement that no two q...
Ralph-Johan Back, Joakim von Wright in Refinement Calculus (1998)