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 条
  • [41] Detecting Bank Conflict of GPU Programs Using Symbolic Execution
    Hamaya, Koki
    Yamane, Satoshi
    2016 IEEE 5TH GLOBAL CONFERENCE ON CONSUMER ELECTRONICS, 2016,
  • [42] Symbolic Execution and Thresholding for Efficiently Tuning Fuzzy Logic Programs
    Moreno, Gines
    Penabad, Jaime
    Riaza, Jose A.
    Vidal, German
    LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION, LOPSTR 2016, 2017, 10184 : 131 - 147
  • [43] Bounded Symbolic Execution for Runtime Error Detection of Erlang Programs
    De Angelis, Emanuele
    Fioravanti, Fabio
    Palacios, Adrian
    Pettorossi, Alberto
    Proietti, Maurizio
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2018, (278): : 19 - 26
  • [44] Testing multithreaded programs with contextual unfoldings and dynamic symbolic execution
    Kahkonen, Kari
    Heljanko, Keijo
    Proceedings - International Conference on Application of Concurrency to System Design, ACSD, 2014, 2015-January (January): : 142 - 151
  • [45] Termination and complexity analysis for programs with bitvector arithmetic by symbolic execution
    Hensel, Jera
    Giesl, Juergen
    Frohn, Florian
    Stroeder, Thomas
    JOURNAL OF LOGICAL AND ALGEBRAIC METHODS IN PROGRAMMING, 2018, 97 : 105 - 130
  • [46] Combining Symbolic Execution and Model Checking to Verify MPI Programs
    Yu, Hengbiao
    PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING - COMPANION (ICSE-COMPANION, 2018, : 527 - 529
  • [47] Symbolic Execution of MPI Programs with One-Sided Communications
    Hu, Nenghui
    Bian, Zheng
    Shuai, Ziqi
    Chen, Zhenbang
    Zhang, Yufeng
    PROCEEDINGS OF THE 2023 30TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, APSEC 2023, 2023, : 657 - 658
  • [48] Mousse: A System for Selective Symbolic Execution of Programs with Untamed Environments
    Liu, Yingtong
    Hung, Hsin-Wei
    Sani, Ardalan Amiri
    PROCEEDINGS OF THE FIFTEENTH EUROPEAN CONFERENCE ON COMPUTER SYSTEMS (EUROSYS'20), 2020,
  • [49] Symbolic Execution with Existential Second-Order Constraints
    Mechtaev, Sergey
    Griggio, Alberto
    Cimatti, Alessandro
    Roychoudhury, Abhik
    ESEC/FSE'18: PROCEEDINGS OF THE 2018 26TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2018, : 389 - 399
  • [50] Strategies for scalable symbolic execution-driven test generation for programs
    Krishnamoorthy, Saparya
    Hsiao, Michael S.
    Lingappan, Loganathan
    SCIENCE CHINA-INFORMATION SCIENCES, 2011, 54 (09) : 1797 - 1812