Cargando…

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

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 inva...

Descripción completa

Detalles Bibliográficos
Autores principales: Mansky, William, Honoré, Wolf, Appel, Andrew W.
Formato: Online Artículo Texto
Lenguaje:English
Publicado: 2020
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7702256/
http://dx.doi.org/10.1007/978-3-030-44914-8_16
_version_ 1783616577969586176
author Mansky, William
Honoré, Wolf
Appel, Andrew W.
author_facet Mansky, William
Honoré, Wolf
Appel, Andrew W.
author_sort Mansky, William
collection PubMed
description 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.
format Online
Article
Text
id pubmed-7702256
institution National Center for Biotechnology Information
language English
publishDate 2020
record_format MEDLINE/PubMed
spelling pubmed-77022562020-12-01 Connecting Higher-Order Separation Logic to a First-Order Outside World Mansky, William Honoré, Wolf Appel, Andrew W. Programming Languages and Systems Article 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. 2020-04-18 /pmc/articles/PMC7702256/ http://dx.doi.org/10.1007/978-3-030-44914-8_16 Text en © The Author(s) 2020 Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made. The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
spellingShingle Article
Mansky, William
Honoré, Wolf
Appel, Andrew W.
Connecting Higher-Order Separation Logic to a First-Order Outside World
title Connecting Higher-Order Separation Logic to a First-Order Outside World
title_full Connecting Higher-Order Separation Logic to a First-Order Outside World
title_fullStr Connecting Higher-Order Separation Logic to a First-Order Outside World
title_full_unstemmed Connecting Higher-Order Separation Logic to a First-Order Outside World
title_short Connecting Higher-Order Separation Logic to a First-Order Outside World
title_sort connecting higher-order separation logic to a first-order outside world
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7702256/
http://dx.doi.org/10.1007/978-3-030-44914-8_16
work_keys_str_mv AT manskywilliam connectinghigherorderseparationlogictoafirstorderoutsideworld
AT honorewolf connectinghigherorderseparationlogictoafirstorderoutsideworld
AT appelandreww connectinghigherorderseparationlogictoafirstorderoutsideworld