Schematic Program Proofs with Abstract Execution

被引:1
作者
Steinhoefel, Dominic [1 ]
Haehnle, Reiner [2 ]
机构
[1] CISPA Helmholtz Ctr Informat Secur, Stuhlsatzenhaus 5, D-66123 Saarbrucken, Germany
[2] Tech Univ Darmstadt, Software Engn Grp, Hochschulstr 10, D-64289 Darmstadt, Germany
关键词
Schematic Programs; Symbolic Execution; Deductive Verification; Program Transformation; Second-Order Program Properties; DYNAMIC FRAMES; VERIFICATION;
D O I
10.1007/s10817-023-09692-0
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
We propose Abstract Execution, a static verification framework based on symbolic execution and dynamic frames for proving properties of schematic programs. Since a schematic program may potentially represent infinitely many concrete programs, Abstract Execution can analyze infinitely many programs at once. Trading off expressiveness and automation, the framework allows proving many interesting (universal, behavioral) properties fully automatically. Its main application are correctness proofs of program transformations represented as pairs of schematic programs. We implemented Abstract Execution in a deductive verification framework and designed a graphical workbench supporting the modeling process. Abstract Execution has been applied to correct code refactoring, analysis of the cost impact of transformation rules, and parallelization of sequential code. Using our framework, we found and reported several bugs in the refactoring engines of the Java IDEs IntelliJ IDEA and Eclipse, which were acknowledged and fixed.
引用
收藏
页数:57
相关论文
共 37 条
  • [31] Detecting MPI Usage Anomalies via Partial Program Symbolic Execution
    Ye, Fangke
    Zhao, Jisheng
    Sarkar, Vivek
    PROCEEDINGS OF THE INTERNATIONAL CONFERENCE FOR HIGH PERFORMANCE COMPUTING, NETWORKING, STORAGE, AND ANALYSIS (SC'18), 2018,
  • [32] A NOVEL SYMBOLIC EXECUTION FRAMEWORK FOR MULTI-PROCEDURE PROGRAM ANALYSIS
    Fan Wenqing
    Liang Hongling
    Yang Yixian
    Xu Guoai
    PROCEEDINGS OF 2009 2ND IEEE INTERNATIONAL CONFERENCE ON BROADBAND NETWORK & MULTIMEDIA TECHNOLOGY, 2009, : 858 - 863
  • [33] Co-induction Simply Automatic Co-inductive Proofs in a Program Verifier
    Leino, K. Rustan M.
    Moskal, Michal
    FM 2014: FORMAL METHODS, 2014, 8442 : 382 - 398
  • [34] Verifying Full Regular Temporal Properties of Programs via Dynamic Program Execution
    Wang, Meng
    Tian, Cong
    Zhang, Nan
    Duan, Zhenhua
    IEEE TRANSACTIONS ON RELIABILITY, 2019, 68 (03) : 1101 - 1116
  • [35] Symbolic Execution of Complex Program Driven by Machine Learning Based Constraint Solving
    Li, Xin
    Liang, Yongjuan
    Qian, Hong
    Hu, Yi-Qi
    Bu, Lei
    Yu, Yang
    Chen, Xin
    Li, Xuandong
    2016 31ST IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2016, : 554 - 559
  • [36] A Program Simplification Method for Generating Test Input Values Using Symbolic Execution
    Soga, Ryo
    Yonemitsu, Tetsuya
    Inagaki, Mitsuo
    Fujisaki, Yasushi
    Sugou, Hiroo
    Kanuka, Hideyuki
    2020 27TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2020), 2020, : 507 - 508
  • [37] Program transformation and runtime support for threaded MPI execution on shared-memory machines
    Tang, H
    Shen, K
    Yang, T
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2000, 22 (04): : 673 - 700