Proving refinement using transduction

  • Authors:
  • Bengt Jonsson;Amir Pnueli;Camilla Rump

  • Affiliations:
  • Department of Computer Systems, Uppsala University, P.O.Box 325, 751 05 Uppsala, Sweden;Department of Applied Mathematics and Computer Science, The Weizmann Institute of Science, 76100 Rehovot, Israel;ESPRIT BRA Project no. 7071: ProCoS II: Provably Correct Systems and Department of Computer Science, Technical University of Denmark, DK-2800 Lyngby, Denmark

  • Venue:
  • Distributed Computing - Special issue: Verification of lazy caching
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

When designing distributed systems, one is faced with the problem of verifying a refinement between two specifications, given at different levels of abstraction. Suggested verification techniques in the literature include refinement mappings and various forms of simulation. We present a verification method, in which refinement between two systems is proven by constructing a transducer that inputs a computation of a concrete system and outputs a matching computation of the abstract system. The transducer uses a FIFO queue that holds segments of the concrete computation that have not been matched yet. This allows a finite delay between the occurrence of a concrete event and the determination of the corresponding abstract event. This delay often makes the use of prophecy variables or backward simulation unnecessary.An important generalization of the method is to prove refinement modulo some transformation on the observed sequences of events. The method is adapted by replacing the FIFO queue by a component that allows the appropriate transformation on sequences of events. A particular case is partial-order refinement, i.e., refinement that preserves only a subset of the orderings between events of a system. Examples are sequential consistency and serializability. The case of sequential consistency is illustrated on a proof of sequential consistency of a cache protocol.