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 条
  • [21] Demo Abstract: Exploring packet dynamics through the combination of symbolic execution and random testing
    Vu, Minh
    Ha, Phuong
    Xu, Lisong
    IEEE CONFERENCE ON COMPUTER COMMUNICATIONS WORKSHOPS (IEEE INFOCOM 2019 WKSHPS), 2019, : 951 - 952
  • [22] Disjunctive Relational Abstract Interpretation for Interprocedural Program Analysis
    Boutonnet, Remy
    Halbwachs, Nicolas
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2019, 2019, 11388 : 136 - 159
  • [23] Guided Symbolic Execution in Real-World Binary Program
    Park, Sung Hyun
    Noh, Bong Nam
    INFORMATION SCIENCE AND APPLICATIONS, 2020, 621 : 387 - 396
  • [24] Symbolic Execution of Multithreaded Programs from Arbitrary Program Contexts
    Bergan, Tom
    Grossman, Dan
    Ceze, Luis
    ACM SIGPLAN NOTICES, 2014, 49 (10) : 491 - 506
  • [25] Towards a Complete Scheme for Tabled Execution Based on Program Transformation
    Chico de Guzman, Pablo
    Carro, Manuel
    Hermenegildo, Manuel V.
    PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES, 2009, 5418 : 224 - 238
  • [26] Research on Parallel Symbolic Execution through Program Dependence Analysis
    Cao, Yan
    Wei, Qiang
    Wang, Qingxian
    2012 FIFTH INTERNATIONAL SYMPOSIUM ON COMPUTATIONAL INTELLIGENCE AND DESIGN (ISCID 2012), VOL 2, 2012, : 222 - 226
  • [27] A Novel Program Analysis Method Based On Execution Path Correlation
    Fan, Wenqing
    Zhou, Binbin
    Liang, Hongliang
    Yang, Yixian
    2009 SECOND INTERNATIONAL SYMPOSIUM ON KNOWLEDGE ACQUISITION AND MODELING: KAM 2009, VOL 2, 2009, : 178 - 181
  • [28] A Sketch of a Complete Scheme for Tabled Execution Based on Program Transformation
    Chico de Guzman, Pablo
    Carro, Manuel
    Hermenegildo, Manuel V.
    LOGIC PROGRAMMING, PROCEEDINGS, 2008, 5366 : 795 - 800
  • [29] Facilitating program performance profiling via evolutionary symbolic execution
    Aquino, Andrea
    Braione, Pietro
    Denaro, Giovanni
    Salza, Pasquale
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2020, 30 (02):
  • [30] 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,