Ensuring the correctness of software for communication centric programs is important but challenging. Previous approaches, based on session types, have been intensively investigated over the past decade. They provide a concise way to express protocol specifications and a lightweight approach for checking their implementation. Current solutions are based on only implicit synchronization, and are based on the less precise types rather than logical formulae. In this paper, we propose a more expressive session logic to capture multiparty protocols. By using two kinds of ordering constraints, namely "happens-before" <HB and "communicates-before" <CB, we show how to ensure from first principle race-freedom over common channels. Our approach refines each specification with both assumptions and proof obligations to ensure compliance to some global protocol. Each specification is then projected for each party and then each channel, to allow cooperative proving through localized automated verification. Our primary goal in automated verification is to ensure race-freedom and communication-safety, but the approach is extensible for deadlock-freedom as well. We shall also describe how modular protocols can be captured and handled by our approach.
翻译:确保通信中心程序软件的正确性固然重要,但具有挑战性。在过去的十年中,基于会议类型的做法已经得到深入调查。它们提供了一种简洁的方法来表达协议规格和检查其执行的轻量级方法。目前的解决办法仅基于隐含的同步,其依据是不那么精确的类型,而不是逻辑公式。在本文件中,我们提出了一个更清晰的会话逻辑来捕捉多党协议。通过使用两种排序限制,即“先得后得”<HB'和“先得后得”<CB,我们展示了如何从第一个原则确保共同渠道的种族自由。我们的方法改进了每一项规格,既包括假设,也包括证明义务,以确保某些全球议定书的遵守。然后为每个缔约方预测每一种规格,然后是允许通过局部自动化核查来合作证明。我们自动化核查的主要目标是确保种族自由和通信安全,但对于僵局也是可行的办法。我们还将描述我们的方法如何捕获和处理模块化协议。