Abstrakt: |
The "specification logic" of J. C. Reynolds (in "Tools and Notions for Program Construction" (D. Néel, Ed.), pp. 121-161, Cambridge Univ. Press, Cambridge, 1982) is a formal system for proving partial-correctness properties of programs in an Algol-like language with higher-order procedures. In a previous publication (Tennent, Inform. and Comput. 85, 135-162 (1990)), a model was presented that validates all axioms of the system except those involving non-interference formulas for procedural phrases. Following Reynolds, non-interference for procedural phrases was there defined syntactically, by induction on types. Here, we present a new semantic interpretation of non-interference (for phrases of arbitrary type) which is equivalent to the interpretation given earlier for phrases of basic type. This interpretation provides the first model for all of Reynold's axioms (except the equivalences formerly used to define procedural non-interference). A slightly more refined model is used to validate also a new axiom which formalizes a method used by Reynolds ("The Craft of Programming," Prentice-Hall, London, 1981) to reason about programs with multiple levels of abstraction.Copyright 1993, 1999 Academic Press |