Igloo:分布式系统验证中组合精化和分离逻辑的良好结合
Igloo: Soundly Linking Compositional Refinement and Separation Logic for Distributed System Verification
摘要:
灯塔项目,如CompCert,seL 4,IronFleet和DeepSpec已经证明,通过在抽象系统规范和可执行实现之间建立细化关系,可以对整个系统进行全面验证。然而,现有的方法施加严重的限制,无论是抽象的系统规范,由于其有限的表现力或多功能性,或可执行代码,由于其依赖于次优的代码提取或无表现力的程序逻辑。我们提出了一种新的方法,结合了组成细化的抽象,基于事件的模型的分布式系统与验证的成熟的程序代码,使用表达分离逻辑,支持功能的现实程序设计语言,如可变堆数据结构和并发。我们的工作的主要技术贡献是一个正式的框架,健全的基于事件的系统模型,程序规范的分离逻辑,这样的成功验证建立了一个细化模型和代码之间的关系。我们在Isabelle/HOL中正式定义了我们的框架Igloo。我们的框架,使现有的程序验证器的协议开发工具的良好组合。我们报告的三个案例研究,领导人选举协议,复制协议,和安全协议,我们完善正式的要求到程序规范(在伊莎贝尔/HOL),我们在Java和Python中实现,并证明正确使用VeriFast和Nagini工具。
英文摘要:
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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。