上一篇: 謂詞演算
形式算術
等詞
在上一篇定義的謂詞演算基礎上, 我們引入一個特殊的二元謂詞: 等詞 R 1 2 R^2_1 R 1 2 , 這個謂詞用以形式化表達我們心目中的 “相等” 概念, 形式算術 K N K_N K N 即是一種帶等詞的謂詞演算. 下面把 R 1 2 R^2_1 R 1 2 簡記為 “≈ \approx ≈ ”.
在帶有等詞的謂詞演算 K K K 中, 以下三種形式的公式叫做等詞公理 :
( E 1 ) t ≈ t ; ( E 2 ) t k ≈ u → R 1 2 ( f i n ( t 1 , ⋯ , t k , ⋯ , t n ) , f i n ( t 1 , ⋯ , u , ⋯ , t n ) ) ; ( E 3 ) t k ≈ u → ( R i n ( t 1 , ⋯ , t k , ⋯ , t n ) → R i n ( t 1 , ⋯ , u , ⋯ , t n ) ) .
\begin{align*}
&(E1)\quad t\approx t; \\
&(E2)\quad t_k\approx u\to R^2_1(f^n_i(t_1,\cdots,t_k,\cdots,t_n),f^n_i(t_1,\cdots,u,\cdots,t_n)); \\
&(E3)\quad t_k\approx u\to (R^n_i(t_1,\cdots,t_k,\cdots,t_n)\to R^n_i(t_1,\cdots,u,\cdots,t_n)).
\end{align*}
( E 1 ) t ≈ t ; ( E 2 ) t k ≈ u → R 1 2 ( f i n ( t 1 , ⋯ , t k , ⋯ , t n ) , f i n ( t 1 , ⋯ , u , ⋯ , t n )) ; ( E 3 ) t k ≈ u → ( R i n ( t 1 , ⋯ , t k , ⋯ , t n ) → R i n ( t 1 , ⋯ , u , ⋯ , t n )) .
其中 t 1 , ⋯ , t n t_1,\cdots,t_n t 1 , ⋯ , t n 是任意的項, k = 1 , ⋯ , n k=1,\cdots,n k = 1 , ⋯ , n . 記 E = { E 1 , E 2 , E 3 } E=\left\lbrace E1,E2,E3\right\rbrace E = { E 1 , E 2 , E 3 } .
需要注意的是, 這些等詞公理不是有效式, 即它並非在 K K K 的任何解釋域中恆真. 但當 “≈ \approx ≈ ” 在解釋域中解釋為 “相等” 時, 該解釋域一定是 E E E 的模型.
容易證明:
E ⊢ t ≈ t E\vdash t\approx t E ⊢ t ≈ t ; (自反性)
E ⊢ t ≈ u → u ≈ t E\vdash t\approx u\to u\approx t E ⊢ t ≈ u → u ≈ t ; (對稱性)
E ⊢ t ≈ u → ( u ≈ v → t ≈ v ) E\vdash t\approx u\to(u\approx v\to t\approx v) E ⊢ t ≈ u → ( u ≈ v → t ≈ v ) . (傳遞性)
由此可知, 等詞 “≈ \approx ≈ ” 在公理集 E E E 的模型中不一定解釋為 “相等”, 但它所解釋的二元關係一定是等價關係.
形式算術
形式算術 K N K_N K N 指一種特殊的帶等詞的謂詞演算, 它有一個個體常元 c 1 c_1 c 1 , 三個函數詞: f 1 1 f^1_1 f 1 1 , f 1 2 f^2_1 f 1 2 , f 2 2 f^2_2 f 2 2 , 和一個二元謂詞 ≈ \approx ≈ .
K N K_N K N 有一個自然的解釋域: 自然數集
N = { 0 , 1 , 2 , ⋯ } \mathbb{N}=\left\lbrace 0,1,2,\cdots\right\rbrace N = { 0 , 1 , 2 , ⋯ } . 在
N \mathbb{N} N 中
c 1 c_1 c 1 解釋為
0 0 0 ;
f 1 1 f^1_1 f 1 1 ,
f 1 2 f^2_1 f 1 2 ,
f 2 2 f^2_2 f 2 2 分別解釋為一元後繼函數, 二元求和函數, 二元乘積函數; 等詞
≈ \approx ≈ 解釋為
N \mathbb{N} N 中的相等(
= = = ).
由於接下來的討論基本限於這個標準自然數的解釋域, 下面把個體常元 c 1 c_1 c 1 寫成 0 ‾ \overline{0} 0 , f 1 1 ( t ) f^1_1(t) f 1 1 ( t ) , f 1 2 ( t 1 , t 2 ) f^2_1(t_1,t_2) f 1 2 ( t 1 , t 2 ) , f 2 2 ( t 1 , t 2 ) f^2_2(t_1,t_2) f 2 2 ( t 1 , t 2 ) 分別寫成 t ′ t' t ′ , t 1 + t 2 t_1+t_2 t 1 + t 2 , t 1 × t 2 t_1\times t_2 t 1 × t 2 . 在 N \mathbb{N} N 中常元 0 ‾ \overline{0} 0 解釋為 0 0 0 , 項 0 ‾ ′ \overline{0}' 0 ′ 解釋為 0 ′ = 1 0'=1 0 ′ = 1 . 下面把閉項 0 ‾ ′ , 0 ‾ ′ ′ , ⋯ \overline{0}',\overline{0}'',\cdots 0 ′ , 0 ′′ , ⋯ 分別寫作 1 ‾ , 2 ‾ , ⋯ \overline{1},\overline{2},\cdots 1 , 2 , ⋯ , 這些形為 n ‾ \overline{n} n 的閉項叫做 K N K_N K N 的數字.
K N K_N K N 中所有等詞公理及如下形式的公式都叫做
算術公理 :
( N 1 ) t ′ ≉ 0 ‾ ; ( N 2 ) t 1 ′ ≈ t 2 ′ → t 1 ≈ t 2 ; ( N 3 ) t + 0 ‾ ≈ t ; ( N 4 ) t 1 + t 2 ′ ≈ ( t 1 + t 2 ) ′ ; ( N 5 ) t × 0 ‾ ≈ 0 ‾ ; ( N 6 ) t 1 × t 2 ′ ≈ t 1 × t 2 + t 1 ; ( N 7 ) p ( 0 ‾ ) → ( ∀ x ( p ( x ) → p ( x ′ ) ) → ∀ x p ( x ) ) .
\begin{align*}
&(N1)\quad t'\not\approx \overline{0}; \\
&(N2)\quad t_1'\approx t_2'\to t_1\approx t_2; \\
&(N3)\quad t+\overline{0}\approx t; \\
&(N4)\quad t_1+t_2'\approx (t_1+t_2)'; \\
&(N5)\quad t\times\overline{0}\approx \overline{0}; \\
&(N6)\quad t_1\times t_2'\approx t_1\times t_2+t_1; \\
&(N7)\quad p(\overline{0})\to(\forall x(p(x)\to p(x'))\to\forall x\thinspace p(x)).
\end{align*}
( N 1 ) t ′ ≈ 0 ; ( N 2 ) t 1 ′ ≈ t 2 ′ → t 1 ≈ t 2 ; ( N 3 ) t + 0 ≈ t ; ( N 4 ) t 1 + t 2 ′ ≈ ( t 1 + t 2 ) ′ ; ( N 5 ) t × 0 ≈ 0 ; ( N 6 ) t 1 × t 2 ′ ≈ t 1 × t 2 + t 1 ; ( N 7 ) p ( 0 ) → ( ∀ x ( p ( x ) → p ( x ′ )) → ∀ x p ( x )) .
其中 p ( x ) p(x) p ( x ) 是任意的公式.
算術公理的集記作 N \mathcal{N} N . 帶有算術公理集 N \mathcal{N} N 的 K N K_N K N 叫做 Peano 形式算術 . (等詞公理集 E ⊆ N E\subseteq\mathcal{N} E ⊆ N ; K N K_N K N 的公理除算術公理外還有謂詞演算公理 ( K 1 ) (K1) ( K 1 ) ~( K 5 ) (K5) ( K 5 ) )
若 N ⊢ p \mathcal{N}\vdash p N ⊢ p , 則稱 p p p 為 Peano 形式算術的(形式)定理. 通常的關於自然數的定理可以大量翻譯成形式定理, 但其形式證明一般都很複雜. “建立形式算術的主要目的之一, 是用以探討關於自然數的性質, 我們究竟能精確而機械地抓住些什麼.”
可表示函數與關係
函數
k k k 元函數
f : N k → N f:\mathbb{N}^k\to\mathbb{N} f : N k → N 在
K N K_N K N 中
可表示 , 是指存在含
k + 1 k+1 k + 1 個自由變元的公式
p ( x 1 , ⋯ , x k , y ) p(x_1,\cdots,x_k,y) p ( x 1 , ⋯ , x k , y ) , 它具有如下性質: 對任意
n 1 , ⋯ , n k , m ∈ N n_1,\cdots,n_k,m\in\mathbb{N} n 1 , ⋯ , n k , m ∈ N ,
f ( n 1 , ⋯ , n k ) = m f(n_1,\cdots,n_k)=m f ( n 1 , ⋯ , n k ) = m ⇒ \Rightarrow ⇒ N ⊢ p ( n 1 ‾ , ⋯ , n k ‾ , m ‾ ) \mathcal{N}\vdash p(\overline{n_1},\cdots,\overline{n_k},\overline{m}) N ⊢ p ( n 1 , ⋯ , n k , m ) ;
f ( n 1 , ⋯ , n k ) ≠ m f(n_1,\cdots,n_k)\not=m f ( n 1 , ⋯ , n k ) = m ⇒ \Rightarrow ⇒ N ⊢ ¬ p ( n 1 ‾ , ⋯ , n k ‾ , m ‾ ) \mathcal{N}\vdash\neg p(\overline{n_1},\cdots,\overline{n_k},\overline{m}) N ⊢ ¬ p ( n 1 , ⋯ , n k , m ) ;
N ⊢ p ( n 1 ‾ , ⋯ , n k ‾ , t ) → t ≈ f ( n 1 , ⋯ , n k ) ‾ \mathcal{N}\vdash p(\overline{n_1},\cdots,\overline{n_k},t)\to t\approx\overline{f(n_1,\cdots,n_k)} N ⊢ p ( n 1 , ⋯ , n k , t ) → t ≈ f ( n 1 , ⋯ , n k ) , 其中 t t t 對公式 p p p 中的 y y y 自由.
事實上, 定義中的 (2) 可由 (1) 和 (3) 推出, 所以 (1)+(3) 給出了函數 f f f 用公式 p p p 在 K N K_N K N 中可表示的充要條件.
K N K_N K N 中的公式不一定能用來表示某個數論函數, 且同一公式不能用來表示兩個不同的數論函數. 由於所有數論函數構成的集是不可數的, 而
K N K_N K N 中所有公式構成可數集, 所以並非每個數論函數都能用
K N K_N K N 中公式表示.
定義 k k k 元投影函數 p i k \text{p}^k_i p i k :
p i k ( n 1 , ⋯ , n k ) = n i , ( i = 1 , ⋯ , k ) \text{p}^k_i(n_1,\cdots,n_k)=n_i,\quad (i=1,\cdots,k) p i k ( n 1 , ⋯ , n k ) = n i , ( i = 1 , ⋯ , k )
則函數 + + + , × \times × , p i k \text{p}^k_i p i k 在 K N K_N K N 中是可表示的:
二元和函數 + + + 由公式 x 1 + x 2 ≈ y x_1+x_2\approx y x 1 + x 2 ≈ y 表示;
二元乘積函數 × \times × 由公式 x 1 × x 2 ≈ y x_1\times x_2\approx y x 1 × x 2 ≈ y 表示;
p i k \text{p}^k_i p i k 由公式 x 1 ≈ x 1 ∧ ⋯ ∧ x k ≈ x k ∧ y ≈ x i x_1\approx x_1\wedge\cdots\wedge x_k\approx x_k\wedge y\approx x_i x 1 ≈ x 1 ∧ ⋯ ∧ x k ≈ x k ∧ y ≈ x i 表示.
函數的複合保持可表示性. 設 j j j 元函數 g g g 和 j j j 個 k k k 元函數 h 1 , ⋯ , h j h_1,\cdots,h_j h 1 , ⋯ , h j 是可表示的, 那麼如下定義的 k k k 元函數 f f f 也是可表示的:
f ( n 1 , ⋯ , n k ) = g ( h 1 ( n 1 , ⋯ , n k ) , ⋯ , h j ( n 1 , ⋯ , n k ) ) f(n_1,\cdots,n_k)=g\left(h_1(n_1,\cdots,n_k),\cdots,h_j(n_1,\cdots,n_k)\right) f ( n 1 , ⋯ , n k ) = g ( h 1 ( n 1 , ⋯ , n k ) , ⋯ , h j ( n 1 , ⋯ , n k ) )
證明: 設 g , h 1 , ⋯ , h j g, h_1,\cdots,h_j g , h 1 , ⋯ , h j 分別用公式
q ( x 1 , ⋯ , x j , y ) , r 1 ( x 1 , ⋯ , x k , y ) , ⋯ , r j ( x 1 , ⋯ , x k , y ) q(x_1,\cdots,x_j,y),\thinspace r_1(x_1,\cdots,x_k,y),\thinspace \cdots,\thinspace r_j(x_1,\cdots,x_k,y) q ( x 1 , ⋯ , x j , y ) , r 1 ( x 1 , ⋯ , x k , y ) , ⋯ , r j ( x 1 , ⋯ , x k , y )
表示, 則 f f f 可由如下公式表示:
∃ y 1 ⋯ ∃ y j ( r 1 ( x 1 , ⋯ , x k , y 1 ) ∧ ⋯ ∧ r j ( x 1 , ⋯ , x k , y j ) ∧ q ( y 1 , ⋯ , y j , y ) ) \exists y_1\cdots\exists y_j\thinspace (r_1(x_1,\cdots,x_k,y_1)\wedge\cdots\wedge r_j(x_1,\cdots,x_k,y_j)\wedge q(y_1,\cdots,y_j,y)) ∃ y 1 ⋯ ∃ y j ( r 1 ( x 1 , ⋯ , x k , y 1 ) ∧ ⋯ ∧ r j ( x 1 , ⋯ , x k , y j ) ∧ q ( y 1 , ⋯ , y j , y ))
其中 y 1 , ⋯ , y j y_1,\cdots,y_j y 1 , ⋯ , y j 是不在 q ( x 1 , ⋯ , x j , y ) q(x_1,\cdots,x_j,y) q ( x 1 , ⋯ , x j , y ) , r 1 ( x 1 , ⋯ , x k , y ) r_1(x_1,\cdots,x_k,y) r 1 ( x 1 , ⋯ , x k , y ) , ⋯ \cdots ⋯ , r j ( x 1 , ⋯ , x k , y ) r_j(x_1,\cdots,x_k,y) r j ( x 1 , ⋯ , x k , y ) 中出現的變元. □ \square □
關係
k k k 元關係
R R R 在
K N K_N K N 中
可表示 , 是指存在含
k k k 個自由變元的公式
p ( x 1 , ⋯ , x k ) p(x_1,\cdots,x_k) p ( x 1 , ⋯ , x k ) , 它具有如下性質: 對任意
n 1 , ⋯ , n k ∈ N n_1,\cdots,n_k\in\mathbb{N} n 1 , ⋯ , n k ∈ N ,
( n 1 , ⋯ , n k ) ∈ R (n_1,\cdots,n_k)\in R ( n 1 , ⋯ , n k ) ∈ R ⇒ \Rightarrow ⇒ N ⊢ p ( n 1 ‾ , ⋯ , n k ‾ ) \mathcal{N}\vdash p(\overline{n_1},\cdots,\overline{n_k}) N ⊢ p ( n 1 , ⋯ , n k ) ;
( n 1 , ⋯ , n k ) ∉ R (n_1,\cdots,n_k)\not\in R ( n 1 , ⋯ , n k ) ∈ R ⇒ \Rightarrow ⇒ N ⊢ ¬ p ( n 1 ‾ , ⋯ , n k ‾ ) \mathcal{N}\vdash\neg p(\overline{n_1},\cdots,\overline{n_k}) N ⊢ ¬ p ( n 1 , ⋯ , n k ) .
是否每個 K N K_N K N 的公式 p ( x 1 , ⋯ , x k ) p(x_1,\cdots,x_k) p ( x 1 , ⋯ , x k ) 都一定可以用來表示某個 k k k 元關係?
如果存在公式 p ( x 1 , ⋯ , x k ) p(x_1,\cdots,x_k) p ( x 1 , ⋯ , x k ) 及 n 1 , ⋯ , n k ∈ N n_1,\cdots,n_k\in\mathbb{N} n 1 , ⋯ , n k ∈ N , 使得 N ⊬ p ( n 1 ‾ , ⋯ , n k ‾ ) \mathcal{N}\not\vdash p(\overline{n_1},\cdots,\overline{n_k}) N ⊢ p ( n 1 , ⋯ , n k ) 且 N ⊬ ¬ p ( n 1 ‾ , ⋯ , n k ‾ ) \mathcal{N}\not\vdash\neg p(\overline{n_1},\cdots,\overline{n_k}) N ⊢ ¬ p ( n 1 , ⋯ , n k ) , 則稱閉式 p ( n 1 ‾ , ⋯ , n k ‾ ) p(\overline{n_1},\cdots,\overline{n_k}) p ( n 1 , ⋯ , n k ) 是一個從 N \mathcal{N} N 不可判定的公式, 且說 N \mathcal{N} N 是不完備的. 這時, 公式 p ( x 1 , ⋯ , x k ) p(x_1,\cdots,x_k) p ( x 1 , ⋯ , x k ) 不能用來表示任何一個關係; 反之, 如果 N \mathcal{N} N 是完備的, 那麼任何公式 p ( x 1 , ⋯ , x k ) p(x_1,\cdots,x_k) p ( x 1 , ⋯ , x k ) 都一定表示某個 k k k 元關係.
k k k 元關係
R R R 的特徵函數
C R : N k → { 0 , 1 } C_R:\mathbb{N}^k\to\left\lbrace 0,1\right\rbrace C R : N k → { 0 , 1 } 定義為:
C R ( n 1 , ⋯ , n k ) = { 1 , ( n 1 , ⋯ , n k ) ∈ R 0 , ( n 1 , ⋯ , n k ) ∉ R
C_R(n_1,\cdots,n_k)=\begin{cases}
1,&(n_1,\cdots,n_k)\in R\\
0,&(n_1,\cdots,n_k)\not\in R
\end{cases}
C R ( n 1 , ⋯ , n k ) = { 1 , 0 , ( n 1 , ⋯ , n k ) ∈ R ( n 1 , ⋯ , n k ) ∈ R
若關係 R R R 用公式 p ( x 1 , ⋯ , x k ) p(x_1,\cdots,x_k) p ( x 1 , ⋯ , x k ) 可表示, 則 C R C_R C R 可用如下公式表示:
( p ( x 1 , ⋯ , x k ) ∧ y ≈ 1 ) ∨ ( ¬ p ( x 1 , ⋯ , x k ) ∧ y ≈ 0 ) (p(x_1,\cdots,x_k)\wedge y\approx 1)\vee(\neg p(x_1,\cdots,x_k)\wedge y\approx 0) ( p ( x 1 , ⋯ , x k ) ∧ y ≈ 1 ) ∨ ( ¬ p ( x 1 , ⋯ , x k ) ∧ y ≈ 0 )
若 C R C_R C R 用公式 p ( x 1 , ⋯ , x k , y ) p(x_1,\cdots,x_k,y) p ( x 1 , ⋯ , x k , y ) 可表示, 則 R R R 用如下公式可表示:
p ( x 1 , ⋯ , x k , 1 ‾ ) p(x_1,\cdots,x_k,\overline{1}) p ( x 1 , ⋯ , x k , 1 )
因此, 關係 R R R 可表示當且僅當 R R R 的特徵函數 C R C_R C R 可表示.
例如, 二元關係 ≤ \leq ≤ 用公式 ∃ z ( z + x 1 ≈ x 2 ) \exists z(z+x_1\approx x_2) ∃ z ( z + x 1 ≈ x 2 ) 可表示, 從而它的特徵函數 C ≤ C_{\leq} C ≤ 也是可表示的.
最小數算子
設 k + 1 k+1 k + 1 元函數 g g g 滿足 “根存在條件”: 對任意 n 1 , ⋯ , n k n_1,\cdots,n_k n 1 , ⋯ , n k 都存在自然數 x x x 使 g ( n 1 , ⋯ , n k , x ) = 0 g(n_1,\cdots,n_k,x)=0 g ( n 1 , ⋯ , n k , x ) = 0 . 定義 k k k 元函數 f f f 如下:
f ( n 1 , ⋯ , n k ) = min { x : g ( n 1 , ⋯ , n k , x ) = 0 } f(n_1,\cdots,n_k)=\min\left\lbrace x:g(n_1,\cdots,n_k,x)=0\right\rbrace f ( n 1 , ⋯ , n k ) = min { x : g ( n 1 , ⋯ , n k , x ) = 0 }
即 f ( n 1 , ⋯ , n k ) f(n_1,\cdots,n_k) f ( n 1 , ⋯ , n k ) 是使 g ( n 1 , ⋯ , n k , x ) g(n_1,\cdots,n_k,x) g ( n 1 , ⋯ , n k , x ) 的 x x x 的最小值. 我們把 f f f 說成是由 g g g 使用最小數算子或 μ \mu μ 算子 得來的, 記作
f ( n 1 , ⋯ , n k ) = μ x [ g ( n 1 , ⋯ , n k , x ) = 0 ] f(n_1,\cdots,n_k)=\mu x\left[g(n_1,\cdots,n_k,x)=0\right] f ( n 1 , ⋯ , n k ) = μx [ g ( n 1 , ⋯ , n k , x ) = 0 ]
μ \mu μ 算子保持可表示性. 若
k + 1 k+1 k + 1 元函數
g g g 在
K N K_N K N 中可用
q ( x 1 , ⋯ , x k + 1 , y ) q(x_1,\cdots,x_{k+1},y) q ( x 1 , ⋯ , x k + 1 , y ) 表示, 則對
g g g 使用
μ \mu μ 算子得到的
k k k 元函數
f f f 在
K N K_N K N 中用如下公式表示:
q ( x 1 , ⋯ , x k , y , 0 ‾ ) ∧ ∀ x ( q ( x 1 , ⋯ , x k , x , 0 ‾ ) → y ≤ x ) q(x_1,\cdots,x_k,y,\overline{0})\wedge\forall x (q(x_1,\cdots,x_k,x,\overline{0})\to y\leq x) q ( x 1 , ⋯ , x k , y , 0 ) ∧ ∀ x ( q ( x 1 , ⋯ , x k , x , 0 ) → y ≤ x )
其中 x x x 取不在 q ( x 1 , ⋯ , x k , y , 0 ‾ ) q(x_1,\cdots,x_k,y,\overline{0}) q ( x 1 , ⋯ , x k , y , 0 ) 中出現的變元. 這個公式的含義在直觀上是很明顯的.
遞歸函數
遞歸函數是一類重要的數論函數, 也是遞歸論的研究對象, 直觀來看, 遞歸函數即是可計算函數之概念的精確化 (因此, 遞歸論也叫可計算性理論).
一般遞歸函數
首先定義三種基本函數:
一元零函數 z z z , z ( n ) = 0 z(n)=0 z ( n ) = 0 ;
一元後繼函數 s s s , s ( n ) = n + 1 s(n)=n+1 s ( n ) = n + 1 ;
k k k 元投影函數 p i k \text{p}^k_i p i k , p i k ( n 1 , ⋯ , n k ) = n i \text{p}^k_i(n_1,\cdots,n_k)=n_i p i k ( n 1 , ⋯ , n k ) = n i , i = 1 , ⋯ , k i=1,\cdots,k i = 1 , ⋯ , k .
基本函數以及由它們經過有限次使用下面的規則 I, II, III 得到的函數叫做遞歸函數 (或一般遞歸函數).
規則 I ——複合
一個 j j j 元函數 g g g 和 j j j 個 k k k 元函數 h 1 , ⋯ , h j h_1,\cdots,h_j h 1 , ⋯ , h j 複合為一個 k k k 元函數 f f f
f ( n 1 , ⋯ , n k ) = g ( h 1 ( n 1 , ⋯ , n k ) , ⋯ , h j ( n 1 , ⋯ , n k ) ) f(n_1,\cdots,n_k)=g\left(h_1(n_1,\cdots,n_k),\cdots,h_j(n_1,\cdots,n_k)\right) f ( n 1 , ⋯ , n k ) = g ( h 1 ( n 1 , ⋯ , n k ) , ⋯ , h j ( n 1 , ⋯ , n k ) )
規則 II ——遞歸
由 k k k 元函數 g g g 和 k + 2 k+2 k + 2 元函數 h h h 使用遞歸規則生成 k + 1 k+1 k + 1 元函數 f f f
f ( n 1 , ⋯ , n k , 0 ) = g ( n 1 , ⋯ , n k ) , f ( n 1 , ⋯ , n k , n + 1 ) = h ( n 1 , ⋯ , n k , n , f ( n 1 , ⋯ , n k , n ) )
\begin{align*}
&f(n_1,\cdots,n_k,0) = g(n_1,\cdots,n_k), \\
&f(n_1,\cdots,n_k,n+1) = h(n_1,\cdots,n_k,n,f(n_1,\cdots,n_k,n))
\end{align*}
f ( n 1 , ⋯ , n k , 0 ) = g ( n 1 , ⋯ , n k ) , f ( n 1 , ⋯ , n k , n + 1 ) = h ( n 1 , ⋯ , n k , n , f ( n 1 , ⋯ , n k , n ))
特別地, 當 k = 0 k=0 k = 0 時
f ( 0 ) = g , f ( n + 1 ) = h ( n , f ( n ) )
\begin{align*}
&f(0) = g, \\
&f(n+1) = h(n,f(n))
\end{align*}
f ( 0 ) = g , f ( n + 1 ) = h ( n , f ( n ))
規則 III ——μ \mu μ 算子
若 k + 1 k+1 k + 1 元函數 g g g 滿足根存在性條件, 則由 g g g 使用 μ \mu μ 算子生成 k k k 元函數 f f f
f ( n 1 , ⋯ , n k ) = μ x [ g ( n 1 , ⋯ , n k , x ) = 0 ] f(n_1,\cdots,n_k)=\mu x\left[g(n_1,\cdots,n_k,x)=0\right] f ( n 1 , ⋯ , n k ) = μx [ g ( n 1 , ⋯ , n k , x ) = 0 ]
若去掉規則 III, 只允許使用規則 I, II, 則定義的函數叫做原始遞歸函數 . 原始遞歸函數是有窮主義數學的基礎. 最早由 Skolem 提出用以形式化有窮主義數學的原始遞歸算術 (Primitive Recursive Arithmetic, PRA \text{PRA} PRA ) 就只能表達關於自然數和原始遞歸函數的命題. PRA \text{PRA} PRA 經常被用作證明論的基本形式系統.
若去掉規則 III 中根存在性條件的限制, 則定義的函數叫做部分遞歸函數 (或遞歸偏函數). 部分遞歸函數不一定處處有定義, 所以不一定是全函數.
命題 : 由
k k k 元遞歸函數
f f f 用下式定義的
l l l 元函數
g g g 也是遞歸的:
g ( n 1 , ⋯ , n l ) = f ( n m 1 , ⋯ , n m k ) g(n_1,\cdots,n_l)=f(n_{m_1},\cdots,n_{m_k}) g ( n 1 , ⋯ , n l ) = f ( n m 1 , ⋯ , n m k )
其中
1 ≤ m i ≤ l 1\leq m_i\leq l 1 ≤ m i ≤ l . 這是因為,
g g g 可由如下複合而成:
g ( n 1 , ⋯ , n l ) = f ( p m 1 l ( n 1 , ⋯ , n l ) , ⋯ , p m k l ( n 1 , ⋯ , n l ) ) g(n_1,\cdots,n_l)=f(p^l_{m_1}(n_1,\cdots,n_l),\cdots,p^l_{m_k}(n_1,\cdots,n_l)) g ( n 1 , ⋯ , n l ) = f ( p m 1 l ( n 1 , ⋯ , n l ) , ⋯ , p m k l ( n 1 , ⋯ , n l ))
該命題可由於 "增元" 或 "減元".
下面列舉一些常用的(原始)遞歸函數:
k k k 元常值函數 c m c_m c m , c m ( n 1 , ⋯ , n k ) = m c_m(n_1,\cdots,n_k)=m c m ( n 1 , ⋯ , n k ) = m .
c 0 ( n 1 , ⋯ , n k ) = z ( p 1 k ( n 1 , ⋯ , n k ) ) , c m + 1 ( n 1 , ⋯ , n k ) = s ( c m ( n 1 , ⋯ , n k ) )
\begin{align*}
&c_0(n_1,\cdots,n_k) = z(p^k_1(n_1,\cdots,n_k)), \\
&c_{m+1}(n_1,\cdots,n_k) = s(c_m(n_1,\cdots,n_k))
\end{align*}
c 0 ( n 1 , ⋯ , n k ) = z ( p 1 k ( n 1 , ⋯ , n k )) , c m + 1 ( n 1 , ⋯ , n k ) = s ( c m ( n 1 , ⋯ , n k ))
二元和函數 + + +
n 1 + 0 = p 1 1 ( n 1 ) , n 1 + ( n + 1 ) = ( n 1 + n ) + 1 = s ( p 3 3 ( n 1 , n , n 1 + n ) )
\begin{align*}
&n_1+0 = p^1_1(n_1), \\
&n_1+(n+1) = (n_1+n)+1 = s(p^3_3(n_1,n,n_1+n))
\end{align*}
n 1 + 0 = p 1 1 ( n 1 ) , n 1 + ( n + 1 ) = ( n 1 + n ) + 1 = s ( p 3 3 ( n 1 , n , n 1 + n ))
二元乘積函數 × \times ×
n 1 × 0 = z ( n 1 ) , n 1 × ( n + 1 ) = p 3 3 ( n 1 , n , n 1 × n ) + p 1 3 ( n 1 , n , n 1 × n )
\begin{align*}
&n_1\times 0 = z(n_1), \\
&n_1\times (n+1) = p^3_3(n_1,n,n_1\times n)+p^3_1(n_1,n,n_1\times n)
\end{align*}
n 1 × 0 = z ( n 1 ) , n 1 × ( n + 1 ) = p 3 3 ( n 1 , n , n 1 × n ) + p 1 3 ( n 1 , n , n 1 × n )
前鄰函數 p − p^{-} p − , 若 n = 0 n=0 n = 0 則 p − ( n ) = 0 p^{-}(n)=0 p − ( n ) = 0 , 否則 p − ( n ) = n − 1 p^{-}(n)=n-1 p − ( n ) = n − 1 .
p − ( n ) = 0 , p − ( n + 1 ) = n = p 1 2 ( n , p − ( n ) )
\begin{align*}
&p^{-}(n) = 0, \\
&p^{-}(n+1) = n = p^2_1(n,p^{-}(n))
\end{align*}
p − ( n ) = 0 , p − ( n + 1 ) = n = p 1 2 ( n , p − ( n ))
截差函數 − ˙ \dot{-} − ˙ , 若 n 1 ≥ n 2 n_1\geq n_2 n 1 ≥ n 2 , 則 n 1 − ˙ n 2 = n 1 − n 2 n_1\dot{-}n_2=n_1-n_2 n 1 − ˙ n 2 = n 1 − n 2 , 否則 n 1 − ˙ n 2 = 0 n_1\dot{-}n_2=0 n 1 − ˙ n 2 = 0 .
n 1 − ˙ 0 = n 1 = p 1 1 ( n 1 ) , n 1 − ˙ ( n + 1 ) = p − ( n 1 − ˙ n ) = p − ( p 3 3 ( n 1 , n , n 1 − ˙ n ) )
\begin{align*}
&n_1\dot{-}\thinspace 0 = n_1 = p^1_1(n_1) , \\
&n_1\dot{-}(n+1) = p^{-}(n_1\dot{-}n) = p^{-}(p^3_3(n_1,n,n_1\dot{-}n))
\end{align*}
n 1 − ˙ 0 = n 1 = p 1 1 ( n 1 ) , n 1 − ˙ ( n + 1 ) = p − ( n 1 − ˙ n ) = p − ( p 3 3 ( n 1 , n , n 1 − ˙ n ))
一元函數 sg \text{sg} sg , 若 n = 0 n=0 n = 0 則 sg ( n ) = 0 \text{sg}(n)=0 sg ( n ) = 0 , 否則 sg ( n ) = 1 \text{sg}(n)=1 sg ( n ) = 1 .
sg ( 0 ) = 0 , sg ( n + 1 ) = 1 = c 1 ( n , sg ( n ) )
\begin{align*}
&\text{sg}(0) = 0, \\
&\text{sg}(n+1) = 1 = c_1(n,\text{sg}(n))
\end{align*}
sg ( 0 ) = 0 , sg ( n + 1 ) = 1 = c 1 ( n , sg ( n ))
一元函數 sg ‾ \overline{\text{sg}} sg , sg ‾ ( n ) = 1 − ˙ sg ( n ) \overline{\text{sg}}(n)=1\dot{-}\text{sg}(n) sg ( n ) = 1 − ˙ sg ( n ) .
絕對差 − ¨ \ddot{-} − ¨ , n 1 − ¨ n 2 = ∣ n 1 − n 2 ∣ n_1\ddot{-}n_2=|n_1-n_2| n 1 − ¨ n 2 = ∣ n 1 − n 2 ∣ .
n 1 − ¨ n 2 = ( n 1 − ˙ n 2 ) + ( n 2 − ˙ n 1 ) n_1\ddot{-}n_2=(n_1\dot{-}n_2)+(n_2\dot{-}n_1) n 1 − ¨ n 2 = ( n 1 − ˙ n 2 ) + ( n 2 − ˙ n 1 )
k k k 元最值函數 min \min min , max \max max .
k = 2 , min ( n 1 , n 2 ) = n 1 − ˙ ( n 1 − ˙ n 2 ) , k > 2 , min ( n 1 , ⋯ , n k ) = min ( min ( n 1 , ⋯ , n k − 1 ) , n k )
\begin{align*}
&k=2,\quad\min(n_1,n_2) = n_1\dot{-}(n_1\dot{-}n_2), \\
&k>2,\quad\min(n_1,\cdots,n_k) = \min(\min(n_1,\cdots,n_{k-1}),n_k)
\end{align*}
k = 2 , min ( n 1 , n 2 ) = n 1 − ˙ ( n 1 − ˙ n 2 ) , k > 2 , min ( n 1 , ⋯ , n k ) = min ( min ( n 1 , ⋯ , n k − 1 ) , n k )
指數函數 n 1 n 2 n_1^{n_2} n 1 n 2 , 規定 0 0 = 0 0^0=0 0 0 = 0 .
n 1 0 = sg ( n 1 ) , n 1 n + 1 = n 1 n × n 1
\begin{align*}
&n_1^0 = \text{sg}(n_1), \\
&n_1^{n+1} = n_1^n\times n_1
\end{align*}
n 1 0 = sg ( n 1 ) , n 1 n + 1 = n 1 n × n 1
餘數函數 rem \text{rem} rem , 若 n 1 > 0 n_1>0 n 1 > 0 , rem ( n 1 , n 2 ) \text{rem}(n_1,n_2) rem ( n 1 , n 2 ) 是用 n 1 n_1 n 1 除 n 2 n_2 n 2 所得餘數; 若 n 1 = 0 n_1=0 n 1 = 0 則 rem ( n 1 , n 2 ) = 0 \text{rem}(n_1,n_2)=0 rem ( n 1 , n 2 ) = 0 .
rem ( n 1 , 0 ) = 0 , rem ( n 1 , n + 1 ) = ( rem ( n 1 , n ) + 1 ) sg ( n − ˙ ( rem ( n 1 , n ) + 1 ) )
\begin{align*}
&\text{rem}(n_1,0) = 0, \\
&\text{rem}(n_1,n+1) = (\text{rem}(n_1,n)+1)\thinspace \text{sg}(n\dot{-}(\text{rem}(n_1,n)+1))
\end{align*}
rem ( n 1 , 0 ) = 0 , rem ( n 1 , n + 1 ) = ( rem ( n 1 , n ) + 1 ) sg ( n − ˙ ( rem ( n 1 , n ) + 1 ))
設 f f f 是 k + 1 k+1 k + 1 元遞歸函數, 由 f f f 定義新的 k k k 元函數 g g g 和 k + 1 k+1 k + 1 元函數 h h h :
g ( n 1 , ⋯ , n k ) = ∑ i ≤ n k f ( n 1 , ⋯ , n k , i ) , h ( n 1 , ⋯ , n k + 1 ) = ∑ i ≤ n k + 1 f ( n 1 , ⋯ , n k , i )
\begin{align*}
&g(n_1,\cdots,n_k) = \sum_{i\leq n_k} f(n_1,\cdots,n_k,i), \\
&h(n_1,\cdots,n_{k+1}) = \sum_{i\leq n_{k+1}} f(n_1,\cdots,n_k,i)
\end{align*}
g ( n 1 , ⋯ , n k ) = i ≤ n k ∑ f ( n 1 , ⋯ , n k , i ) , h ( n 1 , ⋯ , n k + 1 ) = i ≤ n k + 1 ∑ f ( n 1 , ⋯ , n k , i )
則 g g g 和 h h h 都是遞歸的, 因為
g ( n 1 , ⋯ , n k ) = h ( n 1 , ⋯ , n k , n k ) , h ( n 1 , ⋯ , n k , 0 ) = f ( n 1 , ⋯ , n k , 0 ) , h ( n 1 , ⋯ , n k , n + 1 ) = h ( n 1 , ⋯ , n k , n ) + f ( n 1 , ⋯ , n k , n + 1 )
\begin{align*}
&g(n_1,\cdots,n_k) = h(n_1,\cdots,n_k,n_k), \\
&h(n_1,\cdots,n_k,0) = f(n_1,\cdots,n_k,0), \\
&h(n_1,\cdots,n_k,n+1) = h(n_1,\cdots,n_k,n) + f(n_1,\cdots,n_k,n+1)
\end{align*}
g ( n 1 , ⋯ , n k ) = h ( n 1 , ⋯ , n k , n k ) , h ( n 1 , ⋯ , n k , 0 ) = f ( n 1 , ⋯ , n k , 0 ) , h ( n 1 , ⋯ , n k , n + 1 ) = h ( n 1 , ⋯ , n k , n ) + f ( n 1 , ⋯ , n k , n + 1 )
設 f f f 是 k + 1 k+1 k + 1 元遞歸函數, 定義新的 k k k 元函數 g g g 和 k + 1 k+1 k + 1 元函數 h h h :
g ( n 1 , ⋯ , n k ) = ∑ i < n k f ( n 1 , ⋯ , n k , i ) , h ( n 1 , ⋯ , n k + 1 ) = ∑ i < n k + 1 f ( n 1 , ⋯ , n k , i )
\begin{align*}
&g(n_1,\cdots,n_k) = \sum_{i < n_k} f(n_1,\cdots,n_k,i), \\
&h(n_1,\cdots,n_{k+1}) = \sum_{i < n_{k+1}} f(n_1,\cdots,n_k,i)
\end{align*}
g ( n 1 , ⋯ , n k ) = i < n k ∑ f ( n 1 , ⋯ , n k , i ) , h ( n 1 , ⋯ , n k + 1 ) = i < n k + 1 ∑ f ( n 1 , ⋯ , n k , i )
(n k = 0 n_k=0 n k = 0 時, 規定 g = 0 g=0 g = 0 ; n k + 1 = 0 n_{k+1}=0 n k + 1 = 0 時, 規定 h = 0 h=0 h = 0 . )
設 f f f 是 k + 1 k+1 k + 1 元遞歸函數, 定義新的 k k k 元函數 g g g 和 k + 1 k+1 k + 1 元函數 h h h :
g ( n 1 , ⋯ , n k ) = ∏ i ≤ n k f ( n 1 , ⋯ , n k , i ) , h ( n 1 , ⋯ , n k + 1 ) = ∏ i ≤ n k + 1 f ( n 1 , ⋯ , n k , i )
\begin{align*}
&g(n_1,\cdots,n_k) = \prod_{i\leq n_k} f(n_1,\cdots,n_k,i), \\
&h(n_1,\cdots,n_{k+1}) = \prod_{i\leq n_{k+1}} f(n_1,\cdots,n_k,i)
\end{align*}
g ( n 1 , ⋯ , n k ) = i ≤ n k ∏ f ( n 1 , ⋯ , n k , i ) , h ( n 1 , ⋯ , n k + 1 ) = i ≤ n k + 1 ∏ f ( n 1 , ⋯ , n k , i )
(n k = 0 n_k=0 n k = 0 時, 規定 g = 1 g=1 g = 1 ; n k + 1 = 0 n_{k+1}=0 n k + 1 = 0 時, 規定 h = 1 h=1 h = 1 . )
可計算的非原始遞歸函數
我們可以列舉原始遞歸函數的生成序列, 從而系統地枚舉原始遞歸函數. 令 g 0 , g 1 , ⋯ g_0, g_1, \cdots g 0 , g 1 , ⋯ 是這樣枚舉出的原始遞歸函數序列, 定義函數 F : N → N F:\mathbb{N}\to\mathbb{N} F : N → N 為 F ( n ) = g n ( n ) + 1 F(n)=g_n(n)+1 F ( n ) = g n ( n ) + 1 , 則 F F F 顯然不同於任何一個已列出的原始遞歸函數, 所以它不是原始遞歸的. 但直觀來看, 這個函數明顯是可計算的.
一個更具體的例子是 Ackermann 函數 A ( n , m ) A(n,m) A ( n , m ) , 定義為:
A ( 0 , m ) = m + 1 ; A ( n , 0 ) = 1 , except A ( 1 , 0 ) = 2 , A ( 2 , 0 ) = 0 ; A ( n + 1 , m + 1 ) = A ( n , A ( n + 1 , m ) )
\begin{align*}
&A(0,m) = m+1; \
&A(n,0) = 1,\quad\text{except}\enspace A(1,0)=2,\thinspace A(2,0)=0; \
&A(n+1,m+1) = A(n,A(n+1,m))
\end{align*}
A ( 0 , m ) = m + 1 ; A ( n , 0 ) = 1 , except A ( 1 , 0 ) = 2 , A ( 2 , 0 ) = 0 ; A ( n + 1 , m + 1 ) = A ( n , A ( n + 1 , m ))
前兩行給定了初值, 而第三行使用了一種良基的嵌套遞歸, 因而這個定義是合法的. 稍加計算可知, 該函數的第0層定義為 A ( 0 , m ) = m + 1 A(0,m) = m+1 A ( 0 , m ) = m + 1 , 第1層為 A ( 1 , m ) = m + 2 A(1,m)=m+2 A ( 1 , m ) = m + 2 , 第2層為 A ( 2 , m ) = 2 m A(2,m)=2m A ( 2 , m ) = 2 m , 第3層為 A ( 3 , m ) = 2 m A(3,m)=2^m A ( 3 , m ) = 2 m , 第4層從 A ( 4 , 0 ) = 1 A(4,0)=1 A ( 4 , 0 ) = 1 開始, 每一步取冪 A ( 4 , m + 1 ) = 2 A ( 4 , m ) A(4,m+1)=2^{A(4,m)} A ( 4 , m + 1 ) = 2 A ( 4 , m ) , 得到 m m m 層冪塔, 用 Knuth 箭頭來表示即為 2 ↑ ↑ m 2\uparrow\uparrow m 2 ↑↑ m . 由此可直觀地看出該函數隨層數增長速度之快. 可以證明, Ackermann 函數的每一層級都是一個原始遞歸函數, 且每一個原始遞歸函數都以 Ackermann 函數的某一層級為上界, 因此對角 Ackermann 函數 A ( n ) = A ( n , n ) A(n)=A(n,n) A ( n ) = A ( n , n ) 不是原始遞歸的.
遞歸關係和遞歸集
若 k k k 元關係 R R R 的特徵函數 C R C_R C R 是遞歸函數, 則關係 R R R 叫做遞歸關係. 一元遞歸關係叫做 N \mathbb{N} N 的遞歸子集, 簡稱遞歸集.
例如, 二元關係 ≤ \leq ≤ , = = = , < < < 都是遞歸關係, 因為
C ≤ ( n 1 , n 2 ) = sg ‾ ( n 1 − ˙ n 2 ) , C = ( n 1 , n 2 ) = sg ‾ ( n 1 − ¨ n 2 ) , C < ( n 1 , n 2 ) = sg ( n 1 − ˙ n 2 ) .
\begin{align*}
&C_{\leq}(n_1,n_2) = \overline{\text{sg}}(n_1\dot{-}n_2) , \\
&C_{=}(n_1,n_2) = \overline{\text{sg}}(n_1\ddot{-}n_2) , \\
&C_{<}(n_1,n_2) = \text{sg}(n_1\dot{-}n_2) .
\end{align*}
C ≤ ( n 1 , n 2 ) = sg ( n 1 − ˙ n 2 ) , C = ( n 1 , n 2 ) = sg ( n 1 − ¨ n 2 ) , C < ( n 1 , n 2 ) = sg ( n 1 − ˙ n 2 ) .
若 R R R 是 k k k 元遞歸關係, 則 R ‾ \overline{R} R 也是 k k k 元遞歸關係, 其中 R ‾ = N k − R \overline{R}=\mathbb{N}^k-R R = N k − R .
若 R 1 R_1 R 1 , R 2 R_2 R 2 都是 k k k 元遞歸關係, 則 R 1 ∪ R 2 R_1\cup R_2 R 1 ∪ R 2 和 R 1 ∩ R 2 R_1\cap R_2 R 1 ∩ R 2 也是 k k k 元遞歸關係.
C R ‾ ( n 1 , ⋯ , n k ) = 1 − C R ( n 1 , ⋯ , n k ) C R 1 ∪ R 2 ( n 1 , ⋯ , n k ) = sg ( C R 1 ( n 1 , ⋯ , n k ) + C R 2 ( n 1 , ⋯ , n k ) ) C R 1 ∩ R 2 ( n 1 , ⋯ , n k ) = C R 1 ( n 1 , ⋯ , n k ) × C R 2 ( n 1 , ⋯ , n k )
\begin{align*}
&C_{\overline{R}}(n_1,\cdots,n_k) = 1-C_R(n_1,\cdots,n_k) \\
&C_{R_1\cup R_2}(n_1,\cdots,n_k) = \text{sg}(C_{R_1}(n_1,\cdots,n_k)+C_{R_2}(n_1,\cdots,n_k))\\
&C_{R_1\cap R_2}(n_1,\cdots,n_k) = C_{R_1}(n_1,\cdots,n_k)\times C_{R_2}(n_1,\cdots,n_k)
\end{align*}
C R ( n 1 , ⋯ , n k ) = 1 − C R ( n 1 , ⋯ , n k ) C R 1 ∪ R 2 ( n 1 , ⋯ , n k ) = sg ( C R 1 ( n 1 , ⋯ , n k ) + C R 2 ( n 1 , ⋯ , n k )) C R 1 ∩ R 2 ( n 1 , ⋯ , n k ) = C R 1 ( n 1 , ⋯ , n k ) × C R 2 ( n 1 , ⋯ , n k )
設 R R R 是 k + 1 k+1 k + 1 元遞歸關係, 作一 k k k 元關係:
Q = { ( n 1 , ⋯ , n k ) : ∃ x < n k s.t. ( n 1 , ⋯ , n k , x ) ∈ R } Q=\left\lbrace (n_1,\cdots,n_k):\exists x<n_k\enspace \text{s.t.}\enspace (n_1,\cdots,n_k,x)\in R\right\rbrace Q = { ( n 1 , ⋯ , n k ) : ∃ x < n k s.t. ( n 1 , ⋯ , n k , x ) ∈ R }
則 Q Q Q 也是遞歸關係, 因為
C Q ( n 1 , ⋯ , n k ) = sg ( ∑ x < n k C R ( n 1 , ⋯ , n k , x ) ) C_Q(n_1,\cdots,n_k)=\text{sg}\left(\sum_{x<n_k}C_R(n_1,\cdots,n_k,x)\right) C Q ( n 1 , ⋯ , n k ) = sg ( x < n k ∑ C R ( n 1 , ⋯ , n k , x ) )
N \mathbb{N} N ,
∅ \varnothing ∅ , 獨元集
{ a } \left\lbrace a\right\rbrace { a } , 有限集
{ a 1 , ⋯ , a n } \left\lbrace a_1,\cdots,a_n\right\rbrace { a 1 , ⋯ , a n } 都是遞歸集. 因為
C N = 1 C_{\mathbb{N}}=1 C N = 1 ,
C ∅ = 0 C_{\varnothing}=0 C ∅ = 0 ,
C { a } = C = ( n , a ) C_{\left\lbrace a\right\rbrace}=C_{=}(n,a) C { a } = C = ( n , a ) ,
{ a 1 , ⋯ , a n } = ⋃ i = 1 n { a i } \left\lbrace a_1,\cdots,a_n\right\rbrace=\bigcup_{i=1}^n \left\lbrace a_i\right\rbrace { a 1 , ⋯ , a n } = ⋃ i = 1 n { a i } .
定義二元關係 Divi \text{Divi} Divi , ( n 1 , n 2 ) ∈ Divi (n_1,n_2)\in \text{Divi} ( n 1 , n 2 ) ∈ Divi 當且僅當 n 1 = 0 n_1=0 n 1 = 0 或 n 1 n_1 n 1 整除 n 2 n_2 n 2 . 則 Divi \text{Divi} Divi 是遞歸關係, 因為 C Divi ( n 1 , n 2 ) = sg ‾ ( rem ( n 1 , n 2 ) ) C_{\text{Divi}}(n_1,n_2)=\overline{\text{sg}}(\text{rem}(n_1,n_2)) C Divi ( n 1 , n 2 ) = sg ( rem ( n 1 , n 2 )) .
進而, 全體素數的集 Prm \text{Prm} Prm 是遞歸集. 我們用檢查因子個數的方式構造其特徵函數的遞歸形式, 若 n n n 的因子數大於 2 2 2 , 則 n n n 不是素數, 所以有:
C Prm ( n ) = ( 4 − ˙ ∑ i ≤ n C Divi ( i , n ) ) × sg ( n − ˙ 1 ) C_{\text{Prm}}(n)=\left(4\dot{-}\sum_{i\leq n}C_{\text{Divi}}(i,n)\right)\times\text{sg}(n\dot{-}1) C Prm ( n ) = ( 4 − ˙ i ≤ n ∑ C Divi ( i , n ) ) × sg ( n − ˙ 1 )
設 p ( n ) p(n) p ( n ) 定義為第 n n n 個素數 (p ( 0 ) = 2 p(0)=2 p ( 0 ) = 2 , p ( 1 ) = 3 p(1)=3 p ( 1 ) = 3 , ⋯ \cdots ⋯ ), 則 p p p 是一元遞歸函數, 因為
p ( 0 ) = 2 , p ( n + 1 ) = μ x [ C < ( p ( n ) , x ) × C Prm ( x ) = 1 ]
\begin{align*}
&p(0) = 2, \\
&p(n+1) = \mu x\left[C_{<}(p(n),x)\times C_{\text{Prm}}(x)=1\right]
\end{align*}
p ( 0 ) = 2 , p ( n + 1 ) = μx [ C < ( p ( n ) , x ) × C Prm ( x ) = 1 ]
可表示性
本節證明的是, 遞歸函數在 K N K_N K N 中皆可表示. 這一結論在 Gödel 不完備性定理的證明中起重要作用.
先引入三個記號: REP \text{REP} REP , REC \text{REC} REC , REC ∗ \text{REC}^{*} REC ∗ .
REP \text{REP} REP : 在 K N K_N K N 中可表示的函數全體構成的集;
REC \text{REC} REC : 遞歸函數全體構成的集;
REC ∗ \text{REC}^{*} REC ∗ : + + + , × \times × , p i k \text{p}^k_i p i k , C ≤ C_{\leq} C ≤ 四種函數及它們經有限次使用複合(規則 I)和 μ \mu μ 算子(規則 III)得到的函數的全體所構成的集合.
綜合上文的一些結論, 顯然有 REC ∗ ⊆ REC \text{REC}^{*}\subseteq\text{REC} REC ∗ ⊆ REC , REC ∗ ⊆ REP \text{REC}^{*}\subseteq\text{REP} REC ∗ ⊆ REP . 則只需要證明 REC ⊆ REC ∗ \text{REC}\subseteq\text{REC}^{*} REC ⊆ REC ∗ 即得到遞歸函數的可表示性.
首先, 函數 z z z , s s s , sg \text{sg} sg , sg ‾ \overline{\text{sg}} sg , C = C_{=} C = , − ˙ \dot{-} − ˙ , rem \text{rem} rem 都屬於 REC ∗ \text{REC}^{*} REC ∗ . 因為:
s ( n ) = n + C ≤ ( n , n ) = p 1 1 ( n ) + C ≤ ( p 1 1 ( n ) , p 1 1 ( n ) ) s(n)=n+C_{\leq}(n,n)=p^1_1(n)+C_{\leq}(p^1_1(n),p^1_1(n)) s ( n ) = n + C ≤ ( n , n ) = p 1 1 ( n ) + C ≤ ( p 1 1 ( n ) , p 1 1 ( n )) ;
z ( n ) = C ≤ ( n + 1 , n ) = C ≤ ( s ( n ) , p 1 1 ( n ) ) z(n)=C_{\leq}(n+1,n)=C_{\leq}(s(n),p^1_1(n)) z ( n ) = C ≤ ( n + 1 , n ) = C ≤ ( s ( n ) , p 1 1 ( n )) ;
sg ( n ) = C ≤ ( 1 , n ) = C ≤ ( s ( z ( n ) ) , p 1 1 ( n ) ) \text{sg}(n)=C_{\leq}(1,n)=C_{\leq}(s(z(n)),p^1_1(n)) sg ( n ) = C ≤ ( 1 , n ) = C ≤ ( s ( z ( n )) , p 1 1 ( n )) ;
sg ‾ ( n ) = C ≤ ( p 1 1 ( n ) , s ( z ( n ) ) ) \overline{\text{sg}}(n)=C_{\leq}(p^1_1(n),s(z(n))) sg ( n ) = C ≤ ( p 1 1 ( n ) , s ( z ( n ))) ;
C = ( n 1 , n 2 ) = C ≤ ( n 1 , n 2 ) × C ≤ ( p 2 2 ( n 1 , n 2 ) , p 1 2 ( n 1 , n 2 ) ) C_{=}(n_1,n_2)=C_{\leq}(n_1,n_2)\times C_{\leq}(p^2_2(n_1,n_2),p^2_1(n_1,n_2)) C = ( n 1 , n 2 ) = C ≤ ( n 1 , n 2 ) × C ≤ ( p 2 2 ( n 1 , n 2 ) , p 1 2 ( n 1 , n 2 )) ;
n 1 − ˙ n 2 = μ x [ sg ‾ ( C ≤ ( n 1 , n 2 + x ) ) = 0 ] n_1\dot{-}n_2=\mu x\left[\overline{\text{sg}}(C_{\leq}(n_1,n_2+x))=0\right] n 1 − ˙ n 2 = μx [ sg ( C ≤ ( n 1 , n 2 + x )) = 0 ] ;
rem ( n 1 , n 2 ) = sg ( n 1 ) × ( n 2 − ˙ ( n 1 × ( μ x [ sg ( n 1 ) × C ≤ ( n 1 × x , n 2 ) = 0 ] − ˙ 1 ) ) ) \text{rem}(n_1,n_2)=\text{sg}(n_1)\times(n_2\dot{-}(n_1\times(\mu x\left[\text{sg}(n_1)\times C_{\leq}(n_1\times x,n_2)=0\right]\dot{-}1))) rem ( n 1 , n 2 ) = sg ( n 1 ) × ( n 2 − ˙ ( n 1 × ( μx [ sg ( n 1 ) × C ≤ ( n 1 × x , n 2 ) = 0 ] − ˙ 1 ))) .
上面的式子有的還可以進一步展開, 但是沒有必要.
接下來只要證明 REC ∗ \text{REC}^{*} REC ∗ 對規則 II 封閉, 即由 REC ∗ \text{REC}^{*} REC ∗ 中兩個函數 g g g , h h h 使用規則 II 得到的函數仍在 REC ∗ \text{REC}^{*} REC ∗ 中. 證明的關鍵是用一個遞歸函數對計算所需信息進行編碼, 即把數目不定的過程值壓縮成兩個值, 隨後再解碼, 從而可以繞過規則 II 的使用, 直接定義這個函數. 問題是, 我們一般用於編碼的指數函數和素因數分解, 其定義本身就用到了規則 II. 為避免循環, Gödel 巧妙地利用了中國剩餘定理. (注意, 上面已經證明了 rem \text{rem} rem 屬於 REC ∗ \text{REC}^{*} REC ∗ )
引理 : 由中國剩餘定理可知, 對給定的
a 1 , ⋯ , a k ∈ N a_1,\cdots,a_k\in\mathbb{N} a 1 , ⋯ , a k ∈ N , 一定存在
n , m ∈ N n,m\in\mathbb{N} n , m ∈ N , 且
n ≤ m n\leq m n ≤ m , 滿足
rem ( 1 + i n , m ) = a i \text{rem}(1+in,m)=a_i rem ( 1 + in , m ) = a i , 其中
i = 1 , ⋯ , k i=1,\cdots,k i = 1 , ⋯ , k . (令
b = max { a 1 , ⋯ , a k , k } b=\max\lbrace a_1,\cdots,a_k,k\rbrace b = max { a 1 , ⋯ , a k , k } , 並取
n = b ! n=b! n = b ! , 則
1 + n , ⋯ , 1 + k n 1+n,\cdots,1+kn 1 + n , ⋯ , 1 + k n 兩兩互素)
設
k + 1 k+1 k + 1 元函數
f f f 滿足
f ( n 1 , ⋯ , n k , 0 ) = g ( n 1 , ⋯ , n k ) , f ( n 1 , ⋯ , n k , n + 1 ) = h ( n 1 , ⋯ , n k , n , f ( n 1 , ⋯ , n k , n ) )
\begin{align*}
&f(n_1,\cdots,n_k,0) = g(n_1,\cdots,n_k), \\
&f(n_1,\cdots,n_k,n+1) = h(n_1,\cdots,n_k,n,f(n_1,\cdots,n_k,n))
\end{align*}
f ( n 1 , ⋯ , n k , 0 ) = g ( n 1 , ⋯ , n k ) , f ( n 1 , ⋯ , n k , n + 1 ) = h ( n 1 , ⋯ , n k , n , f ( n 1 , ⋯ , n k , n ))
其中
g , h ∈ REC ∗ g,h\in \text{REC}^{*} g , h ∈ REC ∗ . 下面我們把
n 1 , ⋯ , n k n_1,\cdots,n_k n 1 , ⋯ , n k 簡記為
α \alpha α .
分別作
k + 2 k+2 k + 2 元函數
F 1 F_1 F 1 ,
k + 3 k+3 k + 3 元函數
F 2 F_2 F 2 和
k + 3 k+3 k + 3 元函數
F 3 F_3 F 3 如下:
F 1 ( α , x , y ) = C = ( rem ( 1 + y , x ) , g ( α ) ) , F 2 ( α , x , y , i ) = C = ( rem ( 1 + ( i + 2 ) y , x ) , h ( α , i , rem ( 1 + ( i + 1 ) y , x ) ) ) , F 3 ( α , n , x , y ) = F 1 ( α , x , y ) × C ≤ ( n , μ i [ F 2 ( α , x , y , i ) × C ≤ ( i , n ) = 0 ] ) .
\begin{align*}
&F_1(\alpha,x,y) = C_{=}(\text{rem}(1+y,x),g(\alpha)), \\
&F_2(\alpha,x,y,i) = C_{=}(\text{rem}(1+(i+2)y,x),h(\alpha,i,\text{rem}(1+(i+1)y,x))), \\
&F_3(\alpha,n,x,y) = F_1(\alpha,x,y)\times C_{\leq}(n,\mu i\left[F_2(\alpha,x,y,i)\times C_{\leq}(i,n)=0\right]).
\end{align*}
F 1 ( α , x , y ) = C = ( rem ( 1 + y , x ) , g ( α )) , F 2 ( α , x , y , i ) = C = ( rem ( 1 + ( i + 2 ) y , x ) , h ( α , i , rem ( 1 + ( i + 1 ) y , x ))) , F 3 ( α , n , x , y ) = F 1 ( α , x , y ) × C ≤ ( n , μ i [ F 2 ( α , x , y , i ) × C ≤ ( i , n ) = 0 ] ) .
F 3 F_3 F 3 的定義使用了
μ \mu μ 算子, 方括號內乘上因子
C ≤ ( i , n ) C_{\leq}(i,n) C ≤ ( i , n ) 是為了確保根存在條件, 從而使
F 3 F_3 F 3 是一個全函數. 容易驗證
F 3 ( α , n , x , y ) = 1 ⇔ rem ( 1 + ( i + 1 ) y , x ) = f ( α , i ) , i = 0 , ⋯ , n F_3(\alpha,n,x,y)=1\enspace\Leftrightarrow\enspace\text{rem}(1+(i+1)y,x)=f(\alpha,i),\enspace i=0,\cdots,n F 3 ( α , n , x , y ) = 1 ⇔ rem ( 1 + ( i + 1 ) y , x ) = f ( α , i ) , i = 0 , ⋯ , n
用
F 3 F_3 F 3 作一個
k + 2 k+2 k + 2 元函數
F 4 F_4 F 4 :
F 4 ( α , n , x ) = C ≤ ( μ y [ sg ( F 3 ( a , n , x , y ) + C ≤ ( x + 1 , y ) ) = 1 ] , x ) F_4(\alpha,n,x)=C_{\leq}(\mu y\left[\text{sg}(F_3(a,n,x,y)+C_{\leq}(x+1,y))=1\right],x) F 4 ( α , n , x ) = C ≤ ( μ y [ sg ( F 3 ( a , n , x , y ) + C ≤ ( x + 1 , y )) = 1 ] , x )
同樣, 方括號內加上
C ≤ ( x + 1 , y ) ) C_{\leq}(x+1,y)) C ≤ ( x + 1 , y )) 是為了確保根存在條件. 容易驗證
F 4 ( α , n , x ) = 1 ⇔ ∃ y ≤ x s.t. F 3 ( α , n , x , y ) = 1 F_4(\alpha,n,x)=1\enspace\Leftrightarrow\enspace\exists y\leq x\enspace\text{s.t.}\enspace F_3(\alpha,n,x,y)=1 F 4 ( α , n , x ) = 1 ⇔ ∃ y ≤ x s.t. F 3 ( α , n , x , y ) = 1
再用
F 4 F_4 F 4 作一個
k + 1 k+1 k + 1 元函數
F 5 F_5 F 5 :
F 5 ( α , n ) = μ x [ F 4 ( α , n , x ) = 1 ] F_5(\alpha,n)=\mu x\left[F_4(\alpha,n,x)=1\right] F 5 ( α , n ) = μx [ F 4 ( α , n , x ) = 1 ]
給定
α \alpha α 和
n n n , 令引理中的
a 1 , ⋯ , a k a_1,\cdots,a_k a 1 , ⋯ , a k 為
f ( a , 0 ) , ⋯ , f ( a , n ) f(a,0),\cdots,f(a,n) f ( a , 0 ) , ⋯ , f ( a , n ) 這
n + 1 n+1 n + 1 個自然數, 則由引理知, 一定存在自然數
x x x 和
y ≤ x y\leq x y ≤ x , 滿足
rem ( 1 + ( i + 1 ) y , x ) = f ( α , i ) \text{rem}(1+(i+1)y,x)=f(\alpha,i) rem ( 1 + ( i + 1 ) y , x ) = f ( α , i ) ,
i = 0 , ⋯ , n i=0,\cdots,n i = 0 , ⋯ , n . 因此, 給定
α \alpha α 和
n n n , 一定存在
x x x 使得
F 4 ( α , n , x ) = 1 F_4(\alpha,n,x)=1 F 4 ( α , n , x ) = 1 , 故
F 5 F_5 F 5 是定義好的全函數, 且
F 5 ∈ REC ∗ F_5\in\text{REC}^{*} F 5 ∈ REC ∗ .
據
F 5 F_5 F 5 的定義式向上回推, 可知存在
y ≤ F 5 ( α , n ) y\leq F_5(\alpha,n) y ≤ F 5 ( α , n ) 使
F 3 ( α , n , F 5 ( α , n ) , y ) = 1 F_3(\alpha,n,F_5(\alpha,n),y)=1 F 3 ( α , n , F 5 ( α , n ) , y ) = 1 . 因此可以作出
k + 1 k+1 k + 1 元全函數
F 6 ∈ REC ∗ F_6\in\text{REC}^{*} F 6 ∈ REC ∗ :
F 6 ( α , n ) = μ y [ F 3 ( α , n , F 5 ( α , n ) , y ) = 1 ] F_6(\alpha,n)=\mu y\left[F_3(\alpha,n,F_5(\alpha,n),y)=1\right] F 6 ( α , n ) = μ y [ F 3 ( α , n , F 5 ( α , n ) , y ) = 1 ]
進而有
rem ( 1 + ( i + 1 ) F 6 ( α , n ) , F 5 ( α , n ) ) = f ( α , i ) , i = 0 , ⋯ , n \text{rem}(1+(i+1)F_6(\alpha,n),F_5(\alpha,n))=f(\alpha,i),\enspace i=0,\cdots,n rem ( 1 + ( i + 1 ) F 6 ( α , n ) , F 5 ( α , n )) = f ( α , i ) , i = 0 , ⋯ , n
特別地取
i = n i=n i = n , 則有
f ( α , n ) = rem ( 1 + ( n + 1 ) F 6 ( α , n ) , F 5 ( α , n ) ) f(\alpha,n)=\text{rem}(1+(n+1)F_6(\alpha,n),F_5(\alpha,n)) f ( α , n ) = rem ( 1 + ( n + 1 ) F 6 ( α , n ) , F 5 ( α , n ))
這表明
f ∈ REC ∗ f\in\text{REC}^{*} f ∈ REC ∗ .
□ \square □
該證明的核心是壓縮變量個數, 雖然本質上是構造性的, 但從計算的角度看, 實在是繞了一個大圈子, 實際計算中當然不會這麼做. 證明過程中出現形式極為複雜的定義式, 其實是表述對某些變量相等或大小關係, 以及邏輯依賴性的條件約束. 這一部分的構造性似乎更接近於編程思維.
這樣我們就證明了 REC ⊆ REC ∗ \text{REC}\subseteq\text{REC}^{*} REC ⊆ REC ∗ , 從而任意遞歸函數都是可表示函數. 一個明顯的推論是, 任意遞歸關係在 K N K_N K N 中可表示.
對形式算術的遞歸分析
Gödel 配數
對一種人工的形式語言, 我們一般要求它具有唯一讀法, 即從字母表中任取字母構成有限符號串, 我們要有辦法判斷它是項, 是公式, 還是既非項亦非公式, 如果是項或公式, 則要進一步明確它在哪一層次, 這些應當是唯一確定的. 可以證明, K N K_N K N 具有唯一讀法, 具體證明略過.
有了唯一讀法, 我們就可以對 K N K_N K N 這種形式語言(有限符號串)進行編碼(配數), 使 K N K_N K N 算術化, 以便之後讓 K N K_N K N 從內部 “談論自身”. 配數的方法有很多種, 下面是其中一種.
首先, 給每個字母 u u u 指定一個 Gödel 數 g ( u ) \text{g}(u) g ( u ) 如下:
u ′ + × ¬ → ∀ ≈ 0 ‾ x i g ( u ) 1 3 5 7 9 11 13 15 15 + 2 i
\begin{array}{c|cc} u & ' & + & \times & \neg & \to & \forall &\approx & \overline{0} & x_i \\
\hline \text{g}(u) & 1 & 3 & 5 & 7& 9 & 11 & 13 & 15 & 15+2i \\
\end{array}
u g ( u ) ′ 1 + 3 × 5 ¬ 7 → 9 ∀ 11 ≈ 13 0 15 x i 15 + 2 i
字母串 u 0 u 1 ⋯ u k u_0 u_1\cdots u_k u 0 u 1 ⋯ u k 的 Gödel 數規定為:
g ( u 0 u 1 ⋯ u k ) = 2 g ( u 0 ) 3 g ( u 1 ) ⋯ p k g ( u k ) \text{g}(u_0 u_1\cdots u_k)=2^{\text{g}(u_0)}\thinspace 3^{\text{g}(u_1)}\cdots\thinspace p_k^{\text{g}(u_k)} g ( u 0 u 1 ⋯ u k ) = 2 g ( u 0 ) 3 g ( u 1 ) ⋯ p k g ( u k )
其中 p k p_k p k 是第 k k k 個素數. 字母串的 Gödel 數與字母的 Gödel 數不會相同, 前者是偶數, 後者是奇數; 由自然數的唯一分解性, 不同字母串的 Gödel 數也不會相同.
進一步, 設 s 0 , ⋯ , s n s_0,\cdots,s_n s 0 , ⋯ , s n 是字母串的一個有限序列, 則該序列的 Gödel 數定義為:
g ( s 0 , ⋯ , s n ) = 2 g ( s 0 ) 3 g ( s 1 ) ⋯ p n g ( s n ) \text{g}(s_0,\cdots,s_n)=2^{\text{g}(s_0)}\thinspace 3^{\text{g}(s_1)}\cdots\thinspace p_n^{\text{g}(s_n)} g ( s 0 , ⋯ , s n ) = 2 g ( s 0 ) 3 g ( s 1 ) ⋯ p n g ( s n )
容易驗證, 這種擴張保持單射性.
重要的遞歸函數
上文已表明, 二元關係 Divi \text{Divi} Divi 和一元關係 Prm \text{Prm} Prm 都是遞歸關係, 函數 p p p 是遞歸函數. 本節再引入一些有用的遞歸函數, 為下節對 K N K_N K N 遞歸性質的研究做準備.
當 n 1 > 1 n_1>1 n 1 > 1 時, 設 n 1 = 2 e 0 3 e 1 ⋯ p k e k n_1=2^{e_0}\thinspace 3^{e_1}\cdots\thinspace p_k^{e_k} n 1 = 2 e 0 3 e 1 ⋯ p k e k , 則如下定義的函數是遞歸的:
( n 1 ) n 2 = { e n 2 , n 1 > 1 0 , n 1 = 0 or n 1 = 1
(n_1)_{n_2}=\begin{cases}
e_{n_2}, &n_1>1 \\
0, & n_1=0\enspace\text{or}\enspace n_1=1
\end{cases}
( n 1 ) n 2 = { e n 2 , 0 , n 1 > 1 n 1 = 0 or n 1 = 1
因為
( n 1 ) n 2 = μ x [ sg ( n 1 ) × sg ‾ ( rem ( p n 2 x + 1 , n 1 ) ) = 0 ] (n_1)_{n_2}=\mu x\left[\text{sg}(n_1)\times\overline{\text{sg}}(\text{rem}(p_{n_2}^{x+1},n_1))=0\right] ( n 1 ) n 2 = μx [ sg ( n 1 ) × sg ( rem ( p n 2 x + 1 , n 1 )) = 0 ]
定義一元函數 lh \text{lh} lh : 若 n = 0 n=0 n = 0 或 1 1 1 , 則 lh ( n ) = 0 \text{lh}(n)=0 lh ( n ) = 0 ; 若 n > 1 n>1 n > 1 , 則 lh ( n ) \text{lh}(n) lh ( n ) 為 n n n 的素因子的個數. 函數 lh \text{lh} lh 是遞歸的, 因為
lh ( n ) = ∑ x ≤ n ( C Prm ( x ) × C Divi ( x , n ) ) \text{lh}(n)=\sum_{x\leq n}(C_{\text{Prm}}(x)\times C_{\text{Divi}}(x,n)) lh ( n ) = x ≤ n ∑ ( C Prm ( x ) × C Divi ( x , n ))
二元並接函數 ∗ * ∗ 定義為
n 1 ∗ n 2 = n 1 × ∏ x < lh ( n 2 ) p lh ( n 1 ) + x ( n 2 ) x n_1 * n_2 = n_1\times\prod_{x<\text{lh}(n_2)}p_{\text{lh}(n_1)+x}^{(n_2)_x} n 1 ∗ n 2 = n 1 × x < lh ( n 2 ) ∏ p lh ( n 1 ) + x ( n 2 ) x
設 n 1 = 2 a 0 3 a 1 ⋯ p k a k n_1=2^{a_0}\thinspace 3^{a_1}\cdots\thinspace p_k^{a_k} n 1 = 2 a 0 3 a 1 ⋯ p k a k , n 2 = 2 b 0 3 b 1 ⋯ p l b l n_2=2^{b_0}\thinspace 3^{b_1}\cdots\thinspace p_l^{b_l} n 2 = 2 b 0 3 b 1 ⋯ p l b l , 且 a 0 , ⋯ , a k a_0,\cdots,a_k a 0 , ⋯ , a k 皆非零, 則
n 1 ∗ n 2 = 2 a 0 3 a 1 ⋯ p k a k p k + 1 b 0 p k + 2 b 1 ⋯ p k + l + 1 b l n_1 * n_2 = 2^{a_0}\thinspace 3^{a_1}\cdots\thinspace p_k^{a_k}\thinspace p_{k+1}^{b_0}\thinspace p_{k+2}^{b_1}\cdots\thinspace p_{k+l+1}^{b_l} n 1 ∗ n 2 = 2 a 0 3 a 1 ⋯ p k a k p k + 1 b 0 p k + 2 b 1 ⋯ p k + l + 1 b l
若 n 1 n_1 n 1 和 n 2 n_2 n 2 分別是字母串 s 0 s_0 s 0 和 s 1 s_1 s 1 的 Gödel 數, 那麼 n 1 ∗ n 2 n_1 * n_2 n 1 ∗ n 2 就是並接 s 0 s_0 s 0 和 s 1 s_1 s 1 得到的字母串 s 0 s 1 s_0\thinspace s_1 s 0 s 1 的 Gödel 數. 由 ( n 1 ) n 2 (n_1)_{n_2} ( n 1 ) n 2 和 lh \text{lh} lh 的定義知, 函數 ∗ * ∗ 也是遞歸的.
由 k k k 元函數 g g g 和 k + 2 k+2 k + 2 元函數 h h h 使用規則 II 生成 k + 1 k+1 k + 1 元函數 f f f 時, f f f 在點 ( α , n + 1 ) (\alpha,n+1) ( α , n + 1 ) 的值依賴於 f f f 在點 ( α , n ) (\alpha,n) ( α , n ) 的值 (α \alpha α 表示 n 1 , ⋯ , n k n_1,\cdots,n_k n 1 , ⋯ , n k ). 而在分析 K N K_N K N 的性質時, 常遇到另一種函數, 它在點 ( α , n + 1 ) (\alpha,n+1) ( α , n + 1 ) 的值依賴於 ( α , 0 ) (\alpha,0) ( α , 0 ) , ⋯ \cdots ⋯ , ( α , n ) (\alpha,n) ( α , n ) 這些點的值, 對於這一類函數有如下結論.
設 k + 2 k+2 k + 2 元函數 h h h 是遞歸的, 且 k + 1 k+1 k + 1 元函數 f f f 滿足 “過程值遞歸條件” :
f ( n 1 , ⋯ , n k , n k + 1 ) = h ( n 1 , ⋯ , n k , n k + 1 , f ♯ ( n 1 , ⋯ , n k , n k + 1 ) ) f(n_1,\cdots,n_k,n_{k+1})=h(n_1,\cdots,n_k,n_{k+1},f^{\sharp}(n_1,\cdots,n_k,n_{k+1})) f ( n 1 , ⋯ , n k , n k + 1 ) = h ( n 1 , ⋯ , n k , n k + 1 , f ♯ ( n 1 , ⋯ , n k , n k + 1 ))
其中
f ♯ ( n 1 , ⋯ , n k , n k + 1 ) = ∏ x < n k + 1 p x f ( n 1 , ⋯ , n k , x ) f^{\sharp}(n_1,\cdots,n_k,n_{k+1})=\prod_{x<n_{k+1}}p_x^{f(n_1,\cdots,n_k,x)} f ♯ ( n 1 , ⋯ , n k , n k + 1 ) = x < n k + 1 ∏ p x f ( n 1 , ⋯ , n k , x )
那麼 f f f 也是遞歸函數.
證明: 我們有
f ♯ ( α , n k + 1 ) = { 2 f ( α , 0 ) ⋯ p n k + 1 − 1 f ( α , n k + 1 − 1 ) , n k + 1 > 0 , 1 , n k + 1 = 0
f^{\sharp}(\alpha,n_{k+1})=\begin{cases}
2^{f(\alpha,0)}\cdots\thinspace p_{n_{k+1}-1}^{f(\alpha,n_{k+1}-1)}, &n_{k+1}>0, \\
1, &n_{k+1}=0
\end{cases}
f ♯ ( α , n k + 1 ) = { 2 f ( α , 0 ) ⋯ p n k + 1 − 1 f ( α , n k + 1 − 1 ) , 1 , n k + 1 > 0 , n k + 1 = 0
要證明 f f f 是遞歸的, 只需證明 f ♯ f^{\sharp} f ♯ 是遞歸的. 事實上,
f ♯ ( α , 0 ) = 1 , f ♯ ( α , n + 1 ) = f ♯ ( α , n ) × p n f ( α , n ) = f ♯ ( α , n ) × p n h ( α , n , f ♯ ( α , n ) )
\begin{align*}
&f^{\sharp}(\alpha,0) = 1, \\
&f^{\sharp}(\alpha,n+1) = f^{\sharp}(\alpha,n)\times p_n^{f(\alpha,n)}=f^{\sharp}(\alpha,n)\times p_n^{h(\alpha,n,f^{\sharp}(\alpha,n))}
\end{align*}
f ♯ ( α , 0 ) = 1 , f ♯ ( α , n + 1 ) = f ♯ ( α , n ) × p n f ( α , n ) = f ♯ ( α , n ) × p n h ( α , n , f ♯ ( α , n ))
根據規則 II, f ♯ f^{\sharp} f ♯ 是遞歸的. □ \square □
特別地, 設 h h h 是二元遞歸函數, 一元函數 f f f 滿足過程值遞歸條件:
f ( n ) = h ( n , f ♯ ( n ) ) f(n)=h(n,f^{\sharp}(n)) f ( n ) = h ( n , f ♯ ( n ))
其中
f ♯ ( n ) = 2 f ( 0 ) 3 f ( 1 ) ⋯ p n − 1 f ( n − 1 ) f^{\sharp}(n)=2^{f(0)}\thinspace 3^{f(1)}\cdots\thinspace p_{n-1}^{f(n-1)} f ♯ ( n ) = 2 f ( 0 ) 3 f ( 1 ) ⋯ p n − 1 f ( n − 1 )
則 f f f 也是遞歸函數.
顯然, 當 x < n k + 1 x<n_{k+1} x < n k + 1 時, f ( α , x ) = ( f ♯ ( α , n k + 1 ) ) x f(\alpha,x)=(f^{\sharp}(\alpha,n_{k+1}))_x f ( α , x ) = ( f ♯ ( α , n k + 1 ) ) x . f ( α , x ) f(\alpha,x) f ( α , x ) 關於 f ♯ ( α , n k + 1 ) f^{\sharp}(\alpha,n_{k+1}) f ♯ ( α , n k + 1 ) 的表達式是遞歸的, 這給出了在遞推關係式中引用已有項的合法性.
形式算術的一些遞歸性質
N \mathbb{N} N 的以下子集是遞歸集:
VS = { 2 15 + 2 k : k ≥ 1 } \text{VS}=\left\lbrace 2^{15+2k}:k\geq 1\right\rbrace VS = { 2 15 + 2 k : k ≥ 1 } , VS \text{VS} VS 即所有個體變元的 Gödel 數構成的集;
TM \text{TM} TM : 所有 K N K_N K N 的項的 Gödel 數構成的集;
YF \text{YF} YF : 所有 K N K_N K N 的原子公式的 Gödel 數構成的集;
FM \text{FM} FM : 所有 K N K_N K N 的公式的 Gödel 數構成的集.
證明:
VS \text{VS} VS 的特徵函數是遞歸的:
C VS ( n ) = ∑ k < n ( C ≥ ( k , 1 ) × C = ( n , 2 15 + 2 k ) ) C_{\text{VS}}(n) = \sum_{k<n}\left(C_{\geq}(k,1)\times C_{=}\left(n,2^{15+2k}\right)\right) C VS ( n ) = k < n ∑ ( C ≥ ( k , 1 ) × C = ( n , 2 15 + 2 k ) )
任給一項, 必屬於這幾種可能形式: 0 ‾ \overline{0} 0 , x i x_i x i , ′ t 't ′ t , + t 1 t 2 +t_1t_2 + t 1 t 2 , × t 1 t 2 \times t_1t_2 × t 1 t 2 (採用前置式寫法), 據此給出 C TM C_{\text{TM}} C TM 滿足的關係式:
C TM ( n ) = C = ( n , 2 15 ) + C VS ( n ) + ∑ x < n ( C = ( n , 2 1 ∗ x ) × C TM ( x ) ) + ∑ x < n ∑ y < n ( ( C = ( n , 2 3 ∗ x ∗ y ) + C = ( n , 2 5 ∗ x ∗ y ) ) × C TM ( x ) × C TM ( y ) )
\begin{align*}
C_{\text{TM}}(n) =& C_{=}\left(n,2^{15}\right)+C_{\text{VS}}(n)+\sum_{x<n}\left(C_{=}\left(n,2^1 * x\right)\times C_{\text{TM}}(x)\right) \\
&+ \sum_{x<n}\sum_{y<n}\left(\left(C_{=}\left(n,2^3*x*y\right)+C_{=}\left(n,2^5*x*y\right)\right)\times C_{\text{TM}}(x)\times C_{\text{TM}}(y)\right)
\end{align*}
C TM ( n ) = C = ( n , 2 15 ) + C VS ( n ) + x < n ∑ ( C = ( n , 2 1 ∗ x ) × C TM ( x ) ) + x < n ∑ y < n ∑ ( ( C = ( n , 2 3 ∗ x ∗ y ) + C = ( n , 2 5 ∗ x ∗ y ) ) × C TM ( x ) × C TM ( y ) )
把上式右邊出現的所有 C TM ( x ) C_{\text{TM}}(x) C TM ( x ) 和 C TM ( y ) C_{\text{TM}}(y) C TM ( y ) 分別換成上一節定義的 ( C TM ♯ ( n ) ) x (C_{\text{TM}}^{\sharp}(n))_x ( C TM ♯ ( n ) ) x 和 ( C TM ♯ ( n ) ) y (C_{\text{TM}}^{\sharp}(n))_y ( C TM ♯ ( n ) ) y , 即得 C TM C_{\text{TM}} C TM 滿足的過程值遞歸條件, 所以 C TM C_{\text{TM}} C TM 是遞歸函數.
3. 原子公式的結構只有 ≈ t 1 t 2 \approx t_1t_2 ≈ t 1 t 2 這一種形式, 由此得到:
C YF ( n ) = ∑ x < n ∑ y < n C TM ( x ) × C TM ( y ) × C = ( n , 2 13 ∗ x ∗ y ) C_{\text{YF}}(n)=\sum_{x<n}\sum_{y<n}C_{\text{TM}}(x)\times C_{\text{TM}}(y)\times C_{=}\left(n,2^{13}*x*y\right) C YF ( n ) = x < n ∑ y < n ∑ C TM ( x ) × C TM ( y ) × C = ( n , 2 13 ∗ x ∗ y )
K N K_N K N 的公式除原子公式外, 便具有 ¬ q \neg q ¬ q , q → r q\to r q → r , ∀ x i q \forall x_i\thinspace q ∀ x i q 這三種形式, 所以 C FM C_{\text{FM}} C FM 滿足:
C FM ( n ) = C YF ( n ) + ∑ x < n C FM ( x ) × C = ( n , 2 7 ∗ x ) + ∑ x < n ∑ y < n C FM ( x ) × C FM ( y ) × C = ( n , 2 9 ∗ x ∗ y ) + ∑ x < n ∑ y < n C VS ( x ) × C FM ( y ) × C = ( n , 2 11 ∗ x ∗ y )
\begin{align*}
C_{\text{FM}}(n) =& C_{\text{YF}}(n)+\sum_{x<n}C_{\text{FM}}(x)\times C_{=}\left(n,2^7*x\right) \\
&+ \sum_{x<n}\sum_{y<n}C_{\text{FM}}(x)\times C_{\text{FM}}(y)\times C_{=}\left(n,2^9*x*y\right) \\
&+ \sum_{x<n}\sum_{y<n}C_{\text{VS}}(x)\times C_{\text{FM}}(y)\times C_{=}\left(n,2^{11}*x*y\right)
\end{align*}
C FM ( n ) = C YF ( n ) + x < n ∑ C FM ( x ) × C = ( n , 2 7 ∗ x ) + x < n ∑ y < n ∑ C FM ( x ) × C FM ( y ) × C = ( n , 2 9 ∗ x ∗ y ) + x < n ∑ y < n ∑ C VS ( x ) × C FM ( y ) × C = ( n , 2 11 ∗ x ∗ y )
同樣把上式右邊的 C FM ( x ) C_{\text{FM}}(x) C FM ( x ) 和 C FM ( y ) C_{\text{FM}}(y) C FM ( y ) 分別換成 ( C FM ♯ ( n ) ) x (C_{\text{FM}}^{\sharp}(n))_x ( C FM ♯ ( n ) ) x 和 ( C FM ♯ ( n ) ) y (C_{\text{FM}}^{\sharp}(n))_y ( C FM ♯ ( n ) ) y , 即得 C FM C_{\text{FM}} C FM 滿足的過程值遞歸條件, 所以 C FM C_{\text{FM}} C FM 是遞歸函數. □ \square □
分別對 i = 1 , ⋯ , 5 i=1,\cdots,5 i = 1 , ⋯ , 5 把所有 ( K i ) (K_i) ( K i ) 型公理的 Gödel 數構成的集記作 LA i \text{LA}_i LA i .
容易證明 LA 1 \text{LA}_1 LA 1 , LA 2 \text{LA}_2 LA 2 , LA 3 \text{LA}_3 LA 3 的遞歸性. 而要證明 LA 4 \text{LA}_4 LA 4 和 LA 5 \text{LA}_5 LA 5 的遞歸性, 困難在於要設法遞歸地表達出這樣的關係: 在 Gödel 數為 n 3 n_3 n 3 的項 u ( x i ) u(x_i) u ( x i ) 或公式 p ( x i ) p(x_i) p ( x i ) 中, 用 Gödel 數為 n 2 n_2 n 2 的項 t t t 去替換 Gödel 數為 n 1 n_1 n 1 的變元 x i x_i x i 的所有自由出現, 所得結果 u ( t ) u(t) u ( t ) 或 p ( t ) p(t) p ( t ) 的 Gödel 數是 n 4 n_4 n 4 .
首先令 γ = 2 n 3 3 n 4 ⋯ \gamma=2^{n_3}\thinspace 3^{n_4}\cdots γ = 2 n 3 3 n 4 ⋯ , 則 ( γ ) 0 = n 3 (\gamma)_0=n_3 ( γ ) 0 = n 3 , ( γ ) 1 = n 4 (\gamma)_1=n_4 ( γ ) 1 = n 4 , 藉此將 n 1 n_1 n 1 , n 2 n_2 n 2 , n 3 n_3 n 3 , n 4 n_4 n 4 的四元關係轉化為一個三元關係. 這樣做是為了避免涉及兩個自然數變量的過程值遞歸.
定義三元關係 SBS \text{SBS} SBS : ( n 1 , n 2 , γ ) ∈ SBS (n_1,n_2,\gamma)\in\text{SBS} ( n 1 , n 2 , γ ) ∈ SBS ⇔ \Leftrightarrow ⇔ n 1 ∈ VS n_1\in\text{VS} n 1 ∈ VS , n 2 ∈ TM n_2\in\text{TM} n 2 ∈ TM , ( γ ) 0 ∈ TM ∪ FM (\gamma)_0\in\text{TM}\cup\text{FM} ( γ ) 0 ∈ TM ∪ FM , ( γ ) 1 (\gamma)_1 ( γ ) 1 是用 n 2 n_2 n 2 (對應的)項去替換 ( γ ) 0 (\gamma)_0 ( γ ) 0 項或 ( γ ) 0 (\gamma)_0 ( γ ) 0 公式中的 n 1 n_1 n 1 變元的全部自由出現所得結果的 Gödel 數.
通過分析用項 t t t 去替換項 u ( x i ) u(x_i) u ( x i ) 或公式 p ( x i ) p(x_i) p ( x i ) 中所有自由的 x i x_i x i 所得的可能類型, 可以逐個寫出關係 SBS \text{SBS} SBS 需滿足的約束條件, 由此得到 C SBS C_{\text{SBS}} C SBS 所滿足的過程值遞歸條件, 即可證明 SBS \text{SBS} SBS 是遞歸關係. 證明細節非常複雜, 此處略過.
在遞歸關係 SBS \text{SBS} SBS 的基礎上, 定義三元函數 Sub \text{Sub} Sub :
Sub ( n 1 , n 2 , n 3 ) = μ x [ C SBS ( n 1 , n 2 , 2 n 3 3 x ) + C ≤ ( ( p n 2 n 3 ) n 2 2 n 3 2 , x ) = 1 ] \text{Sub}(n_1,n_2,n_3)=\mu x\left[C_{\text{SBS}}\left(n_1,n_2,2^{n_3}\thinspace 3^{x}\right)+C_{\leq}\left((p_{n_2 n_3})^{n_2^2 n_3^2},x\right)=1 \right] Sub ( n 1 , n 2 , n 3 ) = μx [ C SBS ( n 1 , n 2 , 2 n 3 3 x ) + C ≤ ( ( p n 2 n 3 ) n 2 2 n 3 2 , x ) = 1 ]
在函數 Sub \text{Sub} Sub 中加一項 C ≤ ( m , x ) C_{\leq}(m,x) C ≤ ( m , x ) 是為了確保根存在性條件, m m m 需要取得充分大, 以至於不可能是上述替換結果的 Gödel 數, 這裡取 m = ( p n 2 n 3 ) n 2 2 n 3 2 m=(p_{n_2 n_3})^{n_2^2 n_3^2} m = ( p n 2 n 3 ) n 2 2 n 3 2 . 該函數顯然是遞歸的.
根據定義, 可以把上式具體寫作:
Sub ( n 1 , n 2 , n 3 ) = { g ( u ( t ) ) , if n 1 = g ( x i ) , n 2 = g ( t ) , n 3 = g ( u ( x i ) ) ; g ( p ( t ) ) , if n 1 = g ( x i ) , n 2 = g ( t ) , n 3 = g ( p ( x i ) ) ; ( p n 2 n 3 ) n 2 2 n 3 2 , otherwise .
\text{Sub}(n_1,n_2,n_3)=\begin{cases}
\text{g}(u(t)), &\text{if}\enspace n_1=\text{g}(x_i),\thinspace n_2=\text{g}(t),\thinspace n_3=\text{g}(u(x_i)); \\
\text{g}(p(t)), &\text{if}\enspace n_1=\text{g}(x_i),\thinspace n_2=\text{g}(t),\thinspace n_3=\text{g}(p(x_i)); \\
(p_{n_2 n_3})^{n_2^2 n_3^2},&\text{otherwise}.
\end{cases}
Sub ( n 1 , n 2 , n 3 ) = ⎩ ⎨ ⎧ g ( u ( t )) , g ( p ( t )) , ( p n 2 n 3 ) n 2 2 n 3 2 , if n 1 = g ( x i ) , n 2 = g ( t ) , n 3 = g ( u ( x i )) ; if n 1 = g ( x i ) , n 2 = g ( t ) , n 3 = g ( p ( x i )) ; otherwise .
其中, 符號 g \text{g} g 表示 Gödel 配數.
最後, 要斷定 LA 4 \text{LA}_4 LA 4 和 LA 5 \text{LA}_5 LA 5 的遞歸性, 還需要下面的結論.
以下關係是遞歸關係:
FR = { ( n 1 , n 2 ) : n 1 \text{FR}=\lbrace (n_1,n_2):n_1 FR = {( n 1 , n 2 ) : n 1 變元在 n 2 n_2 n 2 項或 n 2 n_2 n 2 公式中自由出現 } \rbrace }
FRT = { ( n 1 , n 2 , n 3 ) : n 2 \text{FRT}=\lbrace (n_1,n_2,n_3):n_2 FRT = {( n 1 , n 2 , n 3 ) : n 2 項對 n 3 n_3 n 3 公式中的 n 1 n_1 n 1 變元是自由的 } \rbrace }
證明:
用不同於 n 1 n_1 n 1 變元 x i x_i x i 的另一變元, 例如 x i + 1 x_{i+1} x i + 1 (注意有 g ( x i + 1 ) = n 1 × 2 2 \text{g}(x_{i+1})=n_1\times 2^2 g ( x i + 1 ) = n 1 × 2 2 ), 去替換 n 2 n_2 n 2 項或 n 2 n_2 n 2 公式中所有自由出現的 x i x_i x i , 所得結果發生變化, 則說明 n 1 n_1 n 1 變元在 n 2 n_2 n 2 項或 n 2 n_2 n 2 公式中自由出現. 於是有
( n 1 , n 2 ) ∈ FR ⇔ n 1 ∈ VS ∧ n 2 ∈ TM ∪ FM ∧ ( n 1 , n 1 × 2 2 , 2 n 2 3 n 2 ) ∉ SBS (n_1,n_2)\in\text{FR}\enspace\Leftrightarrow\enspace n_1\in\text{VS}\wedge n_2\in\text{TM}\cup\text{FM}\wedge(n_1,n_1\times 2^2,2^{n_2}\thinspace 3^{n_2})\not\in\text{SBS} ( n 1 , n 2 ) ∈ FR ⇔ n 1 ∈ VS ∧ n 2 ∈ TM ∪ FM ∧ ( n 1 , n 1 × 2 2 , 2 n 2 3 n 2 ) ∈ SBS
分四種情形, 寫出 C FRT C_{\text{FRT}} C FRT 所滿足的過程值遞歸條件, 細節略. □ \square □
LA 4 \text{LA}_4 LA 4 是所有形如
→ ∀ x i p ( x i ) p ( t ) \to\forall x_i\thinspace p(x_i)\thinspace p(t) → ∀ x i p ( x i ) p ( t ) (使用前置寫法, 其中
t t t 對
p p p 中
x i x_i x i 自由) 的公式的 Gödel 數構成的集. 所以有
n ∈ LA 4 ⇔ ∃ x < n ∃ y < n ∃ z < n ( x ∈ VS ∧ y ∈ TM ∧ z ∈ FM ∧ ( x , y , z ) ∈ FRT ∧ n = 2 9 ∗ 2 11 ∗ x ∗ z ∗ Sub ( x , y , z ) )
\begin{align*}
n\in\text{LA}_4\enspace\Leftrightarrow\enspace&\exists x<n\thinspace\exists y<n\thinspace\exists z<n\big(x\in\text{VS}\wedge y\in\text{TM}\wedge z\in\text{FM}\wedge \\
&(x,y,z)\in\text{FRT}\wedge n=2^9*2^{11}*x*z*\text{Sub}(x,y,z)\big)
\end{align*}
n ∈ LA 4 ⇔ ∃ x < n ∃ y < n ∃ z < n ( x ∈ VS ∧ y ∈ TM ∧ z ∈ FM ∧ ( x , y , z ) ∈ FRT ∧ n = 2 9 ∗ 2 11 ∗ x ∗ z ∗ Sub ( x , y , z ) )
故由 Sub \text{Sub} Sub , FRT \text{FRT} FRT 的遞歸性可得 LA 4 \text{LA}_4 LA 4 的遞歸性.
LA 5 \text{LA}_5 LA 5 是所有形如
→ ∀ x i → p q → p ∀ x i q \to\forall x_i\to p\thinspace q\to p\thinspace\forall x_i q → ∀ x i → p q → p ∀ x i q (其中
x i x_i x i 不在
p p p 中自由出現) 的公式的 Gödel 數集. 所以
n ∈ LA 5 ⇔ ∃ x < n ∃ y < n ∃ z < n ( x ∈ VS ∧ y ∈ FM ∧ z ∈ FM ∧ n = 2 9 ∗ 2 11 ∗ x ∗ 2 9 ∗ y ∗ z ∗ 2 9 ∗ y ∗ 2 11 ∗ x ∗ z ∧ ( x , y ) ∉ FR )
\begin{align*}
n\in\text{LA}_5\enspace\Leftrightarrow\enspace&\exists x<n\thinspace\exists y<n\thinspace\exists z<n\big(x\in\text{VS}\wedge y\in\text{FM}\wedge z\in\text{FM}\wedge \\
&n=2^{9}*2^{11}*x*2^{9}*y*z*2^{9}*y*2^{11}*x*z\wedge (x,y)\not\in\text{FR}\big)
\end{align*}
n ∈ LA 5 ⇔ ∃ x < n ∃ y < n ∃ z < n ( x ∈ VS ∧ y ∈ FM ∧ z ∈ FM ∧ n = 2 9 ∗ 2 11 ∗ x ∗ 2 9 ∗ y ∗ z ∗ 2 9 ∗ y ∗ 2 11 ∗ x ∗ z ∧ ( x , y ) ∈ FR )
由 FR \text{FR} FR 的遞歸性可得 LA 5 \text{LA}_5 LA 5 的遞歸性.
從而 LA = LA 1 ∪ ⋯ ∪ LA 5 \text{LA}=\text{LA}_1\cup\cdots\cup\text{LA}_5 LA = LA 1 ∪ ⋯ ∪ LA 5 是遞歸集, 即 K N K_N K N 的所有邏輯公理的 Gödel 數構成的集是遞歸集.
令 EA i \text{EA}_i EA i 為 ( E i ) (Ei) ( E i ) 型等詞公理 Gödel 數構成的集, NA i \text{NA}_i NA i 為 ( N i ) (Ni) ( N i ) 型算術公理 Gödel 數構成的集. 則仿照上面的分析可以得到 EA i \text{EA}_i EA i 和 NA i \text{NA}_i NA i 的遞歸性.
從而 PA \text{PA} PA (= EA 1 ∪ ⋯ ∪ EA 3 ∪ NA 1 ∪ ⋯ ∪ NA 7 =\text{EA}_1\cup\cdots\cup\text{EA}_3\cup\text{NA}_1\cup\cdots\cup\text{NA}_7 = EA 1 ∪ ⋯ ∪ EA 3 ∪ NA 1 ∪ ⋯ ∪ NA 7 ) 也是遞歸集, 即 N \mathcal{N} N 中公式的 Gödel 數集是遞歸集. 進而, AX = LA ∪ PA \text{AX}=\text{LA}\cup\text{PA} AX = LA ∪ PA 是遞歸集, 即包括邏輯公理和算術公理在內的所有 K N K_N K N 公理的 Gödel 數構成的集是遞歸集.
以下關係和集是遞歸的:
MP = { ( n 1 , n 2 , n 3 ) : n 1 = g ( p ) , n 2 = g ( p → q ) , n 3 = g ( q ) } \text{MP}=\lbrace (n_1,n_2,n_3):n_1=\text{g}(p),n_2=\text{g}(p\to q),n_3=\text{g}(q)\rbrace MP = {( n 1 , n 2 , n 3 ) : n 1 = g ( p ) , n 2 = g ( p → q ) , n 3 = g ( q )} ;
GEN = { ( n 1 , n 2 ) : n 1 = g ( p ) , n 2 = g ( ∀ x i p ) } \text{GEN}=\lbrace (n_1,n_2):n_1=\text{g}(p),n_2=\text{g}(\forall x_i\thinspace p)\rbrace GEN = {( n 1 , n 2 ) : n 1 = g ( p ) , n 2 = g ( ∀ x i p )} ;
PF = { n : n \text{PF}=\lbrace n:n PF = { n : n 是從 N \mathcal{N} N 的證明的 Gödel 數 } \rbrace } ;
PRF = { ( n 1 , n 2 ) : n 1 = g ( p ) , n 2 \text{PRF}=\lbrace (n_1,n_2):n_1=g(p),n_2 PRF = {( n 1 , n 2 ) : n 1 = g ( p ) , n 2 是 p p p 從 N \mathcal{N} N 的證明的 Gödel 數 } \rbrace } .
證明略. 這裡需要注意的是, PF \text{PF} PF 的遞歸性僅僅依賴於 “AX \text{AX} AX 是遞歸的” 這一點, 而與 AX \text{AX} AX 中包含哪些具體公理的 Gödel 數無關. 不論怎樣增減公理, 只要不改變 AX \text{AX} AX 的遞歸性, 就不改變 PF \text{PF} PF 的遞歸性.
一元函數 Num \text{Num} Num 定義為 Num ( n ) = g ( n ‾ ) \text{Num}(n)=\text{g}(\overline{n}) Num ( n ) = g ( n ) , 則 Num \text{Num} Num 是遞歸函數, 因為
Num ( 0 ) = g ( 0 ‾ ) = 2 15 Num ( n + 1 ) = 2 1 ∗ g ( n ‾ ) = 2 1 ∗ Num ( n )
\begin{align*}
&\text{Num}(0) = \text{g}(\overline{0}) = 2^{15} \\
&\text{Num}(n+1) = 2^1 * \text{g}(\overline{n}) = 2^1 * \text{Num}(n)
\end{align*}
Num ( 0 ) = g ( 0 ) = 2 15 Num ( n + 1 ) = 2 1 ∗ g ( n ) = 2 1 ∗ Num ( n )
至此, 證明 Gödel 不完備性定理的準備工作已告完成.
可表示函數的遞歸性*
此前已經證明了 REC ⊆ REP \text{REC}\subseteq\text{REP} REC ⊆ REP , 現在順帶證明 REP ⊆ REC \text{REP}\subseteq\text{REC} REP ⊆ REC , 即所有在 K N K_N K N 中可表示的函數都是遞歸函數.
設 k k k 元函數 f f f 用公式 p ( x 1 , ⋯ , x k , y ) p(x_1,\cdots,x_k,y) p ( x 1 , ⋯ , x k , y ) 可表示, 其中 y y y 是不同於 x 1 , ⋯ , x k x_1,\cdots,x_k x 1 , ⋯ , x k 的個體變元. 把 p ( x 1 , ⋯ , x k , y ) p(x_1,\cdots,x_k,y) p ( x 1 , ⋯ , x k , y ) 的 Gödel 數記為 α 0 \alpha_0 α 0 :
α 0 = g ( p ( x 1 , ⋯ , x k , y ) ) \alpha_0=\text{g}(p(x_1,\cdots,x_k,y)) α 0 = g ( p ( x 1 , ⋯ , x k , y ))
給定 f f f , 且取定用以表示它的公式 p p p 之後, α 0 \alpha_0 α 0 就是定數. 現用公式 p p p 作出一個 k + 2 k+2 k + 2 元關係 W p W_p W p :
W p = { ( n 1 , ⋯ , n k + 2 ) : n k + 2 是 p ( n 1 ‾ , ⋯ , n k + 1 ‾ ) 從 N 的證明的 G o ¨ del 數 } W_p=\lbrace (n_1,\cdots,n_{k+2}):n_{k+2} \text{ 是 } p(\overline{n_1},\cdots,\overline{n_{k+1}}) \text{ 從 } \mathcal{N} \text{ 的證明的 Gödel 數 } \rbrace W p = {( n 1 , ⋯ , n k + 2 ) : n k + 2 是 p ( n 1 , ⋯ , n k + 1 ) 從 N 的證明的 G o ¨ del 數 }
把 p ( n 1 ‾ , x 2 , ⋯ , x k , y ) p(\overline{n_1},x_2,\cdots,x_k,y) p ( n 1 , x 2 , ⋯ , x k , y ) , p ( n 1 ‾ , n 2 ‾ , x 3 , ⋯ , x k , y ) p(\overline{n_1},\overline{n_2},x_3,\cdots,x_k,y) p ( n 1 , n 2 , x 3 , ⋯ , x k , y ) , ⋯ \cdots ⋯ , p ( n 1 ‾ , ⋯ , n k + 1 ‾ ) p(\overline{n_1},\cdots,\overline{n_{k+1}}) p ( n 1 , ⋯ , n k + 1 ) 的 Gödel 數分別記為 α 1 ( n 1 ) \alpha_1(n_1) α 1 ( n 1 ) , α 2 ( n 1 , n 2 ) \alpha_2(n_1,n_2) α 2 ( n 1 , n 2 ) , ⋯ \cdots ⋯ , α k + 1 ( n 1 , ⋯ , n k + 1 ) \alpha_{k+1}(n_1,\cdots,n_{k+1}) α k + 1 ( n 1 , ⋯ , n k + 1 ) . 這是一串遞歸函數:
α 1 ( n 1 ) = Sub ( 2 15 + 2 , Num ( n 1 ) , α 0 ) , α 2 ( n 1 , n 2 ) = Sub ( 2 15 + 4 , Num ( n 2 ) , α 1 ( n 1 ) ) , ⋯ , α k + 1 ( n 1 , ⋯ , n k + 1 ) = Sub ( 2 15 + 2 ( k + 1 ) , Num ( n k + 1 ) , α k ( n 1 , ⋯ , n k ) )
\begin{align*}
&\alpha_1(n_1) = \text{Sub}(2^{15+2},\text{Num}(n_1),\alpha_0), \\
&\alpha_2(n_1,n_2) = \text{Sub}(2^{15+4},\text{Num}(n_2),\alpha_1(n_1)), \\
&\cdots , \\
&\alpha_{k+1}(n_1,\cdots,n_{k+1}) = \text{Sub}(2^{15+2(k+1)},\text{Num}(n_{k+1}),\alpha_k(n_1,\cdots,n_k))
\end{align*}
α 1 ( n 1 ) = Sub ( 2 15 + 2 , Num ( n 1 ) , α 0 ) , α 2 ( n 1 , n 2 ) = Sub ( 2 15 + 4 , Num ( n 2 ) , α 1 ( n 1 )) , ⋯ , α k + 1 ( n 1 , ⋯ , n k + 1 ) = Sub ( 2 15 + 2 ( k + 1 ) , Num ( n k + 1 ) , α k ( n 1 , ⋯ , n k ))
所以由 W p W_p W p 的定義即可知 W p W_p W p 是遞歸的:
C W p ( n 1 , ⋯ , n k + 2 ) = C PRF ( α k + 1 ( n 1 , ⋯ , n k + 1 ) , n k + 2 ) C_{W_p}(n_1,\cdots,n_{k+2})=C_{\text{PRF}}\left(\alpha_{k+1}(n_1,\cdots,n_{k+1}),n_{k+2}\right) C W p ( n 1 , ⋯ , n k + 2 ) = C PRF ( α k + 1 ( n 1 , ⋯ , n k + 1 ) , n k + 2 )
因為 f f f 可由公式 p ( x 1 , ⋯ , x k , y ) p(x_1,\cdots,x_k,y) p ( x 1 , ⋯ , x k , y ) 表示, 所以
N ⊢ p ( n 1 ‾ , ⋯ , n k ‾ , f ( n 1 , ⋯ , n k ) ‾ ) \mathcal{N}\vdash p\left(\overline{n_1},\cdots,\overline{n_k},\thinspace \overline{f(n_1,\cdots,n_k)}\right) N ⊢ p ( n 1 , ⋯ , n k , f ( n 1 , ⋯ , n k ) )
把 p ( n 1 ‾ , ⋯ , n k ‾ , f ( n 1 , ⋯ , n k ) ‾ ) p\left(\overline{n_1},\cdots,\overline{n_k},\thinspace \overline{f(n_1,\cdots,n_k)}\right) p ( n 1 , ⋯ , n k , f ( n 1 , ⋯ , n k ) ) 從 N \mathcal{N} N 的一個證明的 Gödel 數記為 m m m , 則有
( n 1 , ⋯ , n k , f ( n 1 , ⋯ , n k ) , m ) ∈ W p (n_1,\cdots,n_k,f(n_1,\cdots,n_k),m)\in W_p ( n 1 , ⋯ , n k , f ( n 1 , ⋯ , n k ) , m ) ∈ W p
這說明, 對任意的 n 1 , ⋯ , n k n_1,\cdots,n_k n 1 , ⋯ , n k , 一定存在 x ∈ N x\in\mathbb{N} x ∈ N 使
( n 1 , ⋯ , n k , ( x ) 0 , ( x ) 1 ) ∈ W p (n_1,\cdots,n_k,(x)_0,(x)_1)\in W_p ( n 1 , ⋯ , n k , ( x ) 0 , ( x ) 1 ) ∈ W p
例如令 x = 2 f ( n 1 , ⋯ , n k ) 3 m x=2^{f(n_1,\cdots,n_k)}\thinspace 3^m x = 2 f ( n 1 , ⋯ , n k ) 3 m 即可. 所以如下定義的 k k k 元函數 x ∗ x^{*} x ∗ 是遞歸全函數:
x ∗ ( n 1 , ⋯ , n k ) = μ x [ C W p ( n 1 , ⋯ , n k , ( x ) 0 , ( x ) 1 ) = 1 ] x^{*}(n_1,\cdots,n_k)=\mu x\left[C_{W_p}(n_1,\cdots,n_k,(x)_0,(x)_1)=1\right] x ∗ ( n 1 , ⋯ , n k ) = μx [ C W p ( n 1 , ⋯ , n k , ( x ) 0 , ( x ) 1 ) = 1 ]
於是我們有
N ⊢ p ( n 1 ‾ , ⋯ , n k ‾ , ( x ∗ ( n 1 , ⋯ , n k ) ) 0 ‾ ) (1) \mathcal{N}\vdash p\left(\overline{n_1},\cdots,\overline{n_k},\thinspace \overline{(x^{*}(n_1,\cdots,n_k))_0}\right)\tag{1} N ⊢ p ( n 1 , ⋯ , n k , ( x ∗ ( n 1 , ⋯ , n k ) ) 0 ) ( 1 )
假設 f ( n 1 , ⋯ , n k ) ≠ ( x ∗ ( n 1 , ⋯ , n k ) ) 0 f(n_1,\cdots,n_k)\not=(x^{*}(n_1,\cdots,n_k))_0 f ( n 1 , ⋯ , n k ) = ( x ∗ ( n 1 , ⋯ , n k ) ) 0 , 則會得到
N ⊢ ¬ p ( n 1 ‾ , ⋯ , n k ‾ , ( x ∗ ( n 1 , ⋯ , n k ) ) 0 ‾ ) (2) \mathcal{N}\vdash\neg p\left(\overline{n_1},\cdots,\overline{n_k},\thinspace \overline{(x^{*}(n_1,\cdots,n_k))_0}\right)\tag{2} N ⊢ ¬ p ( n 1 , ⋯ , n k , ( x ∗ ( n 1 , ⋯ , n k ) ) 0 ) ( 2 )
與 ( 1 ) (1) ( 1 ) 式矛盾. 如果 N \mathcal{N} N 是無矛盾的, 就必然有
f ( n 1 , ⋯ , n k ) = ( x ∗ ( n 1 , ⋯ , n k ) ) 0 f(n_1,\cdots,n_k)=(x^{*}(n_1,\cdots,n_k))_0 f ( n 1 , ⋯ , n k ) = ( x ∗ ( n 1 , ⋯ , n k ) ) 0
是遞歸函數. □ \square □
從而在 N \mathcal{N} N 無矛盾的前提下, 我們證明了可表示函數必是遞歸函數. 結合上面的結論就有 REC = REP \text{REC}=\text{REP} REC = REP , 遞歸性與在 K N K_N K N 中的可表示性是一回事.
在這個證明中, 我們利用了 PRF \text{PRF} PRF (PF \text{PF} PF ) 的遞歸性, 而 PRF \text{PRF} PRF 的遞歸性僅僅依賴於公理集的遞歸性, 所以如果對 N \mathcal{N} N 進行無矛盾擴張 N ∗ \mathcal{N}^{*} N ∗ , 但保持 N ∗ \mathcal{N}^{*} N ∗ 中公理的 Gödel 數集的遞歸性, 則對擴張後系統中的可表示函數, 上述結論仍然成立.
部分遞歸函數*
從程序語言的角度看, 原始遞歸函數相當於進行有界的循環, 即形如 “從 i = 1 i=1 i = 1 到 n n n 執行…” 的一系列預先確定的運算; 而 μ \mu μ 算子使得程序可以進行無界的循環, 即從 i = 1 i=1 i = 1 開始逐個檢驗, 直到搜索得最小根, 一個函數滿足根存在性條件, 就意味著循環必定有終點 (停機), 這樣的函數就是一般遞歸函數. 進而, 如果去除根存在性條件, 那麼這種循環就有可能不會終止.
上文已經提到, 部分遞歸函數是在使用規則 III 時去掉根存在性條件所得, 確切地說, 設 k + 1 k+1 k + 1 元部分函數 g g g , 對其使用 μ \mu μ 算子得到函數 f f f :
f ( α ) = μ x [ ∀ z ≤ x ( g ( α , z ) ↓ ) ∧ g ( α , x ) = 0 ] f(\alpha)=\mu x\left[\forall z\leq x\thinspace (g(\alpha,z)\downarrow)\wedge g(\alpha,x)=0\right] f ( α ) = μx [ ∀ z ≤ x ( g ( α , z ) ↓ ) ∧ g ( α , x ) = 0 ]
則 f f f 是一個部分遞歸函數. 其中 α \alpha α 表示 n 1 , ⋯ , n k n_1,\cdots,n_k n 1 , ⋯ , n k ; g ( α , z ) ↓ g(\alpha,z)\downarrow g ( α , z ) ↓ 表示函數 g g g 在點 ( α , z ) (\alpha,z) ( α , z ) 有定義, 或稱 g ( α , z ) g(\alpha,z) g ( α , z ) 收斂. 相應地, g ( α , z ) ↑ g(\alpha,z)\uparrow g ( α , z ) ↑ 則表示 g g g 在該點無定義, 或稱 g ( α , z ) g(\alpha,z) g ( α , z ) 發散.
上式中加入條件 ∀ z ≤ x ( g ( α , z ) ↓ ) \forall z\leq x\thinspace (g(\alpha,z)\downarrow) ∀ z ≤ x ( g ( α , z ) ↓ ) 是因為, g ( α , x ) g(\alpha,x) g ( α , x ) 可以是部分函數, 有可能在最小根 x 0 x_0 x 0 出現前, 就在某個 z 0 < x 0 z_0<x_0 z 0 < x 0 處無定義, 假如跳過 z 0 z_0 z 0 , 那麼即便找到了 x 0 x_0 x 0 這個根, 我們也不能斷言 x 0 x_0 x 0 是最小的, 因為我們不能能行地知道 g ( α , z 0 ) g(\alpha,z_0) g ( α , z 0 ) 是發散的. 所以我們寧可達不到真正的根, 也不跳過發散點.
形成部分遞歸函數的這條規則, 可以作用在部分函數上, 也可以產生部分函數. 事實上, Turing 給出的可計算性概念面向的是 N \mathbb{N} N 上的部分函數, 而不僅僅是全函數: 一個可計算函數可能並非在所有輸入值上都有定義, 對某些輸入, 一個計算程序可能會一直運行, 永不停止. 正是由於這個部分性特徵, Turing 的計算概念能避開 Gödel 的對角化難題 (對原始遞歸函數的任何枚舉總可以通過對角化增添新的可計算函數, 參見上文), 達成對可計算函數的完全的枚舉. 簡單來說, 假定我們枚舉所有的部分遞歸函數: f 0 , f 1 , ⋯ f_0, f_1, \cdots f 0 , f 1 , ⋯ , 並定義對角函數 F : N → N F:\mathbb{N}\to\mathbb{N} F : N → N 為 F ( n ) = f n ( n ) + 1 F(n)=f_n(n)+1 F ( n ) = f n ( n ) + 1 , 則 F F F 可以與列表中的某個 f k f_{k} f k 相同, 因為 f k ( k ) f_k(k) f k ( k ) 無定義.
Church 論題 : 算法可計算函數 = 遞歸函數.
這是一個經驗事實, 但還未發現反例. 上文已經證明 FM \text{FM} FM 和 PF \text{PF} PF 是遞歸集, 所以按 Church 論題, 存在算法能用來確定任給的 n ∈ N n\in\mathbb{N} n ∈ N 是否屬於 FM \text{FM} FM 或 PF \text{PF} PF , 即存在算法能確定任意字母串是不是 K N K_N K N 的公式, 以及任給的有限公式序列是不是從 N \mathcal{N} N 的一個證明.
下一篇: Gödel 不完備性定理和 Turing 機