Rely-Guarantee-Based Simulation for Compositional Verification of Concurrent Program Transformations

被引:22
|
作者
Liang, Hongjin [1 ]
Feng, Xinyu [1 ]
Fu, Ming [1 ]
机构
[1] Univ Sci & Technol China, Sch Comp Sci & Technol, Hefei 230026, Anhui, Peoples R China
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2014年 / 36卷 / 01期
基金
中国国家自然科学基金;
关键词
Theory; Verification; Concurrency; program transformation; rely-guarantee reasoning; simulation; SEPARATION LOGIC; ABSTRACTION; CORRECTNESS; THREADS; DERIVATION; PARALLEL; COMPILER; OBJECTS; PROOFS; MODEL;
D O I
10.1145/2576235
中图分类号
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 article, 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 with respect to 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.
引用
收藏
页数:55
相关论文
共 5 条
  • [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] A Rely-Guarantee-Based Simulation for Verifying Concurrent Program Transformations
    Liang, Hongjin
    Feng, Xinyu
    Fu, Ming
    POPL 12: PROCEEDINGS OF THE 39TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2012, : 455 - 468
  • [3] 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
  • [4] Compositional verification of concurrent systems using Petri-net-based condensation rules
    Juan, EYT
    Tsai, JJP
    Murata, T
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1998, 20 (05): : 917 - 979