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

William Mansky, Wolf Honoré, Andrew W. Appel

Research output: Chapter in Book/Report/Conference proceedingConference contribution

7 Scopus citations

Abstract

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.

Original languageEnglish (US)
Title of host publicationProgramming Languages and Systems- 29th European Symposium on Programming, ESOP 2020 held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020, Proceedings
EditorsPeter Müller
PublisherSpringer
Pages428-455
Number of pages28
ISBN (Print)9783030449131
DOIs
StatePublished - 2020
Event29th European Symposium on Programming, ESOP 2020, held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020 - Dublin, Ireland
Duration: Apr 25 2020Apr 30 2020

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume12075 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference29th European Symposium on Programming, ESOP 2020, held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020
Country/TerritoryIreland
CityDublin
Period4/25/204/30/20

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • General Computer Science

Keywords

  • CertiKOS
  • VST
  • formal verification
  • interaction trees
  • modular verification
  • verifying communication

Fingerprint

Dive into the research topics of 'Connecting Higher-Order Separation Logic to a First-Order Outside World'. Together they form a unique fingerprint.

Cite this