如何证明“Total”不是递归的(可判定的)

时间:2013-12-03 03:53:05

标签: recursion discrete-mathematics proof halting-problem decidable

Halt = { f,x | f(x)↓ } is re (semi-decidable) but undecidable

Total = { f | ∀x f(x)↓ } is non-re (not even semi-decidable) 

我需要一些帮助来证明 Total 问题不是递归的(可判定的)。

我知道暂停问题的对角化证明,我只需要针对总计问题提供相同类型的证明。我发布了暂停问题证明以供参考:

暂停问题证明

假设我们可以决定暂停问题。然后存在一些总函数Halt这样的

            1 if [x] (y) is defined 
Halt(x,y) = 
            0 if [x] (y) is not defined 

这里,我们编号了所有程序,[x]指的是这个顺序中的第x个程序。我们 通过将输入视为单个数字,可以将Halt视为从ℵ到mapping的映射 表示通过一对一的两个数字配对到函数

pair(x,y) = <x,y> = 2^x (2y + 1) – 1 
with inverses 
      <z>1 = exp(z+1,1) 

<z>2 = ((( z + 1 ) // 2^<z>1) – 1 ) // 2 

现在如果Halt存在,那么Disagree也是如此,

             0             if Halt(x,x) = 0, i.e, if Φx (x) is not defined 
Disagree(x) = 
             µy (y == y+1) if Halt(x,x) = 1, i.e, if Φx (x) is defined 

由于Disagree是从ℵ到ℵ的程序,不同意可以由Halt推理。让d 如此不同意=Φd,那么

不同意(d)定义⇔Halt(d,d)=0⇔Φd(d)未定义⇔不同意(d)未定义

但这意味着不同意与自己的存在相矛盾。因为我们采取的每一步都是 除了原始假设之外,我们必须假定原始假设是错误的。因此,停止问题是不可解决的。

0 个答案:

没有答案