Using Algebraic Specifications for Data Types Shared among Concurrent Transactions