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 条
  • [1] Symbolic Execution Proofs for Higher Order Store Programs
    Bernhard Reus
    Nathaniel Charlton
    Ben Horsfall
    Journal of Automated Reasoning, 2015, 54 : 199 - 284
  • [2] Higher-Order Symbolic Execution via Contracts
    Tobin-Hochstadt, Sam
    Van Horn, David
    ACM SIGPLAN NOTICES, 2012, 47 (10) : 537 - 554
  • [3] Higher order symbolic execution for contract verification and refutation
    Nguyen, Phuc C.
    Tobin-Hochstadt, Sam
    Van Horn, David
    JOURNAL OF FUNCTIONAL PROGRAMMING, 2017, 27
  • [4] Crowfoot: A Verifier for Higher-Order Store Programs
    Charlton, Nathaniel
    Horsfall, Ben
    Reus, Bernhard
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, 2012, 7148 : 136 - 151
  • [5] Effective Interactive Proofs for Higher-Order Imperative Programs
    Chlipala, Adam
    Malecha, Gregory
    Morrisett, Greg
    Shinnar, Avraham
    Wisnesky, Ryan
    ICFP'09: PROCEEDINGS OF THE 2009 ACM SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING, 2009, : 79 - 90
  • [6] Effective Interactive Proofs for Higher-Order Imperative Programs
    Chlipala, Adam
    Malecha, Gregory
    Morrisett, Greg
    Shinnar, Avraham
    Wisnesky, Ryan
    ACM SIGPLAN NOTICES, 2009, 44 (8-9) : 79 - 90
  • [7] Symbolic Execution for Randomized Programs
    Susag, Zachary
    Lahiri, Sumit
    Hsu, Justin
    Roy, Subhajit
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (OOPSLA):
  • [8] Symbolic execution of programs with strings
    Redelinghuys, Gideon
    Visser, Willem
    Geldenhuys, Jaco
    PROCEEDINGS OF THE SOUTH AFRICAN INSTITUTE FOR COMPUTER SCIENTISTS AND INFORMATION TECHNOLOGISTS CONFERENCE, 2012, : 139 - 148
  • [9] On Symbolic Execution of Decompiled Programs
    Korencik, Lukas
    Rockai, Petr
    Lauko, Henrich
    Barnat, Jiri
    2020 IEEE 20TH INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY, AND SECURITY (QRS 2020), 2020, : 265 - 272
  • [10] Symbolic Execution of MPI Programs
    Fu, Xianjin
    Chen, Zhenbang
    Yu, Hengbiao
    Huang, Chun
    Dong, Wei
    Wang, Ji
    2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol 2, 2015, : 809 - 810