A Rely-Guarantee-Based Simulation for Verifying Concurrent Program Transformations

被引:0
作者
Liang, Hongjin [1 ]
Feng, Xinyu [1 ]
Fu, Ming [1 ]
机构
[1] Univ Sci & Technol China, Sch Comp Sci & Technol, Hefei 230026, Anhui, Peoples R China
来源
POPL 12: PROCEEDINGS OF THE 39TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES | 2012年
关键词
Concurrency; Program Transformation; Rely-Guarantee Reasoning; Simulation; ABSTRACTION; PARALLEL;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Verifying program transformations usually requires proving that the resulting program (the target) refines or is equivalent to the original one (the source). However, the refinement relation between individual sequential threads cannot be preserved in general with the presence of parallel compositions, due to instruction reordering and the different granularities of atomic operations at the source and the target. On the other hand, the refinement relation defined based on fully abstract semantics of concurrent programs assumes arbitrary parallel environments, which is too strong and cannot be satisfied by many well-known transformations. In this paper, we propose a Rely-Guarantee-based Simulation (RGSim) to verify concurrent program transformations. The relation is parametrized with constraints of the environments that the source and the target programs may compose with. It considers the interference between threads and their environments, thus is less permissive than relations over sequential programs. It is compositional w.r.t. parallel compositions as long as the constraints are satisfied. Also, RGSim does not require semantics preservation under all environments, and can incorporate the assumptions about environments made by specific program transformations in the form of rely/guarantee conditions. We use RGSim to reason about optimizations and prove atomicity of concurrent objects. We also propose a general garbage collector verification framework based on RGSim, and verify the Boehm et al. concurrent mark-sweep GC.
引用
收藏
页码:455 / 468
页数:14
相关论文
共 50 条
  • [1] A Rely-Guarantee-Based Simulation for Verifying Concurrent Program Transformations
    Liang, Hongjin
    Feng, Xinyu
    Fu, Ming
    ACM SIGPLAN NOTICES, 2012, 47 (01) : 455 - 468
  • [2] Rely-Guarantee-Based Simulation for Compositional Verification of Concurrent Program Transformations
    Liang, Hongjin
    Feng, Xinyu
    Fu, Ming
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 36 (01):
  • [3] Verifying a Concurrent Garbage Collector with a Rely-Guarantee Methodology
    Yannick Zakowski
    David Cachera
    Delphine Demange
    Gustavo Petri
    David Pichardie
    Suresh Jagannathan
    Jan Vitek
    Journal of Automated Reasoning, 2019, 63 : 489 - 515
  • [4] Verifying a Concurrent Garbage Collector with a Rely-Guarantee Methodology
    Zakowski, Yannick
    Cachera, David
    Demange, Delphine
    Petri, Gustavo
    Pichardie, David
    Jagannathan, Suresh
    Vitek, Jan
    JOURNAL OF AUTOMATED REASONING, 2019, 63 (02) : 489 - 515
  • [5] Investigating the limits of rely/guarantee relations based on a concurrent garbage collector example
    Jones, Cliff B.
    Yatapanage, Nisansala
    FORMAL ASPECTS OF COMPUTING, 2019, 31 (03) : 353 - 374
  • [6] Verifying Concurrent Data Structures by Simulation
    Colvin, Robert
    Doherty, Simon
    Groves, Lindsay
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2005, 137 (02) : 93 - 110
  • [7] Rely-Guarantee Termination and Cost Analyses of Loops with Concurrent Interleavings
    Elvira Albert
    Antonio Flores-Montoya
    Samir Genaim
    Enrique Martin-Martin
    Journal of Automated Reasoning, 2017, 59 : 47 - 85
  • [8] Rely-Guarantee Termination and Cost Analyses of Loops with Concurrent Interleavings
    Albert, Elvira
    Flores-Montoya, Antonio
    Genaim, Samir
    Martin-Martin, Enrique
    JOURNAL OF AUTOMATED REASONING, 2017, 59 (01) : 47 - 85
  • [9] Verifying Invariants of Lock-Free Data Structures with Rely-Guarantee and Refinement Types
    Gordon, Colin S.
    Ernst, Michael A.
    Grossman, Dan
    Parkinson, Matthew J.
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2017, 39 (03):
  • [10] Verifying and Testing Concurrent Programs using Constraint Solver based Approaches
    Khanna, Dhriti
    Purandare, Rahul
    Sharma, Subodh
    2020 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2020), 2020, : 834 - 838