论文标题
通过有限的抽象来计算和证明有充分的订单
Computing and Proving Well-founded Orderings through Finite Abstractions
论文作者
论文摘要
检查复杂状态机器的属性的一种常见技术是构建有限的抽象,然后检查抽象系统上的属性 - 如果证明抽象是代表性的,则在抽象系统上的传递检查仅转移到原始系统。这种方法确实需要有限抽象的推导或定义,但可以避免需要复杂的不变定义。为了检查微处理器中存储交易进度的工作,我们需要证明复杂状态机器中的交易始终可以完成完成。作为这项工作的一部分,我们开发了一个方法,用于计算目标状态机器的有限抽象图,以及关于某些度量是否在抽象图中的ARC上降低的注释。然后,我们通过将抽象图分成牢固连接的组件,然后为抽象图中的每个节点构建一个度量,以确保在原始系统的每个过渡中降低以保证进度的每个节点。对于有限状态目标系统(例如硬件设计),我们介绍了使用GL进行增量SAT,然后应用我们的过程来检查进度的方法,以有效地提取抽象图。我们将面包算法的实现作为示例应用程序。
A common technique for checking properties of complex state machines is to build a finite abstraction then check the property on the abstract system -- where a passing check on the abstract system is only transferred to the original system if the abstraction is proven to be representative. This approach does require the derivation or definition of the finite abstraction, but can avoid the need for complex invariant definition. For our work in checking progress of memory transactions in microprocessors, we need to prove that transactions in complex state machines always make progress to completion. As a part of this effort, we developed a process for computing a finite abstract graph of the target state machine along with annotations on whether certain measures decrease or not on arcs in the abstract graph. We then iteratively divide the abstract graph by splitting into strongly connected components and then building a measure for every node in the abstract graph which is ensured to be reducing on every transition of the original system guaranteeing progress. For finite state target systems (e.g. hardware designs), we present approaches for extracting the abstract graph efficiently using incremental SAT through GL and then the application of our process to check for progress. We present an implementation of the Bakery algorithm as an example application.