Schematic Program Proofs with Abstract Execution

被引:0
|
作者
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
相关论文
共 50 条
  • [11] Proofs, programs and abstract complexity
    Beckmann, Arnold
    Computer Science Logic, Proceedings, 2007, 4646 : 4 - 5
  • [12] Compositional Soundness Proofs of Abstract Interpreters
    Keidel, Sven
    Poulsen, Casper Bach
    Erdweg, Sebastian
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES, 2018,
  • [13] Compositional Soundness Proofs of Abstract Interpreters
    Keidel, Sven
    Poulsen, Casper Bach
    Erdweg, Sebastian
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2
  • [14] ABSTRACT IMPLEMENTATIONS AND THEIR CORRECTNESS PROOFS.
    Nourani, C.Farshid
    Journal of the ACM, 1983, 30 (02): : 343 - 359
  • [15] AN ABSTRACT PROGRAMMING LANGUAGE AND CORRECTNESS PROOFS
    LIU, SY
    COMPUTER LANGUAGES, 1993, 18 (04): : 273 - 282
  • [16] ABSTRACT EXECUTION OF PROGRAMS.
    Sarbo, J.
    Periodica Polytechnica Electrical Engineering, 1986, 30 (01): : 37 - 47
  • [17] Abstract interpretation of proofs: Classical propositional calculus
    Hyland, M
    COMPUTER SCIENCE LOGIC, PROCEEDINGS, 2004, 3210 : 6 - 21
  • [18] On bisimulation proofs for the analysis of distributed abstract machines
    Pous, Damien
    TRUSTWORTHY GLOBAL COMPUTING, 2007, 4661 : 150 - 166
  • [19] Symbolic Execution Proofs for Higher Order Store Programs
    Bernhard Reus
    Nathaniel Charlton
    Ben Horsfall
    Journal of Automated Reasoning, 2015, 54 : 199 - 284
  • [20] AN ABSTRACT EXECUTION MODEL FOR BASIC LOTOS
    VALENZANO, A
    SISTO, R
    CIMINIERA, L
    SOFTWARE ENGINEERING JOURNAL, 1990, 5 (06): : 311 - 318