数理逻辑5 -- 计算理论3

本文探讨了部分递归函数的概念,它们与图灵机可计算性等价。介绍了标准图灵可计算函数的定义,证明了部分递归函数可以被图灵机计算,同时也说明了图灵可计算函数是部分递归的。文章通过图灵机的算术化展示了如何将计算理论与数理逻辑相结合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部分递归函数(Partial Recursive Function)

定义图灵机不单单是为了好玩,还为了研究什么样的东西才是“可计算”的。从图灵机“一步一步”操作的方式来看,好像任意函数都能被计算。但实际上,只有某一类函数可被图灵机计算。这类函数被称作部分递归函数,与图灵机可计算的函数是等价的。

前面漫长的证明哥德尔不完备定理过程中,哥德尔引入了“原始递归和递归函数”的概念,然后利用哥德尔编码把符号、好式子、证明,等一系列形式系统里的东西变成递归函数,再把递归函数变回形式系统里的符号,从而构造出“自指”的奇怪好式子。这里图灵用了同样的手法,让我们一步步看看图灵的戏法。

前面提到了递归函数的概念:(a) 初始函数、零函数和投射函数;(b) 替代操作;(c) 递归操作;(d) 受限μμ−操作。我们说,一个函数是递归的,当且仅当,它是(a)中的某一种函数,或者由递归函数通过(b)(c)(d)中任意一种操作而成。

在这里,我们放宽一下(d)操作,把受限μμ−操作变成非受限μμ−操作(unrestricted μμ−operation)

f(x1,...,xn)=μy(g(x1,...,xn,y)=0)f(x1,...,xn)=μy(g(x1,...,xn,y)=0)
,即满足 f(x1,...,xn)f(x1,...,xn) 的函数值是满足 g(x1,...,xn,y)=0g(x1,...,xn,y)=0 的最小的 yy

注意,对于某一组 x 1 , . . . , x n ,若没有yy满足 g ( x 1 , . . . , x n , y ) = 0 ,则f(x1,...,xn)f(x1,...,xn)的函数值就没有定义,这也是为什么称为“部分函数”。

我们说,一个函数f(x1,...,xn)f(x1,...,xn)部分递归函数(partial recursive function),当且仅当,它是初始函数,或者由部分递归函数经过替代、递归、非受限μμ−操作而构成。

我们将证明,部分递归函数与图灵机可计算函数等价。为此,我们先证明任一部分递归函数都可被图灵机计算。

标准图灵可计算(Standard Turing-Computable, ST-compute)

这里定义标准图灵可计算只是为了讨论方便,并没有引入新概念。

我们说,部分函数(partial function)f(x1,...,xn)f(x1,...,xn)是标准图灵可计算(standard Turing-computable),当存在一个图灵机FF,使得对于任意自然数k1,...,knk1,...,kn,以下条件成立:
Bk1¯¯¯¯¯Bk2¯¯¯¯¯B...Bkn¯¯¯¯¯Bk1¯Bk2¯B...Bkn¯表示磁带上的一个“参数带(argument strip)”。注意,参数带右方没有格子,左方可能有其它格子。图灵机FF从参数带的k1¯¯¯¯¯k1¯的第一个格子开始操作:
1. FF停止,当且仅当,f(k1,...,kn)f(k1,...,kn)有定义;
2. 若FF停止,磁带上保留参数带,并且在右方打印Bf(x1,...,xn)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯Bf(x1,...,xn)¯,也即把结果打印在参数带的右方。
3. 停机时,磁头对着f(x1,...,xn)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯f(x1,...,xn)¯左起第一个格子;
4. 停机时,f(x1,...,xn)¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯f(x1,...,xn)¯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值