Lighthouse projects such as CompCert, seL4, IronFleet, and DeepSpec have demonstrated that full verification of entire systems is feasible by establishing a refinement relation between an abstract system specification and an executable implementation. Existing approaches however impose severe restrictions on either the abstract system specifications due to their limited expressiveness or versatility, or on the executable code due to their reliance on suboptimal code extraction or inexpressive program logics. We propose a novel methodology that combines the compositional refinement of abstract, event-based models of distributed systems with the verification of full-fledged program code using expressive separation logics, which support features of realistic programming languages like mutable heap data structures and concurrency. The main technical contribution of our work is a formal framework that soundly relates event-based system models to program specifications in separation logics, such that successful verification establishes a refinement relation between the model and the code. We formalized our framework, Igloo, in Isabelle/HOL. Our framework enables the sound combination of tools for protocol development with existing program verifiers. We report on three case studies, a leader election protocol, a replication protocol, and a security protocol, for which we refine formal requirements into program specifications (in Isabelle/HOL) that we implement in Java and Python and prove correct using the VeriFast and Nagini tools.


翻译:CompCert, seL4, EronFleet, and DeepSpec等灯塔项目表明,通过在抽象系统规格和可执行的执行之间建立一种完善的关系,充分核查整个系统是可行的。然而,现有办法对抽象系统规格的精细性或多功能性加以严格限制,对抽象系统规格加以严格限制,或对可执行代码加以严格限制,因为它们依赖亚优的代码提取或表达式程序逻辑。我们提出了一种新颖的方法,将抽象的、基于事件的分布式系统模型的构成完善与使用明确分离逻辑的完整程序编码的核查结合起来,这种逻辑支持现实的编程语言的特征,如可变式数据结构及可执行性。我们工作的主要技术贡献是一个正式框架,将基于事件的系统模型与分离逻辑的方案规格妥善联系起来,这样成功的核查将模型和代码之间建立了一种完善的关系。我们在伊莎贝尔/HOstst中将我们的程序开发框架的工具与现有的程序校准者进行合理结合。我们报告了三个案例研究,一个领导人选举程序要求,一个用来改进我们的安全性协议和标准。

0
下载
关闭预览

相关内容

Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
108+阅读 · 2020年5月3日
Yoshua Bengio,使算法知道“为什么”
专知会员服务
8+阅读 · 2019年10月10日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
53+阅读 · 2019年9月29日
【ACL2020放榜!】事件抽取、关系抽取、NER、Few-Shot 相关论文整理
深度学习自然语言处理
18+阅读 · 2020年5月22日
LibRec 精选:AutoML for Contextual Bandits
LibRec智能推荐
7+阅读 · 2019年9月19日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Facebook PyText 在 Github 上开源了
AINLP
7+阅读 · 2018年12月14日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
已删除
将门创投
5+阅读 · 2017年11月22日
gan生成图像at 1024² 的 代码 论文
CreateAMind
4+阅读 · 2017年10月31日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Arxiv
0+阅读 · 2020年11月30日
Arxiv
0+阅读 · 2020年11月29日
Arxiv
0+阅读 · 2020年11月29日
Arxiv
0+阅读 · 2020年11月28日
Arxiv
0+阅读 · 2020年11月25日
VIP会员
相关VIP内容
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
108+阅读 · 2020年5月3日
Yoshua Bengio,使算法知道“为什么”
专知会员服务
8+阅读 · 2019年10月10日
最新BERT相关论文清单,BERT-related Papers
专知会员服务
53+阅读 · 2019年9月29日
相关资讯
【ACL2020放榜!】事件抽取、关系抽取、NER、Few-Shot 相关论文整理
深度学习自然语言处理
18+阅读 · 2020年5月22日
LibRec 精选:AutoML for Contextual Bandits
LibRec智能推荐
7+阅读 · 2019年9月19日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Facebook PyText 在 Github 上开源了
AINLP
7+阅读 · 2018年12月14日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
已删除
将门创投
5+阅读 · 2017年11月22日
gan生成图像at 1024² 的 代码 论文
CreateAMind
4+阅读 · 2017年10月31日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Top
微信扫码咨询专知VIP会员