Skip to main content
QUICK REVIEW

[论文解读] A multi-paradigm language for reactive synthesis

Ioannis Filippidis, Richard M. Murray|Feb 3, 2016
Formal Methods in Verification参考文献 68被引用 10
一句话总结

本文提出一种结合命令式与声明式元素的多范式语言,用于反应式合成,采用类似 Promela 的语法表达系统行为及基于 LTL 的保证。通过结构化假设与保证,结合 BDD 重排序优化策略构造,有效避免策略构建过程中的状态爆炸问题,使 AMBA AHB 总线案例研究的性能相比先前工作提升两个数量级。

ABSTRACT

This paper proposes a language for describing reactive synthesis problems that integrates imperative and declarative elements. The semantics is defined in terms of two-player turn-based infinite games with full information. Currently, synthesis tools accept linear temporal logic (LTL) as input, but this description is less structured and does not facilitate the expression of sequential constraints. This motivates the use of a structured programming language to specify synthesis problems. Transition systems and guarded commands serve as imperative constructs, expressed in a syntax based on that of the modeling language Promela. The syntax allows defining which player controls data and control flow, and separating a program into assumptions and guarantees. These notions are necessary for input to game solvers. The integration of imperative and declarative paradigms allows using the paradigm that is most appropriate for expressing each requirement. The declarative part is expressed in the LTL fragment of generalized reactivity(1), which admits efficient synthesis algorithms, extended with past LTL. The implementation translates Promela to input for the Slugs synthesizer and is written in Python. The AMBA AHB bus case study is revisited and synthesized efficiently, identifying the need to reorder binary decision diagrams during strategy construction, in order to prevent the exponential blowup observed in previous work.

研究动机与目标

  • 为解决纯声明式 LTL 规范在反应式合成中面对顺序或图状约束时变得非结构化且难以维护的局限性。
  • 将命令式构造(如带条件的命令、转移系统)与声明式 LTL 片段(带过去逻辑的 GR(1))相结合,以实现更清晰、更易维护的合成规范。
  • 通过结构化假设与保证,以及在策略构造过程中支持 BDD 重排序,实现高效合成,防止指数级膨胀。
  • 在 AMBA AHB 总线案例研究中验证该方法,展示相比先前方法的显著性能提升。

提出的方法

  • 该语言采用类似 Promela 的语法建模系统与环境行为,明确分离玩家之间的控制流与数据流。
  • 在规范中正式分离保证与假设,通过双人轮流博弈机制实现正确合成。
  • 声明式部分使用广义反应性(1)(GR(1))的一个扩展片段,引入过去 LTL 以实现高效合成。
  • 实现部分通过基于 Python 的编译器将多范式规范转换为 Slugs 合成器的输入。
  • 在策略构造过程中应用 BDD 重排序,以避免指数级状态爆炸,这是提升可扩展性的关键优化。
  • 该方法在统一框架中同时支持命令式序列(如循环、条件语句)与声明式时序属性(如公平性、活锁性)。

实验结果

研究问题

  • RQ1与纯 LTL 相比,混合命令式-声明式语言是否能提升反应式合成规范的可读性与可维护性?
  • RQ2如何将命令式构造(如带条件的命令、循环)与声明式时序逻辑结合,以表达复杂的顺序约束?
  • RQ3在多范式语言中分离假设与保证,是否能带来更高效的合成,特别是在 BDD 管理方面?
  • RQ4在策略构造过程中应用 BDD 重排序,能在多大程度上防止合成性能的指数级膨胀?
  • RQ5所提出的语言是否能在 AMBA AHB 总线等真实工业基准上实现显著的性能提升?

主要发现

  • 多范式语言成功结合命令式与声明式范式,使合成规范中对顺序与有状态行为的表达更加清晰。
  • AMBA AHB 总线案例研究被高效合成,相比先前方法性能提升两个数量级。
  • 在策略构造过程中引入 BDD 重排序,对防止指数级膨胀至关重要,显著提升了可扩展性。
  • 使用带过去逻辑的 GR(1) 允许高效合成,同时保留了满足实际工业需求的足够表达能力。
  • 该方法表明,结合两种范式的结构化、可读规范能降低规范复杂度,提升可维护性。
  • 将类似 Promela 的代码转换为 Slugs 输入的实现被证明在真实合成任务中高效且可复用。

更好的研究,从现在开始

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

无需绑定信用卡

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