%0 Conference Proceedings %T Modularising Opacity Verification for Hybrid Transactional Memory %+ Brunel University London [Uxbridge] %A Armstrong, Alasdair %A Dongol, Brijesh %< avec comité de lecture %( Lecture Notes in Computer Science %B 37th International Conference on Formal Techniques for Distributed Objects, Components, and Systems (FORTE) %C Neuchâtel, Switzerland %Y Ahmed Bouajjani %Y Alexandra Silva %I Springer International Publishing %3 Formal Techniques for Distributed Objects, Components, and Systems %V LNCS-10321 %P 33-49 %8 2017-06-19 %D 2017 %R 10.1007/978-3-319-60225-7_3 %Z Computer Science [cs] %Z Computer Science [cs]/Networking and Internet Architecture [cs.NI]Conference papers %X Transactional memory (TM) manages thread synchronisation to provide an illusion of atomicity for arbitrary blocks of code. There are various implementations of TM, including hardware (HTM) and software (STM). HTMs provide high performance, but are inherently limited by hardware restrictions; STMs avoid these limitations but suffer from unpredictable performance. To solve these problems, hybrid TM (HyTM) algorithms have been introduced which provide reliable software fallback mechanisms for hardware transactions. The key safety property for TM is opacity, however a naive combination of an opaque STM and an opaque HTM does not necessarily result in an opaque HyTM. Therefore, HyTM algorithms must be specially designed to satisfy opacity. In this paper we introduce a modular method for verifying opacity of HyTM implementations. Our method provides conditions under which opacity proofs of HTM and STM components can be combined into a single proof of an overall hybrid algorithm. The proof method has been fully mechanised in Isabelle, and used to verify a novel hybrid version of a transactional mutex lock. %G English %Z TC 6 %Z WG 6.1 %2 https://inria.hal.science/hal-01658416/document %2 https://inria.hal.science/hal-01658416/file/446833_1_En_3_Chapter.pdf %L hal-01658416 %U https://inria.hal.science/hal-01658416 %~ IFIP-LNCS %~ IFIP %~ IFIP-TC %~ IFIP-WG %~ IFIP-TC6 %~ IFIP-WG6-1 %~ IFIP-FORTE %~ IFIP-LNCS-10321