Distributed agreement-based (DAB) systems use common distributed agreement protocols such as leader election and consensus as building blocks for their target functionality. While automated verification for DAB systems is undecidable in general, recent work identifies a large class of DAB systems for which verification is efficiently-decidable. Unfortunately, the conditions characterizing such a class can be opaque and non-intuitive, and can pose a significant challenge to system designers trying to model their systems in this class. In this paper, we present a synthesis-driven tool, Cinnabar, to help system designers building DAB systems "fit" their intended designs into an efficiently-decidable class. In particular, starting from an initial sketch provided by the designer, Cinnabar generates sketch completions using a counterexample-guided procedure. The core technique relies on a compact encoding of a set of related counterexamples. We demonstrate Cinnabar's effectiveness by successfully and efficiently synthesizing completions for a variety of interesting DAB systems.
翻译:分布式协议(DAB)系统使用共同分布式协议协议协议,如领导人选举和共识,作为目标功能的构件。虽然对 DAB 系统的自动核查在总体上是不可分的,但最近的工作确定了大量DAB 系统,这些系统可以有效地进行验证。不幸的是,这类系统的特点可以是不透明的、非直观的,并且可能对试图在本类中模拟其系统的系统系统系统的设计者构成重大挑战。在本文中,我们提出了一个合成驱动工具Cinnabar,以帮助系统设计者建立DAB 系统,将其预定的设计“适合”到一个高效的、可测定的类别。特别是,从设计者提供的初步草图开始,Cinnabar使用反示例制导程序制作草图完成。核心技术依赖于一套相关的反样集的统合编码。我们通过成功和高效的合成各种有趣的DAB 系统完成过程来展示Cenbar的功效。