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 条
  • [1] The VerCors Tool for Verification of Concurrent Programs
    Blom, Stefan
    Huisman, Marieke
    FM 2014: FORMAL METHODS, 2014, 8442 : 127 - 131
  • [2] PRACTICAL APPROACH TO MODELLING AND VERIFICATION OF CONCURRENT SYSTEMS WITH ALVIS
    Szpyrka, Marcin
    Matyasik, Piotr
    Mrowka, Rafal
    PROCEEDINGS - 25TH EUROPEAN CONFERENCE ON MODELLING AND SIMULATION, ECMS 2011, 2011, : 539 - +
  • [3] Verification of Concurrent Software
    Huisman, Marieke
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2017, (261): : 2 - 2
  • [4] Verification of Concurrent Software
    Kroening, Daniel
    DEPENDABLE SOFTWARE SYSTEMS ENGINEERING, 2016, 45 : 159 - 178
  • [5] Automated Verification of Concurrent Software
    Kroening, Daniel
    REACHABILITY PROBLEMS, 2013, 8169 : 19 - 20
  • [6] Verification of concurrent software with FLAVERS
    Naumovich, G
    Dwyer, MB
    Clarke, LA
    Osterweil, LJ
    PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, : 594 - 595
  • [7] FORMAL VERIFICATION OF CONCURRENT SOFTWARE
    SCHNEIDER, FB
    PROCEEDINGS : THE THIRTEENTH ANNUAL INTERNATIONAL COMPUTER SOFTWARE & APPLICATIONS CONFERENCE, 1989, : 59 - 59
  • [8] A Thread Modularity Approach for Verification Concurrent Software Based on Abstract Interpretation
    Jiang, Qingyu
    Liu, Jing
    Hu, Haodong
    2018 25TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2018), 2018, : 119 - 128
  • [9] Practical verification of embedded software
    Staunstrup, J
    Andersen, HR
    Hulgaard, H
    Lind-Nielsen, J
    Larsen, KG
    Behrmann, G
    Kristoffersen, K
    Skou, A
    Leerberg, H
    Theilgaard, NB
    COMPUTER, 2000, 33 (05) : 68 - +
  • [10] Practical concurrent software evaluation for certification
    Welzel, D
    Hausen, HL
    JOURNAL OF SYSTEMS AND SOFTWARE, 1997, 38 (01) : 71 - 83