Specification of Concurrent Objects Using Auxiliary Variables

Abstract The role of auxiliary variables in the specification of concurrent objects with multiple inputs and outputs is examined. Auxiliary variables needed in a specification are defined through logical assertions on the interface variables. Necessary conditions and generic rules for the definition of such auxiliary variables are presented. The method is illustrated by specifying a concurrent buffer. Based on this specification, a number of useful properties of concurrent buffers and systems composed of them are derived through formal manipulation.