一句话:提出增量 GR(1) 合成,通过复用获胜区域与单调不动点加速可实现性检查。
反应式合成能保证构造即正确,但 GR(1) 合成器在规约迭代修改时需从头重复计算,成为设计-精化循环的瓶颈。本文提出增量合成方法,利用底层不动点计算的单调性,复用前一次检查得到的系统获胜区域,从而加速可实现性检查。方法覆盖完整 GR(1) 范围,包括系统保证与环境假设,并引入两个用于增量可实现性检查的早期不动点检测启发式。作者还分析了先前仅限系统保证的增量技术为何难以融入不可实现核最小化算法 DDMin。在包含 8,282 个规约的大规模基准上,性能增益与规约复杂度呈强正相关;对最难规约可实现数个数量级加速,部分从近一小时降至数秒。
Although reactive synthesis guarantees correct-by-construction implementations, its practical adoption is limited by a performance bottleneck in the iterative design-and-refinement cycle of formal specifications. GR(1) synthesizers perform redundant, from-scratch computations for each specification modification, severely slowing the development workflow. To address this inefficiency, we propose an incremental synthesis method that exploits the monotonicity of the underlying fixed-point computations. By reusing the system winning region from the preceding check, our method significantly accelerates realizability check. Our work applies an incremental method to iterative GR(1) specification development covering the full GR(1) scope, including system guarantees and environment assumptions, to accelerate realizability checking. Furthermore, we introduce two heuristics for early fixed-point detection during incremental realizability checking. Finally, we analyze why prior work failed to integrate an incremental technique limited to system guarantees into the unrealizable core minimization algorithm DDMin , further establishing iterative development as a suitable application setting for incremental methods. Evaluated on a large-scale benchmark of 8,282 specifications, our method exhibits a strong positive correlation between performance gain and specification complexity. For the most challenging specifications, which constitute the primary bottlenecks in development, our approach achieves speedups of several orders of magnitude, reducing computation times in some cases from nearly an hour to just seconds.
@article{paperbot3791,
title = {Efficient Incremental GR(1) Synthesis via Monotonic Fixed-Point Reuse},
author = {Sirui Liu and Wei Dong and Yijie Zheng and Haonan Guo},
journal = {Proceedings of the ACM on Programming Languages},
volume = {10},
number = {OOPSLA1},
year = {2026},
doi = {10.1145/3798234}
}