{"type":"journal_article","intvolume":" 7","extern":"1","date_created":"2024-09-05T08:21:51Z","quality_controlled":"1","publication_identifier":{"issn":["2475-1421"]},"volume":7,"page":"1121-1151","oa":1,"doi":"10.1145/3571232","oa_version":"Published Version","day":"11","publisher":"Association for Computing Machinery","publication":"Proceedings of the ACM on Programming Languages","main_file_link":[{"open_access":"1","url":"https://doi.org/10.1145/3571232"}],"user_id":"317138e5-6ab7-11ef-aa6d-ffef3953e345","scopus_import":"1","year":"2023","article_type":"original","month":"01","date_published":"2023-01-11T00:00:00Z","publication_status":"published","citation":{"ista":"Song Y, Cho M, Lee D, Hur C-K, Sammler MJ, Dreyer D. 2023. Conditional contextual refinement. Proceedings of the ACM on Programming Languages. 7(POPL), 1121–1151.","ieee":"Y. Song, M. Cho, D. Lee, C.-K. Hur, M. J. Sammler, and D. Dreyer, “Conditional contextual refinement,” Proceedings of the ACM on Programming Languages, vol. 7, no. POPL. Association for Computing Machinery, pp. 1121–1151, 2023.","apa":"Song, Y., Cho, M., Lee, D., Hur, C.-K., Sammler, M. J., & Dreyer, D. (2023). Conditional contextual refinement. Proceedings of the ACM on Programming Languages. Association for Computing Machinery. https://doi.org/10.1145/3571232","mla":"Song, Youngju, et al. “Conditional Contextual Refinement.” Proceedings of the ACM on Programming Languages, vol. 7, no. POPL, Association for Computing Machinery, 2023, pp. 1121–51, doi:10.1145/3571232.","ama":"Song Y, Cho M, Lee D, Hur C-K, Sammler MJ, Dreyer D. Conditional contextual refinement. Proceedings of the ACM on Programming Languages. 2023;7(POPL):1121-1151. doi:10.1145/3571232","short":"Y. Song, M. Cho, D. Lee, C.-K. Hur, M.J. Sammler, D. Dreyer, Proceedings of the ACM on Programming Languages 7 (2023) 1121–1151.","chicago":"Song, Youngju, Minki Cho, Dongjae Lee, Chung-Kil Hur, Michael Joachim Sammler, and Derek Dreyer. “Conditional Contextual Refinement.” Proceedings of the ACM on Programming Languages. Association for Computing Machinery, 2023. https://doi.org/10.1145/3571232."},"status":"public","author":[{"full_name":"Song, Youngju","last_name":"Song","first_name":"Youngju"},{"full_name":"Cho, Minki","first_name":"Minki","last_name":"Cho"},{"full_name":"Lee, Dongjae","last_name":"Lee","first_name":"Dongjae"},{"first_name":"Chung-Kil","last_name":"Hur","full_name":"Hur, Chung-Kil"},{"last_name":"Sammler","first_name":"Michael Joachim","id":"510d3901-2a03-11ee-914d-d9ae9011f0a7","full_name":"Sammler, Michael Joachim"},{"full_name":"Dreyer, Derek","last_name":"Dreyer","first_name":"Derek"}],"language":[{"iso":"eng"}],"abstract":[{"lang":"eng","text":"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. \r\nIn 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."}],"issue":"POPL","title":"Conditional contextual refinement","date_updated":"2024-09-10T09:03:17Z","_id":"17499","article_processing_charge":"No"}