arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2008.02936cs.LO
收藏

提取程序以证明终止性

Distilling Programs to Prove Termination

G. W. Hamilton

摘要:

确定任何程序是否终止的问题被图灵证明是不可判定的,但该领域的最新进展已经允许为一大类程序确定此信息。决定程序是否终止的经典方法可以追溯到图灵本人,涉及到找到一个将程序状态映射到良序的排序函数,然后证明这个函数的结果对于每个可能的程序转换都是递减的。最近证明终止性的方法涉及从搜索单个排名函数转向搜索一组排名函数;这组是排名函数的选择,并使用了析取终止参数。在本文中,我们描述了一种新的技术,用于确定程序是否终止。我们的技术被应用到蒸馏程序转换的输出,将程序转换成一个简化的形式称为蒸馏形式。在蒸馏形式的程序被转换成相应的标记的过渡系统和终止可以证明,通过这个标记的过渡系统的所有可能的无限的痕迹将导致一个无限的下降,有根据的数据值。我们证明了我们的技术上的一些例子,并将其与以前的工作。

英文摘要:

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.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑