Skip to main content
QUICK REVIEW

[论文解读] Bounded Synthesis of Reactive Programs

Carsten Gerstacker, Felix Klein|arXiv (Cornell University)|Jan 1, 2018
Formal Methods in Verification被引用 4
一句话总结

本文提出了一种有界合成方法,可自动从LTL规范生成可读性强、结构化的反应式程序,采用两种基于约束的方法:一种基于双向交替自动机,另一种通过直接程序编码。在实践中,直接编码方法优于基于自动机的方法,生成的代码效率更高且更易读,结构开销最小。

ABSTRACT

Most algorithms for the synthesis of reactive systems focus on the construction of finite-state machines rather than actual programs. This often leads to badly structured, unreadable code. In this paper, we present a bounded synthesis approach that automatically constructs, from a given specification in linear-time temporal logic (LTL), a program in Madhusudan's simple imperative language for reactive programs. We develop and compare two principal approaches for the reduction of the synthesis problem to a Boolean constraint satisfaction problem. The first reduction is based on a generalization of bounded synthesis to two-way alternating automata, the second reduction is based on a direct encoding of the program syntax in the constraint system. We report on preliminary experience with a prototype implementation, which indicates that the direct encoding outperforms the automata approach.

研究动机与目标

  • 为解决反应式合成工具中缺乏可读、结构化代码的问题,这些工具通常仅生成扁平的有限状态机。
  • 开发一种有界合成方法,生成包含循环和变量的实际命令式程序,而非仅生成状态机。
  • 比较两种基于约束的程序合成编码方法:一种使用双向自动机,另一种使用直接程序语法编码。
  • 评估哪种方法在LTL规范下能产生更高效、可扩展的合成结果。
  • 证明有界合成可扩展以生成最小化、人类可读的程序,同时保持正确性保证。

提出的方法

  • 通过编码程序结构和行为,将反应式合成问题转化为布尔约束满足问题(SAT)。
  • 提出一种广义的有界合成框架,适用于通用双向自动机的运行图,通过注释函数实现接受性检查。
  • 构建一个双向通用Streett自动机,用于识别满足LTL规范的程序,作为第一种方法的基础。
  • 第二种方法直接在约束系统中编码程序的语法及其执行轨迹,避免显式构造自动机。
  • 两种方法均通过使用通用自动机验证所有可能的程序执行路径均满足规范,确保正确性。
  • 直接编码方法经过优化,可在SAT求解器内模拟程序执行,避免复杂自动机运行图的构建。

实验结果

研究问题

  • RQ1有界合成能否扩展为生成结构化、命令式程序,而非扁平的有限状态机?
  • RQ2在程序合成中,基于自动机理论与直接编码方法在性能和可扩展性方面如何比较?
  • RQ3在合成效率方面,直接在约束中编码程序语法是否优于使用双向交替自动机?
  • RQ4生成的程序能否在满足复杂LTL规范的同时,既最小化大小又具备人类可读性?
  • RQ5避免显式构建运行图对求解时间和合成质量有何影响?

主要发现

  • 在所有测试基准中,直接编码方法均优于基于双向自动机的方法,求解时间显著更短。
  • 在2位仲裁器基准中,直接编码方法在14分钟内完成,而基于自动机的方法超过120分钟。
  • 直接编码方法生成了更高效、更易读的代码,例如紧凑的while循环配合变量更新,优于扁平化状态机。
  • 无双向性(直接)编码在程序规模增大时扩展性更好,可处理128状态的程序,而另一种方法在120分钟内未能完成。
  • 广义有界合成框架通过运行图上的注释函数,成功支持Büchi、co-Büchi和Streett接受条件。
  • 两种方法生成的正确程序完全一致,证实了约束编码的正确性,但直接方法因性能优势更具实用性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。