停机问题与模型提升:程序与规范的深入探讨
1. 停机问题中的程序与规范差异
在停机问题的研究中,我们发现程序和规范之间存在着微妙而重要的差异。自引用是停机定理证明中矛盾的根源,Hehner 使用递归定义的方法使这一点变得明确。
1.1 规范函数的定义域分析
假设存在函数 (S),由于 (H) 并非以文本形式给出,(S) 也不能如此,并且当我们要将 (S) 应用于自身时,参数 (I) 也不能是文本。最初假设 (S) 的定义域是所有规范的集合 (S),但这会导致矛盾。
我们定义 (H_R: S \to B),其中 (H_R(I) = true) 当且仅当 (I \in R),(R \subseteq S)。然后 (S_R(I) = \neg ok’ \triangleleft H_R(I) \triangleright ok’) 为每个集合 (R) 定义了一个规范。对于不同的集合 (R_0) 和 (R_1),(S_{R_0}) 和 (S_{R_1}) 是不同的。因为必然存在一个 (s \in R_0) 且 (s \notin R_1)(或者反之),所以 (S_{R_0}(s) = \neg ok’) 且 (S_{R_1}(s) = ok)。这意味着规范集合 (S_R)(它是 (S) 的子集)与 (S) 的幂集具有相同的基数,但幂集的基数总是大于其基集,这是不可能的。所以,我们必须撤回 (S) 的定义域是 (S) 的假设,而将 (S) 定义为从 (S’) 到 (S) 的函数,其中 (S’) 是 (S) 的某个子集。
接下来我们思考 (S \in S’) 是否成立。假设 (S \in S’),那么 (S(S)) 是一个合法的规范,但这会导致前面
超级会员免费看
订阅专栏 解锁全文
893

被折叠的 条评论
为什么被折叠?



