A Unifying Approach to Data-Independence

A concurrent system is data-independent with respect to a data type when the only operation it can perform on values of that type is equality testing. The system can also assign, input, nondeterministically choose, and output such values. Based on this intuitive definition, syntactic restrictions which ensure data-independence have been formulated for a variety of different formalisms. However, it is difficult to see how these are related. We present the first semantic definition of data-independence which allows equality testing, and its extension which allows constant symbols and predicate symbols. Both are special cases of a definition of when a family of labelled transition systems is parametric. This provides a unified approach to data-independence and its extensions. The paper also contains two theorems which, given a system and a specification which are data-independent, enable the verification for all instantiations of the data types (and of the constant symbols and the predicate symbols, in the case of the extension) to be reduced to the verification for a finite number of finite instantiations. We illustrate the applicability of the approach to particular formalisms by a programming language similar to UNITY.

[1]  Somesh Jha,et al.  Exploiting symmetry in temporal logic model checking , 1993, Formal Methods Syst. Des..

[2]  A. W. Roscoe,et al.  Data Independence with Generalised Predicate Symbols , 1999, PDPTA.

[3]  R. Brayton,et al.  Verifying linear temporal properties of data insensitive controllers using finite instantiations , 1997 .

[4]  Andrew William Roscoe,et al.  Proving security protocols with model checkers by data independence techniques , 1999 .

[5]  Robert K. Brayton,et al.  Automatic Datapath Abstraction In Hardware Systems , 1995, CAV.

[6]  A. W. Roscoe,et al.  Formal Verification of Arbitrary Network Topologies , 1999, PDPTA.

[7]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[8]  K. Mani Chandy Parallel program design , 1989 .

[9]  J. Davenport Editor , 1960 .

[10]  Kedar S. Namjoshi,et al.  Syntactic Program Transformations for Automatic Abstraction , 2000, CAV.

[11]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[12]  David L. Dill,et al.  Better verification through symmetry , 1996, Formal Methods Syst. Des..

[13]  Benjamin C. Pierce,et al.  Theoretical Aspects of Computer Software , 2001, Lecture Notes in Computer Science.

[14]  Bengt Jonsson,et al.  Deciding Bisimulation Equivalences for a Class of Non-Finite-State Programs , 1989, Inf. Comput..

[15]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[16]  Jan van Leeuwen,et al.  Handbook of Theoretical Computer Science, Vol. B: Formal Models and Semantics , 1994 .

[17]  Peter W. O'Hearn,et al.  An Axiomatic Approach to Binary Logical Relations with Applications to Data Refinement , 1997, TACS.

[18]  Ranko S. Lazic,et al.  A semantic study of data independence with applications to model checking , 1999 .

[19]  Bill Roscoe Verifying Determinism of Concurrent Systems Which Use Unbounded Arrays , 1998 .

[20]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Automatic Program Verification (Preliminary Report) , 1986, LICS.

[21]  Wolfgang Thomas,et al.  Automata on Infinite Objects , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[22]  Pierre Wolper,et al.  Expressing interesting properties of programs in propositional temporal logic , 1986, POPL '86.

[23]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[24]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .