Department of Computer Science
University of Oxford

Data Independence

A program P is data independent with respect to a data type X iff it does not use any operations and predicates involving values of type X other than equality tests. It is also allowed to input, output and nondeterministically choose values of type X, as well as store them and copy them within its variables. When P is data independent with respect to X, it is parameterised by X. In other words, any concrete data type can be instantiated for X in P.

Given a specification S and a program P which are data independent with respect to a data type X, our main results on data independence enable the problem of verifying whether S is satisfied by P for all instances of X to be reduced to verifying the satisfaction for a finite number of finite instances. The body of research by which such results are proved is a semantic study of data independence consisting of symbolic operational semantics, logical relations, and symmetry elimination. Most of our research on data independence so far has been in terms of the CSP formalism.

The basic part of the work can be found in Section 15.2 of "The Theory and Practice" book by A. W. Roscoe (available electronically in our books section) and, in more detail, in Lazic's thesis. There also are papers on the extension by arrays in the context of determinism checking, and on the extension by generalised predicate symbols (see the group's publications page).

Random Image
Random Image
Random Image