Connecting Higher-Order Separation Logic to a First-Order Outside World

被引:8
|
作者
Mansky, William [1 ]
Honore, Wolf [2 ]
Appel, Andrew W. [3 ]
机构
[1] Univ Illinois, Chicago, IL 60607 USA
[2] Yale Univ, New Haven, CT USA
[3] Princeton Univ, Princeton, NJ 08544 USA
关键词
formal verification; verifying communication; modular verification; interaction trees; VST; CertiKOS;
D O I
10.1007/978-3-030-44914-8_16
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Separation logic is a useful tool for proving the correctness of programs that manipulate memory, especially when the model of memory includes higher-order state: Step-indexing, predicates in the heap, and higher-order ghost state have been used to reason about function pointers, data structure invariants, and complex concurrency patterns. On the other hand, the behavior of system features (e.g., operating systems) and the external world (e.g., communication between components) is usually specified using first-order formalisms. In principle, the soundness theorem of a separation logic is its interface with first-order theorems, but the soundness theorem may implicitly make assumptions about how other components are specified, limiting its use. In this paper, we show how to extend the higher-order separation logic of the Verified Software Toolchain to interface with a first-order verified operating system, in this case CertiKOS, that mediates its interaction with the outside world. The resulting system allows us to prove the correctness of C programs in separation logic based on the semantics of system calls implemented in CertiKOS. It also demonstrates that the combination of interaction trees + CompCert memories serves well as a lingua franca to interface and compose two quite different styles of program verification.
引用
收藏
页码:428 / 455
页数:28
相关论文
共 50 条
  • [1] First-Order Logic on Higher-Order Nested Pushdown Trees
    Kartzow, Alexander
    ACM TRANSACTIONS ON COMPUTATIONAL LOGIC, 2013, 14 (02)
  • [2] Model checking the first-order fragment of higher-order fixpoint logic
    Axelsson, Roland
    Lange, Martin
    LOGIC FOR PROGRAMMING, ARTIFICIAL INTELLIGENCE, AND REASONING, PROCEEDINGS, 2007, 4790 : 62 - +
  • [3] A First-Order Logic for Reasoning About Higher-Order Upper and Lower Probabilities
    Savic, Nenad
    Doder, Dragan
    Ognjanovic, Zoran
    SYMBOLIC AND QUANTITATIVE APPROACHES TO REASONING WITH UNCERTAINTY, ECSQARU 2017, 2017, 10369 : 491 - 500
  • [4] First-order reasoning for higher-order concurrency
    Koutavas, Vasileios
    Hennessy, Matthew
    COMPUTER LANGUAGES SYSTEMS & STRUCTURES, 2012, 38 (03) : 242 - 277
  • [5] Relating higher-order and first-order rewriting
    Bonelli, E
    Kesner, D
    Rios, A
    JOURNAL OF LOGIC AND COMPUTATION, 2005, 15 (06) : 901 - 947
  • [6] On Models of Higher-Order Separation Logic
    Bizjak, Ales
    Birkedal, Lars
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2018, 336 : 57 - 78
  • [7] Separation logic for higher-order store
    Reus, Bernhard
    Schwinghammer, Jan
    COMPUTER SCIENCE LOGIC, PROCEEDINGS, 2006, 4207 : 575 - 590
  • [8] From separation logic to first-order logic
    Calcagno, C
    Gardner, P
    Hague, M
    FOUNDATIONS OF SOFTWARE SCIENCE AND COMPUTATION STRUCTURES, PROCEEDINGS, 2005, 3441 : 395 - 409
  • [9] On the Easiness of Turning Higher-Order Leakages into First-Order
    Moos, Thorben
    Moradi, Amir
    CONSTRUCTIVE SIDE-CHANNEL ANALYSIS AND SECURE DESIGN, 2017, 10348 : 153 - 170
  • [10] First-order and higher-order approximations of observation impact
    Tremolet, Yannick
    METEOROLOGISCHE ZEITSCHRIFT, 2007, 16 (06) : 693 - 694