Abstract. Modern programming languages, such as C++ and Java, provide a se-quentially consistent (SC) memory model for well-behaved programs that follow a certain synchronisation discipline, e.g., for those that are data-race free (DRF). However, performance-critical libraries often violate the discipline by using low-level hardware primitives, which have a weaker semantics. In such scenarios, it is important for these libraries to protect their otherwise well-behaved clients from the weaker memory model. In this paper, we demonstrate that a variant of linearizability can be used to rea-son formally about the interoperability between a high-level DRF client and a low-level library written for the Total Store Order (TSO) memory model, which ...