Referential Opacity In Nondeterministic Data Refinement XIAOLEI QIAN and ALLEN Kestrel Institute GOLDBERG Data refinement is the transformation in a program of one data type to another. With the obvious formalization of nondeterministic data types in equational logic however, many desirable nondeterministic data refinements are impossible to prove correct. Furthermore, it is difficult to have a monotonic notion of refinement. We propose an alternative formalization of nondeterministic data types, in which the requirement of referential transparency applies only to deterministic ,operators. We show how the above-mentioned problems can be solved with our approach. Categories rectness stract data proofs; and Subject Descriptors: D.2.4 [Software Engineering]: Program Verification-corD.3.3 [Programming Languages]: Language Constructs and Features abtypes; F.3.2 [Logics and Meanings of Programs]: Semantics of Programming approaches to semantics Languages-algebraic General Terms: Languages, Theory, Verification Additional Key Words and Phrases: Algebraic specification, data refinement, program transformation, referential transparency, theory morphism nondeterminism, 1. INTRODUCTION Data refinement Data data is the refinement types by transformation has been by initial algebraic algebras theories in a program [Guttag in and of one Horning logic data type to another. of abstract type approached by formalizing equational the semantics 1978], [Bidoit data et al. specifications 1991], and (correct)
/lp/association-for-computing-machinery/referential-opacity-in-nondeterministic-data-refinement-xjGLpa61p0