VERCORS: a Layered Approach to Practical Verification of Concurrent Software

被引:7
|
作者
Amighi, Afshin [1 ]
Blom, Stefan [1 ]
Huisman, Marieke [1 ]
机构
[1] Univ Twente, Formal Methods & Tools, Enschede, Netherlands
关键词
LOGIC;
D O I
10.1109/PDP.2016.107
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
This paper discusses how several concurrent program verification techniques can be combined in a layered approach, where each layer is especially suited to verify one aspect of concurrent programs, thus making verification of concurrent programs practical. At the bottom layer, we use a combination of implicit dynamic frames and CSL-style resource invariants, to reason about data race freedom of programs. We illustrate this on the verification of a lock-free queue implementation. On top of this, layer 2 enables reasoning about resource invariants that express a relationship between thread-local and shared variables. This is illustrated by the verification of a reentrant lock implementation, where thread-locality is used to specify for a thread which locks it holds, while there is a global notion of ownership, expressing for a lock by which thread it is held. Finally, the top layer adds a notion of histories to reason about functional properties. We illustrate how this is used to prove that the lock-free queue preserves the order of elements, without having to reverify the aspects related to data race freedom.
引用
收藏
页码:495 / 503
页数:9
相关论文
共 50 条
  • [11] Java']JavaBIP meets VerCors: Towards the Safety of Concurrent Software Systems in Java']Java
    Bliudze, Simon
    van den Bos, Petra
    Huisman, Marieke
    Rubbens, Robert
    Safina, Larisa
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, FASE 2023, 2023, 13991 : 143 - 150
  • [12] Practical concurrent ASIC and system design and verification
    Gibson, I
    Amies, C
    EUROPEAN DESIGN & TEST CONFERENCE - ED&TC 97, PROCEEDINGS, 1997, : 532 - 536
  • [13] Cloud-Based Verification of Concurrent Software
    Holzmann, Gerard J.
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2016, 2016, 9583 : 311 - 327
  • [14] Concurrent software verification with states, events, and deadlocks
    Chaki, S
    Clarke, E
    Ouaknine, J
    Sharygina, N
    Sinha, N
    FORMAL ASPECTS OF COMPUTING, 2005, 17 (04) : 461 - 483
  • [15] The practical aspects of using a layered software approach for small-embedded systems
    Koo, CY
    Stella, G
    Au, R
    Zhai, R
    Kuramatsu, H
    NEC RESEARCH & DEVELOPMENT, 1999, 40 (03): : 371 - 377
  • [16] Concurrent embedded real-time software verification
    Hsiung, PA
    24TH ANNUAL INTERNATIONAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE (COSPSAC 2000), 2000, 24 : 516 - 521
  • [17] A PRACTICAL APPROACH TO THE ANALYSIS OF CONCURRENT SYSTEMS
    ABRIAL, JR
    LECTURE NOTES IN COMPUTER SCIENCE, 1985, 207 : 66 - 96
  • [18] A practical approach to evolving concurrent programs
    Jackson, D
    GENETIC PROGRAMMING, PROCEEDINGS, 2004, 3003 : 89 - 100
  • [19] CIRCULATING SOFTWARE - A PRACTICAL APPROACH
    SMISEK, T
    LIBRARY JOURNAL, 1985, 110 (08) : 108 - 109
  • [20] SOFTWARE TRANSFERABILITY - A PRACTICAL APPROACH
    LEMOINE, M
    MULLOR, J
    SOFTWARE-PRACTICE & EXPERIENCE, 1981, 11 (05): : 425 - 433