{"title":"Mover Logic:用于还原和可靠保证推理的并行程序逻辑(扩展版)","authors":"Cormac Flanagan, Stephen N. Freund","doi":"arxiv-2407.08070","DOIUrl":null,"url":null,"abstract":"Rely-guarantee (RG) logic uses thread interference specifications (relies and\nguarantees) to reason about the correctness of multithreaded software.\nUnfortunately, RG logic requires each function postcondition to be \"stabilized\"\nor specialized to the behavior of other threads, making it difficult to write\nfunction specifications that are reusable at multiple call sites. This paper presents mover logic, which extends RG logic to address this\nproblem via the notion of atomic functions. Atomic functions behave as if they\nexecute serially without interference from concurrent threads, and so they can\nbe assigned more general and reusable specifications that avoid the\nstabilization requirement of RG logic. Several practical verifiers (Calvin-R,\nQED, CIVL, Armada, Anchor, etc.) have demonstrated the modularity benefits of\natomic function specifications. However, the complexity of these systems and\ntheir correctness proofs makes it challenging to understand and extend these\nsystems. Mover logic formalizes the central ideas reduction in a declarative\nprogram logic that may provide foundation for future work in this area.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":"1 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-07-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Mover Logic: A Concurrent Program Logic for Reduction and Rely-Guarantee Reasoning (Extended Version)\",\"authors\":\"Cormac Flanagan, Stephen N. Freund\",\"doi\":\"arxiv-2407.08070\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Rely-guarantee (RG) logic uses thread interference specifications (relies and\\nguarantees) to reason about the correctness of multithreaded software.\\nUnfortunately, RG logic requires each function postcondition to be \\\"stabilized\\\"\\nor specialized to the behavior of other threads, making it difficult to write\\nfunction specifications that are reusable at multiple call sites. This paper presents mover logic, which extends RG logic to address this\\nproblem via the notion of atomic functions. Atomic functions behave as if they\\nexecute serially without interference from concurrent threads, and so they can\\nbe assigned more general and reusable specifications that avoid the\\nstabilization requirement of RG logic. Several practical verifiers (Calvin-R,\\nQED, CIVL, Armada, Anchor, etc.) have demonstrated the modularity benefits of\\natomic function specifications. However, the complexity of these systems and\\ntheir correctness proofs makes it challenging to understand and extend these\\nsystems. Mover logic formalizes the central ideas reduction in a declarative\\nprogram logic that may provide foundation for future work in this area.\",\"PeriodicalId\":501197,\"journal\":{\"name\":\"arXiv - CS - Programming Languages\",\"volume\":\"1 1\",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2024-07-10\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"arXiv - CS - Programming Languages\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/arxiv-2407.08070\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2407.08070","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Mover Logic: A Concurrent Program Logic for Reduction and Rely-Guarantee Reasoning (Extended Version)
Rely-guarantee (RG) logic uses thread interference specifications (relies and
guarantees) to reason about the correctness of multithreaded software.
Unfortunately, RG logic requires each function postcondition to be "stabilized"
or specialized to the behavior of other threads, making it difficult to write
function specifications that are reusable at multiple call sites. This paper presents mover logic, which extends RG logic to address this
problem via the notion of atomic functions. Atomic functions behave as if they
execute serially without interference from concurrent threads, and so they can
be assigned more general and reusable specifications that avoid the
stabilization requirement of RG logic. Several practical verifiers (Calvin-R,
QED, CIVL, Armada, Anchor, etc.) have demonstrated the modularity benefits of
atomic function specifications. However, the complexity of these systems and
their correctness proofs makes it challenging to understand and extend these
systems. Mover logic formalizes the central ideas reduction in a declarative
program logic that may provide foundation for future work in this area.