一句话:提出 QuickCore 和 Punch 算法,分别加速 GR(1) 规约的不可实现核计算并枚举全部核,并处理更高层构造。
反应式综合需要从规约自动构造正确的反应式系统,但不可实现规约是其核心挑战。在 GR(1) 这一高效可综合的 assume-guarantee LTL 片段中,计算不可实现核可视为故障定位,然而现有方法计算代价高、只能得到单一核,且无法正确处理纯 GR(1) 之外的构造。本文提出 QuickCore,利用不可实现性的单调性、增量计算及 GR(1) 规约性质加速核计算;提出 Punch 高效枚举全部不可实现核;并支持包含更高层构造的规约。作者在开源语言与综合环境 Spectra 上实现。文献基准评估表明,QuickCore 多数情况下快于已有算法且相对优势随规模增长;多数规约含多个核,Punch 显著快于朴素算法。
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.