加载中...
莱斯定理指出,关于程序所计算函数的任何非平凡语义性质都是不可判定的。它是停机问题不可判定性的深刻推广,说明我们无法通过算法一般性地判断程序的行为特征。

| 类型 | 定理 |
| 提出者 | Henry Gordon Rice |
| 时间 | 1953年 |
| 领域 | 可计算性理论 |
| 结论 | 非平凡语义性质不可判定 |
莱斯定理(Rice's Theorem)是可计算性理论中的一个基本结果,由亨利·莱斯(Henry Gordon Rice)于 1953 年提出。它断言:对于程序所计算的部分函数,任何非平凡的语义性质都是不可判定的。换言之,不存在一个通用算法,能对所有程序正确判断其行为是否具备某种非平凡特征。
这里的语义性质指的是关于程序计算出什么函数的性质,而不是关于程序代码写法的语法性质。非平凡是指该性质既非对所有程序都成立,也非对所有程序都不成立。莱斯定理表明,只要一个性质满足这两个条件,判定它的问题就必然不可判定。停机问题只是其中一个特例。
莱斯定理为程序分析设定了理论上限,说明完全精确的自动程序验证在一般情况下不可能。这解释了为什么静态分析工具往往采用近似手段,只能给出保守或不完全的结论。它也提醒人们,追求万能的漏洞检测器或等价性判定器在理论上是行不通的。
问:莱斯定理是否意味着程序验证毫无意义?答:不是。它只说明不存在对所有程序都精确的通用算法,针对受限程序类或采用近似方法的分析仍然非常有用。
问:它和停机问题是什么关系?答:停机问题是莱斯定理的一个特例,莱斯定理把不可判定性从停机这一性质推广到所有非平凡语义性质。

| 类型 | 定理 |
| 提出者 | Henry Gordon Rice |
| 时间 | 1953年 |
| 领域 | 可计算性理论 |
| 结论 | 非平凡语义性质不可判定 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧