A Library of Concurrent Objects and Their Proofs of Correctness
Chun Gong, Jeannette M. Wing · 1990
Answering the first question is one of definition; the second, of method. While there is no general agreement on an answer to the first, we choose the correctness condition called linearizability, which has recently captured the attention of the research community. Informally, we say an implementation of a concurrent object O is correct if and only if each concurrent history H accepted by O is “equivalent” in some sense to some legal sequential history, where (1) legality is defined in terms of the (sequential) type semantics of the object and (2) the “equivalent” sequential history preserves the real-time ordering of operations in H.