Symbolic Execution Proofs for Higher Order Store Programs

被引:0
|
作者
Reus, Bernhard [1 ]
Charlton, Nathaniel [1 ]
Horsfall, Ben [1 ]
机构
[1] Univ Sussex, Dept Informat, Brighton, E Sussex, England
基金
英国工程与自然科学研究理事会;
关键词
Program verification; Higher order store; Recursion through the store; Separation logic; Automated verification; AUTOMATED VERIFICATION; SEPARATION LOGIC; SHAPE-ANALYSIS; FOUNDATION;
D O I
10.1007/s10817-014-9319-8
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Higher order store programs are programs which store, manipulate and invoke code at runtime. Important examples of higher order store programs include operating system kernels which dynamically load and unload kernel modules. Yet conventional Hoare logics, which provide no means of representing changes to code at runtime, are not applicable to such programs. Recently, however, new logics using nested Hoare triples have addressed this shortcoming. In this paper we describe, from top to bottom, a sound semi-automated verification system for higher order store programs. We give a programming language with higher order store features, define an assertion language with nested triples for specifying such programs, and provide reasoning rules for proving programs correct. We then present in full our algorithms for automatically constructing correctness proofs. In contrast to earlier work, the language also includes ordinary (fixed) procedures and mutable local variables, making it easy to model programs which perform dynamic loading and other higher order store operations. We give an operational semantics for programs and a step-indexed interpretation of assertions, and use these to show soundness of our reasoning rules, which include a deep frame rule which allows more modular proofs. Our automated reasoning algorithms include a scheme for separation logic based symbolic execution of programs, and automated provers for solving various kinds of entailment problems. The latter are presented in the form of sets of derived proof rules which are constrained enough to be read as a proof search algorithm.
引用
收藏
页码:199 / 284
页数:86
相关论文
共 50 条
  • [31] Loop-Extended Symbolic Execution on Binary Programs
    Saxena, Prateek
    Poosankam, Pongsin
    McCamant, Stephen
    Song, Dawn
    ISSTA 2009: INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, 2009, : 225 - 235
  • [32] Hotspot Symbolic Execution of Floating-Point Programs
    Quan, Minghui
    FSE'16: PROCEEDINGS OF THE 2016 24TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2016, : 1112 - 1114
  • [33] Offline Symbolic Analysis to Infer Total Store Order
    Lee, Dongyoon
    Said, Mahmoud
    Narayanasamy, Satish
    Yang, Zijiang
    2011 IEEE 17TH INTERNATIONAL SYMPOSIUM ON HIGH-PERFORMANCE COMPUTER ARCHITECTURE (HPCA), 2011, : 357 - 368
  • [34] Verified Proofs of Higher-Order Masking
    Barthe, Gilles
    Belaid, Sonia
    Dupressoir, Francois
    Fouque, Pierre-Alain
    Gregoire, Benjamin
    Strub, Pierre-Yves
    ADVANCES IN CRYPTOLOGY - EUROCRYPT 2015, PT I, 2015, 9056 : 457 - 485
  • [35] Static Analysis and Symbolic Execution for Deadlock Detection in MPI Programs
    Douglas, Craig C.
    Krishnamoorthy, Krishanthan
    COMPUTATIONAL SCIENCE - ICCS 2018, PT II, 2018, 10861 : 783 - 796
  • [36] Protocol Knowledge Combined Directed Symbolic Execution for Binary Programs
    Huang, Hui
    Lu, Yu-Liang
    Zhao, Jun
    Wu, Zhi-Yong
    2013 THIRD INTERNATIONAL CONFERENCE ON INSTRUMENTATION & MEASUREMENT, COMPUTER, COMMUNICATION AND CONTROL (IMCCC), 2013, : 120 - 124
  • [37] Model Checking MSVL Programs Based on Dynamic Symbolic Execution
    Duan, Zhenhua
    Bu, Kangkang
    Tian, Cong
    Zhang, Nan
    COMPUTING AND COMBINATORICS, 2015, 9198 : 521 - 533
  • [38] Distributed CFG-based Symbolic Execution for Assembly Programs
    Adachi, Takumi
    Yamane, Satoshi
    Sakurai, Kohei
    2015 IEEE 4TH GLOBAL CONFERENCE ON CONSUMER ELECTRONICS (GCCE), 2015, : 76 - 80
  • [39] Symbolic Execution of Multithreaded Programs from Arbitrary Program Contexts
    Bergan, Tom
    Grossman, Dan
    Ceze, Luis
    ACM SIGPLAN NOTICES, 2014, 49 (10) : 491 - 506
  • [40] Dynamic Symbolic Execution of Java']Java Programs Using JNI
    Vartanov, Sergey
    2017 ELEVENTH INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND INFORMATION TECHNOLOGIES (CSIT), 2017, : 83 - 86