| | |
Summary: Statelevel and valuelevel simulations
in data refinement
William Leal 1,2 , Anish Arora 1,3
Department of Computer and Information Science, The Ohio State University,
Columbus, Ohio, USA
Abstract
Simulations are a popular way to show data refinement. Simulations that have
been proposed are either state level, relating concrete to abstract states in a given
state space, or value level, relating individual concrete to abstract values and hence
holding for all state spaces. Valuelevel simulations are less complex and easier to
use, but the extent of their completeness has not been well studied. We show that
in fact known valuelevel simulations are in general incomplete but are complete
when operations are limited to a single argument.
Key words: Data refinement, program correctness, formal verification, components
0 Introduction
Suppose we have a program pgm(A) that uses the operations of a data type
A. We wish to substitute a more concrete data type C while guaranteeing that
the behavior of pgm(C) will not surprise us. In fact, we would like to know if
we can do this for all programs, not just a particular one, in which case we can
say that C refines A. What ``not surprised'' means varies from one author to
|