Assertion Recommendation for Formal Program Verification

被引:9
|
作者
Wang, Cong [1 ]
He, Fei [1 ]
Song, Xiaoyu [2 ]
Jiang, Yu [1 ]
Gu, Ming [1 ]
Sun, Jiaguang [1 ]
机构
[1] Tsinghua Univ, Sch Software, Beijing, Peoples R China
[2] Portland State Univ, Dept ECE, Portland, OR 97201 USA
关键词
D O I
10.1109/COMPSAC.2017.66
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
Formal program verification is a powerful technique to ensure the correctness of programs. To perform this technique, one oftentimes needs to manually specify assertions, which is a time-consuming and error-prone task. Generating assertions automatically can significantly improve the usability of formal program verification. To decide where an assertion is needed heavily and which value range of the variable should be checked are the most challenging parts of assertion recommendation. This paper proposes the first assertion recommendation approach for program verification. With the help of machine learning techniques, the approach automatically decides whether a program function needs to add assertions. If an assertion is needed, the approach automatically recommends a variable that is most likely to occur in this assertion. Meanwhile, a value range of the variable is suggested. Our method of assertion recommendation has been integrated into Ceagle Online(1) (a program verifier) and evaluated on the benchmarks of SV-COMP and CProver. Our best performance in assertion necessity classification can reach 92.1192% accuracy rate, 84.2281% precision rate and 86.8512% recall rate.
引用
收藏
页码:154 / 159
页数:6
相关论文
共 50 条
  • [1] Assertion checking environment (ACE) for formal verification of C programs
    Sharma, B
    Dhodapkar, SD
    Ramesh, S
    RELIABILITY ENGINEERING & SYSTEM SAFETY, 2003, 81 (03) : 281 - 290
  • [2] AN ASSERTION-BASED VERIFICATION SYSTEM FOR FORMAL REQUIREMENTS DESCRIPTION
    AGUSA, K
    OHNISHI, A
    OHNO, Y
    JAPAN ANNUAL REVIEWS IN ELECTRONICS COMPUTERS & TELECOMMUNICATIONS, 1984, 12 : 11 - 23
  • [3] Practical assertion-based formal verification for SoC designs
    Yeung, Ping
    Larsen, Kenneth
    2005 International Symposium on System-On-Chip, Proceedings, 2005, : 58 - 61
  • [4] Formal verification for C program
    Qian, Junyan
    Xu, Baowen
    INFORMATICA, 2007, 18 (02) : 289 - 304
  • [5] Automatic assume guarantee analysis for assertion-based formal verification
    Wang, Dong
    Levitt, Jeremy
    ASP-DAC 2005: PROCEEDINGS OF THE ASIA AND SOUTH PACIFIC DESIGN AUTOMATION CONFERENCE, VOLS 1 AND 2, 2005, : 561 - 566
  • [6] Towards Formal Verification of Program Obfuscation
    Lu, Weiyun
    Sistany, Bahman
    Felty, Amy
    Scott, Philip
    2020 IEEE EUROPEAN SYMPOSIUM ON SECURITY AND PRIVACY WORKSHOPS (EUROS&PW 2020), 2020, : 635 - 644
  • [7] How the design of JML accommodates both runtime assertion checking and formal verification
    Leavens, GT
    Cheon, Y
    Clifton, C
    Ruby, C
    Cok, DR
    FORMAL METHODS FOR COMPONENTS AND OBJECTS, 2003, 2852 : 262 - 284
  • [8] How the design of JML accommodates both runtime assertion checking and formal verification
    Leavens, GT
    Cheon, Y
    Clifton, C
    Ruby, C
    Cok, DR
    SCIENCE OF COMPUTER PROGRAMMING, 2005, 55 (1-3) : 185 - 208
  • [9] FORMAL PROGRAM VERIFICATION USING SYMBOLIC EXECUTION
    DANNENBERG, RB
    ERNST, GW
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1982, 8 (01) : 43 - 52
  • [10] Weak-Assert: A Weakness-Oriented Assertion Recommendation Toolkit for Program Analysis
    Wang, Cong
    Jiang, Yu
    Zhao, Xibin
    Song, Xiaoyu
    Gu, Ming
    Sun, Jiaguang
    PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING - COMPANION (ICSE-COMPANION, 2018, : 69 - 72