定義
遞歸語言有兩種等價的主要定義:
設
S⊆ Σ是一個語言,
M是一台
圖靈機, 若對於任何字元串 ω ∈ Σ,有
ω ∈S若且唯若M接受 ω
ω ∉S若且唯若M拒絕 ω
則稱
M判定語言
S。 若存在這樣的
M,
S就稱為
圖靈可判定語言。
閉包性質
遞歸語言是在下列運算下是
閉合的。就是說,如果
L和
P是兩個遞歸語言,則下列語言也是遞歸的:
L的非刪除(non-erasing)
同態:φ(L)
圖靈可判定語言與圖靈可識別語言的關係
注意圖靈可判定語言和
圖靈可識別語言的區別:若
S是圖靈可識別語言,則只需存在一 台圖靈機
M,當
M的輸入 ω ∈
S時,
M一定會 停機並進入接受狀態;當
M的輸入 ω ∉
S時,
M可能停 機並進入拒絕狀態,或者永不停機。而若
S是圖靈可判定語言,則必須存在圖靈機
M, 使得對於任意輸入串 ω ∈ Σ,
M總能停機,並根據 ω 屬於或不屬於
S分別進入接受或拒絕狀態。
定理:存在圖靈不可判定語言。
證明:定義語言 HALTING 如下:
其中 <
M,
x> 表示將
M的編碼和串
x以某種方式
配對而得到的串。 可以證明 HALTING 是圖靈不可判定語言。
定理:一個語言是圖靈可判定的若且唯若它和它的補語言都是圖靈可識別的。
證明:若S是圖靈可判定的,顯然S和S的補都是圖靈可識別的。 下面假設存在圖靈機M1和M2分別識別S和S的補,我們可以構造一個圖靈機M如下:
M= 對於輸入 ω
對於i= 1, 2, 3, ... 分別重複以下步驟:
將 ω 作為M1的輸入,模擬運行M1,如果M1可以在i步之內接受 ω,則M進入接受狀態並停機;
將 ω 作為M2的輸入,模擬運行M2,如果M2可以在i步之內接受 ω,則M進入拒絕狀態並停機。
很顯然,對於任何 ω,它要么屬於S,要么屬於S的補, 所以M1和M2中必然有且僅有一個 可以在有限步執行內接受 ω 。 若M1在k步內接受 ω,說明 ω 屬於S, 則當i=k時,M會接受 ω 並停機; 同理,若M2在k步內接受 ω, 說明 ω 屬於S的補,則當i=k時,M會拒絕 ω 並停機。於是M就判定了語言S。
根據上述定理直接可得下述引理:
定理:HALTING 的補語言是圖靈不可識別的。
證明:很顯然 HALTING 是圖靈可識別語言,若它的補語言也是圖靈可識別的, 則根據上述定理知 HALTING 是圖靈可判定的,這和
停機問題中證明的結論矛盾。