Affiliation:
1. Seoul National University, South Korea / MPI-SWS, Germany
2. Seoul National University, South Korea
3. MPI-SWS, Germany
Abstract
Much work in formal verification of low-level systems is based on one of two approaches: refinement or separation logic. These two approaches have complementary benefits: refinement supports the use of programs as specifications, as well as transitive composition of proofs, whereas separation logic supports conditional specifications, as well as modular ownership reasoning about shared state. A number of verification frameworks employ these techniques in tandem, but in all such cases the benefits of the two techniques remain separate. For example, in frameworks that use relational separation logic to prove contextual refinement, the relational separation logic judgment does not support transitive composition of proofs, while the contextual refinement judgment does not support conditional specifications.
In this paper, we propose Conditional Contextual Refinement (or CCR, for short), the first verification system to not only combine refinement and separation logic in a single framework but also to truly marry them together into a unified mechanism enjoying all the benefits of refinement and separation logic simultaneously. Specifically, unlike in prior work, CCR’s refinement specifications are both conditional (with separation logic pre- and post-conditions) and transitively composable. We implement CCR in Coq and evaluate its effectiveness on a range of interesting examples.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference34 articles.
1. Andrew W. Appel . 2014. Program Logics for Certified Compilers . Cambridge University Press . https://www.cambridge.org/de/academic/subjects/computer-science/programming-languages-and-applied-logic/program-logics-certified-compilers Andrew W. Appel. 2014. Program Logics for Certified Compilers. Cambridge University Press. https://www.cambridge.org/de/academic/subjects/computer-science/programming-languages-and-applied-logic/program-logics-certified-compilers
2. On correct refinement of programs
3. Ralph-Johan Back and Joakim Wright . 2012. Refinement calculus: a systematic introduction . Springer Science & Business Media . Ralph-Johan Back and Joakim Wright. 2012. Refinement calculus: a systematic introduction. Springer Science & Business Media.
4. Simple relational correctness proofs for static analyses and program transformations
5. Lars Birkedal and Aleš Bizjak. 2020. Lecture notes on iris: Higher-order concurrent separation logic. https://iris-project.org/tutorial-material.html Lars Birkedal and Aleš Bizjak. 2020. Lecture notes on iris: Higher-order concurrent separation logic. https://iris-project.org/tutorial-material.html
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Fully Composable and Adequate Verified Compilation with Direct Refinements between Open Modules;Proceedings of the ACM on Programming Languages;2024-01-05
2. Algebraic Effects Meet Hoare Logic in Cubical Agda;Proceedings of the ACM on Programming Languages;2024-01-05
3. Multi-Context Modeling of Processes and Services in Cyber-Physical Educational Space;2023 International Conference on Big Data, Knowledge and Control Systems Engineering (BdKCSE);2023-11-02
4. Stuttering for Free;Proceedings of the ACM on Programming Languages;2023-10-16
5. Melocoton: A Program Logic for Verified Interoperability Between OCaml and C;Proceedings of the ACM on Programming Languages;2023-10-16