[论文解读] Checking Refinement of Asynchronous Programs Against Context-Free Specifications
本文提出了一种针对异步程序对Dyck语言规格说明的精化验证的EXPSPACE完全算法,通过在非良拟序上提出一种新颖的向下封闭构造,将上下文无关的任务语言替换为正则语言,随后归约为带状态的向量加法系统(VASS)。该方法实现了对并发系统中引用计数和屏障同步模式的自动化验证,并具备精确的复杂度界。
In the language-theoretic approach to refinement verification, we check that the language of traces of an implementation all belong to the language of a specification. We consider the refinement verification problem for asynchronous programs against specifications given by a Dyck language. We show that this problem is EXPSPACE-complete - the same complexity as that of language emptiness and for refinement verification against a regular specification. Our algorithm uses several technical ingredients. First, we show that checking if the coverability language of a succinctly described vector addition system with states (VASS) is contained in a Dyck language is EXPSPACE-complete. Second, in the more technical part of the proof, we define an ordering on words and show a downward closure construction that allows replacing the (context-free) language of each task in an asynchronous program by a regular language. Unlike downward closure operations usually considered in infinite-state verification, our ordering is not a well-quasi-ordering, and we have to construct the regular language ab initio. Once the tasks can be replaced, we show a reduction to an appropriate VASS and use our first ingredient. In addition to the inherent theoretical interest, refinement verification with Dyck specifications captures common practical resource usage patterns based on reference counting, for which few algorithmic techniques were known.
研究动机与目标
- 为解决异步程序对上下文无关规格说明(特别是建模引用计数和屏障同步的Dyck语言)进行精化验证的挑战。
- 填补算法技术在验证依赖平衡括号结构的并发系统资源使用模式方面的空白。
- 确定对Dyck语言进行精化检查的复杂度,表明其为EXPSPACE完全——与正则规格说明包含问题的复杂度一致。
- 提出一种可在非良拟序上工作的新型向下封闭构造,从而在验证中用正则语言替代上下文无关的任务语言。
提出的方法
- 引入一种非良拟序的单词序,支持为异步程序中的上下文无关语言设计定制的向下封闭构造。
- 通过从头构建的方式,为每个任务的迹语言构造正则语言表示,而非依赖标准的向下封闭操作。
- 使用简洁描述的带状态向量加法系统(VASS)来建模任务语言正则抽象后的异步程序全局行为。
- 将精化问题归约为检查VASS的可覆盖语言是否包含于Dyck语言的问题,该问题被证明为EXPSPACE完全。
- 利用驯服泵送(tame-pumping)与偏移/下探追踪,通过有限状态转移器模拟推导树,并在抽象过程中保持结构不变量。
- 设计一种确定性的单重简洁有限状态自动机(dsNFA),用于猜测转移器的骨架执行路径,并在分隔符#和¯#之间验证偏移与下探不变量。
实验结果
研究问题
- RQ1对异步程序在Dyck语言规格说明下的精化验证是否可判定?其计算复杂度如何?
- RQ2当底层序不是良拟序时,能否为上下文无关语言开发出向下封闭构造?
- RQ3在保持精化语义的前提下,能否有效用正则语言替代异步程序中单个任务的迹语言?
- RQ4当从正则语言规格说明移动到Dyck语言规格说明时,精化检查的复杂度是否增加?尽管两者均为EXPSPACE完全。
- RQ5所提出的方法能否应用于实际的并发模式,如引用计数和屏障同步?
主要发现
- 对异步程序在Dyck语言规格说明下进行精化检查的问题是EXPSPACE完全的,其复杂度与语言空性检查及正则规格说明包含问题一致。
- 提出了一种可在非良拟序上工作的新型向下封闭构造,实现了对上下文无关任务语言的有效正则抽象。
- 推导树中单词的偏移与下探值受文法大小的多项式界约束,从而支持有限状态对结构不变量的追踪。
- 构建用于识别程序迹语言正则抽象的dsNFA,其空间复杂度仅随输入文法大小呈指数增长,与复杂度上界一致。
- 对VASS可覆盖语言包含问题的归约是正确且完备的,且该VASS包含问题被证明为EXPSPACE完全。
- 该方法实现了对常见资源管理模式(如引用计数)的自动化验证,而这些模式此前在缺乏手动不变量的情况下难以验证。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。