One of the main challenges of reactive synthesis, an automated procedure to obtain a correct-by-construction reactive system, is to deal with unrealizable specifications. One means to deal with unrealizability, in the context of GR(1), an expressive assume-guarantee fragment of LTL that enables efficient synthesis, is the computation of an unrealizable core, which can be viewed as a fault-localization approach. Existing solutions, however, are computationally costly, are limited to computing a single core, and do not correctly support specifications with constructs beyond pure GR(1) elements. In this work we address these limitations. First, we present QuickCore, a novel algorithm that accelerates unrealizable core computations by relying on the monotonicity of unrealizability, on an incremental computation, and on additional properties of GR(1) specifications. Second, we present Punch, a novel algorithm to efficiently compute all unrealizable cores of a specification. Finally, we present means to correctly handle specifications that include higher-level constructs beyond pure GR(1) elements. We implemented our ideas on top of Spectra, an open-source language and synthesis environment. Our evaluation over benchmarks from the literature shows that QuickCore is in most cases faster than previous algorithms, and that its relative advantage grows with scale. Moreover, we found that most specifications include more than one core, and that Punch finds all the cores significantly faster than a competing naive algorithm.
翻译:被动合成是一个自动程序,以获得一个按部就班的被动反应系统,它的主要挑战之一是处理无法实现的规格。在GR(1)背景下,一个处理不现实的新型算法,即立特L的显性假设-保证碎片,以促成有效的合成,就是计算一个无法实现的核心,可被视为一种错误定位方法。但现有解决办法在计算上成本高昂,限于计算一个单一核心,不正确地支持规格,其构建超出纯的GR(1)要素。在这项工作中,我们处理这些局限性。首先,我们提出QQuickCore,一种新型算法,通过依赖不现实的单一性、递增的计算和GR(1)规格的额外特性,加快无法实现的核心计算速度。第二,我们提出一种新的算法,以高效地拼写所有无法实现的规格核心。最后,我们提出一种处理规格的方法,包括比纯的GR(1)要素更高级的构造。我们在Spectra、最开放的算法中采用了一种新的算法,而我们从Spectra、最快速的算法中找到了一个比前的缩缩缩写法。