论文标题

蒸馏计划以证明终止

Distilling Programs to Prove Termination

论文作者

Hamilton, G. W.

论文摘要

确定任何程序终止是否被证明是不可确定的,但该地区的最新进展允许确定大量计划的这些信息。确定程序是否终止的经典方法可以追溯到图丁(Turing)自己,并涉及找到将程序状态映射到良好的排名函数,然后证明此功能的结果对每个可能的程序过渡都会降低。证明终止的最新方法涉及从搜索单个排名函数的搜索和搜索一组排名函数。该集合是排名函数的选择,并且使用了分离的终止参数。在本文中,我们描述了一种确定程序是否终止的新技术。我们的技术应用于蒸馏程序转换的输出,该输出将程序转换为简化的形式,称为蒸馏形式。蒸馏形式的程序被转换为相应的标记过渡系统,可以通过证明通过此标记的过渡系统的所有可能的无限痕迹来证明终止,这将导致良好的数据值的无限下降。我们在许多示例上演示了我们的技术,并将其与以前的工作进行比较。

The problem of determining whether or not any program terminates was shown to be undecidable by Turing, but recent advances in the area have allowed this information to be determined for a large class of programs. The classic method for deciding whether a program terminates dates back to Turing himself and involves finding a ranking function that maps a program state to a well-order, and then proving that the result of this function decreases for every possible program transition. More recent approaches to proving termination have involved moving away from the search for a single ranking function and toward a search for a set of ranking functions; this set is a choice of ranking functions and a disjunctive termination argument is used. In this paper, we describe a new technique for determining whether programs terminate. Our technique is applied to the output of the distillation program transformation that converts programs into a simplified form called distilled form. Programs in distilled form are converted into a corresponding labelled transition system and termination can be demonstrated by showing that all possible infinite traces through this labelled transition system would result in an infinite descent of well-founded data values. We demonstrate our technique on a number of examples, and compare it to previous work.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源