Chapter

Programming Languages and Systems

Volume 6012 of the series Lecture Notes in Computer Science pp 610-629

Explicit Stabilisation for Modular Rely-Guarantee Reasoning

  • John WickersonAffiliated withLancaster UniversityUniversity of Cambridge Computer Laboratory
  • , Mike DoddsAffiliated withLancaster UniversityUniversity of Cambridge Computer Laboratory
  • , Matthew ParkinsonAffiliated withLancaster UniversityUniversity of Cambridge Computer Laboratory

Abstract

We propose a new formalisation of stability for Rely-Guarantee, in which an assertion’s stability is encoded into its syntactic form. This allows two advances in modular reasoning. Firstly, it enables Rely-Guarantee, for the first time, to verify concurrent libraries independently of their clients’ environments. Secondly, in a sequential setting, it allows a module’s internal interference to be hidden while verifying its clients. We demonstrate our approach by verifying, using RGSep, the Version 7 Unix memory manager, uncovering a twenty-year-old bug in the process.