Computability
Contents
Algorithms: Turing Machines✔
알고리즘은 문제를 푸는 계산적 방법이다. 계산은 정확하게 명시되어야 하고 독창성이나 천재성이 요구되어서는 안된다.
그러나 다음과 같은 많은 종류의 문제가 알고리즘 해결법을 갖지 않는 것으로 증명되었다.
- 양화 이론의 주어진 wff 가 논리적으로 타당한가?
- 형식적 수론 \(S\) 의 주어진 wff 가 (표준 해석에서) 참인가?
- \(S\) 의 주어진 wff 가 \(S\) 에서 증명가능한가?
- (힐베르트의 10번째 문제) 정수 계수를 갖는 주어진 다항식 \(f(x_1, \dots, x_n)\) 이 정수해를 갖는가?
이 문제를 해결할 알고리즘이 존재하지 않는다는 것을 엄밀하게 증명하기 위해서 알고리즘을 정확하게 정의할 필요가 있었다. 1936년에 처치, 튜링, 포스트에 의하여 이 문제에 대한 각자의 정의가 제시되었다. 그러나 이 정의들은 동등한 것으로 판명되었다. 또한, 모든 절차는 직관적으로 이 알고리즘의 정의에 해당되었다. 이는 알려진 알고리즘이 이들 정의로 표현될 수 있다는 것이다.
여기에서는 튜링의 정의를 알아보자.
Turing machine✔
튜링 기계(Turing machine)
먼저 알고리즘을 다룰 언어를 다음과 같이 정의한다.
- 알고리즘이 다룰 대상은 유한한 알파벳 \(A = \{a_1, \dots, a_n\}\) 의 기호들이라고 가정한다. (비기호적 대상일지라도 유한한 기호를 사용하여 계산하는 언어에 의하여 표현될 수 있다. 가령, 이미지는 행렬로 변환되고, 생각은 문장으로 그리고 벡터로 변환된다.)
- 언어 \(A\) 의 기호의 유한열을 \(A\) 의 단어(word)라고 하자. 아무런 기호로도 구성되어 있지 않은 빈 단어를 \(\Lambda\) 라고 하자. 단어 \(P\) 와 \(Q\) 에 대하여 \(PQ\) 를 \(P\) 오른쪽에 \(Q\) 를 쓴 단어라고 하자. 양의 정수 \(k\) 에 대하여 \(P^k\) 를 단어 \(P\) 를 \(k\)번 연속적으로 쓴 것이라고 하자.
알고리즘을 다룰 공간을 다음과 같이 정의한다.
-
인간이 계산하기 위해서는 보통 공책이나 칠판을 사용하므로 알고리즘의 작업공간을 2차원 공간으로 생각할 수 있다. 그러나 이 공간을 단순화시키면 그것들의 본질인 스퀘어로 나뉘어져있는 1차원 선형 테이프을 얻는다.
테이프는 잠재적으로 무한히 많은 스퀘어를 갖는다. 임의의 시점에서 오직 테이프의 유한한 스퀘어만이 기호를 갖고 있고 나머지 스퀘어는 빈칸으로 남겨진다. (이 1차원 테이프는 알고리즘의 능력을 제한하지 않는다. 2차원 배열에 담긴 정보도 유한열로 인코딩될 수 있다. \(\N\) 의 임의의 튜플과 \(\N\) 사이에 전단사 사상이 존재하기 때문이다.)
이러한 알고리즘의 언어와 공간에서 계산을 수행하는 기계를 모두 튜링 기계라는 개념으로 추상화시키려 한다. 먼저 튜링 기계가 다음과 같은 성질을 갖는다고 정의한다.
- 튜링 기계는 연속적인 시간으로 작동하지 않고 아니라 이산적인 순간마다 작동한다. (모든 연속적으로 작동하는 것처럼 보이는 기계는 이산적인 시간으로 분석되어질 수 있기 때문이다.)
- 튜링 기계가 한 순간에 하나의 스퀘어만을 읽는다고 가정한다. (큰 영역에 대한 관찰은 개별 스퀘어의 연속적인 관찰로 귀결되기 때문이다. 가령, 눈이 사물을 보는 것도 한 시각세포가 하나의 빛의 정보를 받아들여서 종합된 것이다.)
튜링 기계가 특정 스퀘어를 읽었을 때 다음과 같은 리액션을 취한다고 정의한다.
- 기호를 지우고 새로운 기호를 쓰기.
- 오른쪽 스퀘어로 이동.
- 왼쪽 스퀘어로 이동.
- 멈춤.
튜링 기계는 관찰한 기호에 의존할 뿐만 아니라 기계의 내부 상태에도 의존한다. 기계는 유한한 상태 \(\{q_0, \dots, q_m\}\) 를 갖는다. 기계는 반드시 초기 상태 \(q_0\) 에서 시작한다.
기계의 동작은 다음 셋 중 하나의 쿼드러플 형태로 대응된다. \(q_j\) 는 현재 상태, \(q_r\) 은 다음 상태, \(a_i\) 는 읽은 스퀘어이다.
- \(q_ja_ia_kq_r\): 기계가 \(a_i\) 를 지우고 \(a_k\) 를 쓴다.
- \(q_ja_iRq_r\): 기계가 오른쪽 스퀘어로 이동.
- \(q_ja_iLq_r\): 기계가 왼쪽 스퀘어로 이동.
이제 다음과 같이 튜링 기계의 정확한 정의를 내린다.
- 튜링 기계 \(\mathcal{T}\): 테이프 기호 \(\{a_0, \dots, a_n\}\) 의 알파벳 \(A\) 와 내부 상태 \(\{q_0, \dots, q_m\}\) 를 갖는 튜링 기계 \(\mathcal{T}\) 는 두 쿼드러플이 서로 같은 처음 두 기호를 갖지 않는 세 형태의 쿼드러플 \(q_ja_ia_kq_r\), \(q_ja_iRq_r\), \(q_ja_iLq_r\) 의 유한 집합 \(\mathcal{T}\) 이다.
테이프 서술(tape description)
테이프 서술이란 해당 순간에서의 테이프와 기계의 상태를 설명한다. 테이프 서술은 테이프 기호와 상태 기호로 이루어져있는데, 상태 기호 오른쪽에 있는 테이프 기호가 기계가 그 순간에 스캔한 기호이다.
튜링기계 \(\mathcal{T}\) 가 테이프 서술 \(\alpha\) 에서 \(\beta\) 로 이동한다는 것을 다음 중 하나가 참인 것으로 정의하고, \(\alpha \xtwoheadrightarrow[\mathcal{T}]{}\beta\) 로 표기하자. (\(P\) 와 \(Q\) 는 임의의 비어있어도 되는 \(\mathcal{T}\) 의 알파벳의 단어이고, \(a_0\) 는 빈 칸을 뜻한다.)
- \(\alpha\) 가 \(Pq_ja_iQ\) 형태이고, \(\beta\) 가 \(Pq_ra_kQ\) 형태이고, \(q_ja_ia_kq_r\) 가 \(\mathcal{T}\) 의 쿼드러플 중 하나이다.
- \(\alpha\) 가 \(Pa_sq_ja_iQ\) 형태이고, \(\beta\) 가 \(Pq_ra_sa_iQ\) 형태이고, \(q_ja_iLq_r\) 가 \(\mathcal{T}\) 의 쿼드러플 중 하나이다.
- \(\alpha\) 가 \(q_ja_iQ\) 형태이고, \(\beta\) 가 \(q_ra_0a_iQ\) 형태이고, \(q_ja_iLq_r\) 가 \(\mathcal{T}\) 의 쿼드러플 중 하나이다.
- \(\alpha\) 가 \(Pq_ja_ia_kQ\) 형태이고, \(\beta\) 가 \(Pa_iq_ra_kQ\) 형태이고, \(q_ja_iRq_r\) 가 \(\mathcal{T}\) 의 쿼드러플 중 하나이다.
- \(\alpha\) 가 \(Pq_ja_i\) 형태이고, \(\beta\) 가 \(Pa_iq_ra_0\) 형태이고, \(q_ja_iRq_r\) 가 \(\mathcal{T}\) 의 쿼드러플 중 하나이다.
\(\alpha \xtwoheadrightarrow[\mathcal{T}]{}\beta\) 는 튜링 기계가 시간 \(t\) 에서 \(\alpha\) 였고 시간 \(t+1\) 에서 \(\beta\) 라는 것이다.
\(\mathcal{T}\) 가 테이프 서술 \(\alpha\) 에서 멈춘다는 것은 \(\alpha \xtwoheadrightarrow[\mathcal{T}]{}\beta\) 인 \(\beta\) 가 존재하지 않는다는 것이다. 이 상황은 \(\alpha\) 에 \(q_ja_i\) 가 나타났지만 \(q_ja_i\) 가 \(\mathcal{T}\) 의 쿼드러플의 시작으로 나타나지 않을 때 일어난다.
-
예시
테이프 서술이 \(a_2a_0q_1a_0a_1a_1\) 라면 기계의 내부 상태는 \(q_1\) 이고 다음과 같은 화살표가 가르키는 스퀘어를 읽은 상태이다.

Computation✔
계산(computation), 적용가능(applicable)
튜링기계 \(\mathcal{T}\) 의 계산은 다음을 만족하는 \(k \geq 0\) 에 대한 테이프 서술 유한열 \(\alpha _0,\dots ,\alpha _k\) 이다. 이 계산을 \(\alpha_0\) 에서 시작하여 \(\alpha _k\) 에서 끝난다고 한다.
- \(\alpha _0\) 는 초기 테이프 서술이다. 즉, \(\alpha_0\) 의 내부 상태가 \(q_0\) 이다.
- \(0 \leq i < k\) 에 대하여 \(\alpha _i \xtwoheadrightarrow[\mathcal{T}]{}\alpha _{i+1}\)
- \(\mathcal{T}\) 가 \(\alpha _k\) 에서 멈춘다.
\(\alpha_0\) 에서 시작하는 \(\mathcal{T}\) 의 계산이 존재하면 \(\mathcal{T}\) 가 \(\alpha _0\) 에 적용가능하다고 한다.
Algorithm✔
알고리즘(algorithm)
튜링기계 \(\mathcal{T}\) 에 의해 수행되는 알고리즘 \(\operatorname{Alg}_{\mathcal{T}}\) 는 다음과 같이 정의된다.
- \(\mathcal{T}\) 의 알파벳 \(A\) 의 임의의 단어 \(P\) 와 \(Q\) 에 대하여 \(\operatorname{Alg}_{\mathcal{T}}(P) = Q\) 는 테이프 서술 \(q_0P\) 에서 시작하여 \(Q = R_1R_2\) 에 대한 테이프설명 \(R_1q_jR_2\) 로 끝나는 \(\mathcal{T}\) 의 계산이 존재한다는 것이다.
튜링 기계 \(\mathcal{T}\) 에 의해 수행되는 알고리즘 \(\operatorname{Alg}_{\mathcal{T}}\) 를 튜링 알고리즘이라고 한다.
- 이는 \(\mathcal{T}\) 가 \(P\) 의 왼쪽 끝에서 시작하고 그외에 테이프에 아무것도 없다면, \(\mathcal{T}\) 가 결국에는 테이프의 전체 내용으로써 \(Q\) 에서 멈춘다는 의미이다. \(\operatorname{Alg}_{\mathcal{T}}\) 은 특정 단어 \(P\) 의 정의를 필요로 하지 않는다.
Turing Computability✔
부분 함수(partial function)
부분함수는 정의역의 일부분에서 정의되지 않아도 되는 함수의 일반화이다.
-
예시

튜링계산가능한 함수(Turing-computable)
수론적 함수의 계산을 고려하자. \(a_1\) 를 \(|\) 라고 쓰고 \(a_0\), 즉, 빈칸을 \(B\)(blank)라고 쓰자. 임의의 자연수 \(k\) 의 테이프 표현(tape representation) \(\overline{k}\) 를 단어 \(| ^{k+1}\), 즉, \(|\) 이 \(k+1\) 번 반복되는 것으로 정의한다. 자연수 n-튜플 \((k_1, \dots, k_n)\) 의 테이프 표현 \(\overline{(k_1, \dots, k_n)}\) 은 \(\overline{k_1}B \overline{k_2}B \dots B \overline{k_n}\) 라고 정의한다.
튜링 기계 \(\mathcal{T}\) 가 일변수 부분 함수 \(f _{\mathcal{T},1}\) 를 계산한다는 것은 다음과 같이 정의된다.
- \(f _{\mathcal{T},1}(k) = m\) 은 \(\operatorname{Alg}_{\mathcal{T}}(\overline{k})\) 이 정의되고 비어있어도 되는 \(B\) 로 구성된 단어 \(E_1\), \(E_2\) 에 대하여 \(\operatorname{Alg}_{\mathcal{T}}(k) = E_1 \overline{m}E_2\) 인 것과 동치이다.
이때 함수 \(f _{\mathcal{T},1}\) 을 튜링계산가능하다고 한다. 즉, 일변수 부분함수 \(f\) 가 튜링계산가능한 것은 \(f = f _{\mathcal{T},1}\) 인 튜링 기계 \(\mathcal{T}\) 가 존재한다는 것과 동치이다.
각 \(n>1\) 에 대하여 튜링 기계 \(\mathcal{T}\) 가 n변수 부분함수 \(f _{\mathcal{T},n}\) 을 계산한다는 것도 다음과 같이 정의된다.
- 임의의 자연수 \(k_1, \dots, k_n\) 에 대하여 \(f _{\mathcal{T},n}(k_1, \dots, k_n) = m\) 은 \(\operatorname{Alg}_{\mathcal{T}}\overline{((k_1, \dots, k_n))}\) 이 정의되고 비어있어도 되는 \(B\) 로 구성된 단어 \(E_1\), \(E_2\) 에 대하여 \(\operatorname{Alg}_{\mathcal{T}}((k_1, \dots, k_n)) = E_1 \overline{m}E_2\) 인 것과 동치이다.
이러한 부분함수 \(f _{\mathcal{T},n}\) 을 튜링계산가능하다고 한다. 따라서 n변수 부분함수 \(f\) 가 튜링계산가능한 것은 \(f=f _{\mathcal{T},n}\) 인 튜링 기계가 존재한다는 것과 동치이다.
-
가령 \(\overline{0}=|\), \(\overline{1}=||\) 이다. \(\overline{(3,1,0)}\) 은 \(||||B||B|\) 이다.
-
튜링계산가능한 함수의 값의 계산의 끝에 오직 값만이 테이프에 나타나고 양쪽에 빈칸이 있거나 끝테이프가 있고 읽기 헤드의 위치는 상관없다. 함수가 정의되지 않았다면 튜링기계는 멈추지 않거나 결과 테이프가 \(E_1 \overline{m}E_2\) 의 형태에 적절하지 않게 멈춘다.
-
예시
알파벳 \(\{B,|\}\) 을 갖고 \(q_0|Lq_1, q_1B|q_2\) 와 같이 정의된 튜링 기계 \(\mathcal{T}\) 를 잡자. \(q_0 \overline{k} \xtwoheadrightarrow[\mathcal{T}]{}q_1B \overline{k}\xtwoheadrightarrow[\mathcal{T}]{}q_2 \overline{k+1}\) 이고 \(\mathcal{T}\) 가 \(q_2 \overline{k+1}\) 에 멈추므로 \(\mathcal{T}\) 은 다음수 함수 \(N(x)\) 를 계산한다.
그러므로 다음수 함수는 튜링계산가능하다.
-
예시
다음과 같이 정의된 튜링 기계 \(\mathcal{T}\) 는 테이프 위에 주어진 \(\overline{k}\) 의 모든 \(|\) 을 지우고 \(|\) 하나를 쓰고 멈추므로 영함수 \(Z(x)\) 를 계산한다.
\[ q_0|Bq_1, q_1BRq_0, q_0B|q_2 \]그러므로 영함수는 튜링계산가능하다.
-
예시
다음과 같이 정의된 튜링 기계 \(\mathcal{T}\) 는 덧셈 함수를 계산한다.
\[ q_0|Bq_0, q_0BRq_1, q_1|Rq_1, q_1B|q_2, q_2|Rq_2, q_2BLq_3, q_3|Bq_3 \]가령, 주어진 자연수 \(m\) 과 \(n\) 에 대하여 다음과 같이 덧셈 계산을 수행하고, \(B \overline{m+n}q_3BB\) 에서 멈추게 된다.
\[ \begin{align}\begin{split} q_0\overline{(m,n)}&= q_0|^{m+1}B|^{n+1} \xtwoheadrightarrow[\mathcal{T}]{} q_0 B| ^{m}B| ^{n+1} \xtwoheadrightarrow[\mathcal{T}]{} Bq_1 | ^{m}B| ^{n+1} \\ &\xtwoheadrightarrow[\mathcal{T}]{}\dots \xtwoheadrightarrow[\mathcal{T}]{}B|^{m}q_1B|^{n+1}\xtwoheadrightarrow[\mathcal{T}]{}B|^{m}q_2||^{n+1}\xtwoheadrightarrow[\mathcal{T}]{}\dots \\ & \xtwoheadrightarrow[\mathcal{T}]{}B|^{m}|^{n+2}q_2B \xtwoheadrightarrow[\mathcal{T}]{}B | ^{m+n+1}q_3|B \\ & \xtwoheadrightarrow[\mathcal{T}]{} B | ^{m+n+1}q_3BB = B \overline{m+n}q_3BB \\ \end{split}\end{align} \tag*{} \]
문제 5.7
함수 \(f\) 가 튜링계산가능하면, \(f\) 는 무한히 많은 다른 튜링 기계에 의하여 계산가능하다.
- 증명
Diagrams✔
곱셈 같은 간단한 함수를 계산하는 튜링 기계라 할지라도 쿼드러플 리스트가 꽤 복잡해진다. 이러한 기계를 구성하는 일은 지루하다. 이에 따라 튜링 기계를 구성하는 쉬운 방법이 개발되었다.
다이어그램(diagram)
다음과 같이 구성되는 그래프를 다이어그램이라고 한다.
- 알파벳 \(A = \{a_0, \dots, a_k\}\) 를 갖는 임의의 튜링 기계 \(\mathcal{T}_1,\dots ,\mathcal{T}_r\) 을 잡자.
- 평면 안의 점들의 유한 집합을 잡자. 이 점을 정점(vertex)이라고 한다.
- 각 정점에 기계의 이름 \(\mathcal{T}_1,\dots ,\mathcal{T}_r\) 중 하나를 붙이자.
- 정점을 다른 정점으로 화살로 연결하자. 각 화살은 수 \(0, \dots, k\) 중 하나로 라벨링된다. 이때 같은 정점에서 나온 화살표는 같은 라벨을 가질 수 없다.
- 원으로 둘러싸인 정점을 초기 정점(initial vertex)라고 한다.
-
예시

다이어그램으로 정의되는 튜링 기계
모든 다이어그램은 다음과 같은 방식으로 연산이 표현되는 튜링 기계를 결정할 수 있다.
- 주어진 테이프와 테이프 위의 특정 스퀘어에 대하여 다이어그램의 초기 정점 \(V\) 의 튜링 기계는 특정 스퀘어를 읽음으로써 연산을 시작한다.
- 이 기계가 멈추고 마지막 계산에서 스캔한 스퀘어의 기호가 \(a_i\) 라면, 라벨이 \(i\) 인 화살표를 찾는다. 만약 이 화살표가 없다면 계산은 멈춘다. 이 화살표가 있다면 이전의 계산에 의하여 생성된 테이프 위에서 해당 기계를 시작한다.
- 이 절차를 기계가 멈출 때까지 반복한다. 결과 테이프는 다이어그램에 의하여 결정된 기계의 출력이다. 이 기계가 멈추지 않으면 이것은 초기 테이프 서술에 적용 불가능한 것이다.
이러한 튜링 기계에 대한 쿼드러플을 다음과 같이 정의한다.
- 다이어그램에서 기계 \(\mathcal{T}_i\) 마다 두 기계가 서로 같은 내부 상태를 갖지 않도록 내부 상태를 바꿔서 그것의 쿼드러프를 쓴다. 초기 정점 기계는 수정하지 않아도 된다. \(q_0\) 가 초기 내부 상태가 되도록 유지해야 하기 때문이다. 다른 모든 기계는 초기 상태 \(q_0\) 를 새로운 상태로 수정해야 한다.
- 기계 \(\mathcal{T}_i\) 가 화살 \(\xrightarrow{u}\) 에 의하여 \(\mathcal{T}_j\) 에 연결되었다고 하자. 그러면, \(\mathcal{T}_i\) 의 모든 새로운 내부 상태 \(q_s\) 에 대하여 \(q_sa_u\) 로 시작하는 쿼드러플이 없다면, \(\mathcal{T}_j\) 의 새로운 내부 상태 \(q_t\) 로 연결되도록 쿼드러플 \(q_sa_ua_uq_t\) 를 추가해준다. 이로써 \(\mathcal{T}_i\) 가 \(q_u\) 를 스캔하고 멈추면 \(\mathcal{T}_j\) 가 시작될 수 있다.
-
편의상, 다이어그램에 대하여 다음과 같이 표기한다.
- 한 정점이 다른 정점과 모든 화살 \(\xrightarrow{0}, \xrightarrow{1},\dots ,\xrightarrow{k}\) 로 연결되었다면 화살을 라벨이 없는 화살로 바꾼다.
- 한 정점이 다른 정점과 화살 \(\xrightarrow{u}\) 을 제외하고 다른 모든 화살과 연결되었다면 \(\xrightarrow{\neq u}\) 라고 표기한다.
- \(\mathcal{T}_1 \to \mathcal{T}_2\) 를 \(\mathcal{T}_1 \mathcal{T}_2\) 로 표기하고, \(\mathcal{T}_1 \to \mathcal{T}_2 \to \mathcal{T}_3\) 를 \(\mathcal{T}_1 \mathcal{T}_2 \mathcal{T}_3\) 로 표기한다. \(\mathcal{T}\mathcal{T}\) 를 \(\mathcal{T}_2\) 로 표기하고, \(\mathcal{T}\mathcal{T}\mathcal{T}\) 를 \(\mathcal{T}^{3}\) 으로 표기한다.
- 원형 정점이 없다면 가장 왼쪽의 정점이 초기 정점이다.
튜링 기계 블록
다이어그램을 구성하기 위한 빌딩 블록으로 알파벳 \(\{a_0, \dots, a_k\}\) 에 대한 다음과 같은 간단한 튜링 기계를 정의한다.
- \(\mathbf{r}\)(right machine): 모든 \(a_i\) 에 대한 쿼드러플 \(q_0a_iRq_1\) 으로 구성된다. 이 기계는 한 칸 오른쪽으로 움직이고 멈춘다.
- \(\mathbf{l}\)(left machine): 모든 \(a_i\) 에 대한 쿼드러플 \(q_0a_iLq_1\) 으로 구성된다. 이 기계는 한 칸 왼쪽으로 움직이고 멈춘다.
- \(\mathbf{a}_j\)(constant machine): 모든 \(a_i\) 에 대한 쿼드러플 \(q_0a_ia_jq_1\) 으로 구성된다. 이 기계는 처음 스캔된 기호를 \(a_j\) 로 바꾸고 멈춘다.
이러한 기초 기계를 기반으로 다음과 같은 기계를 정의한다.
| 기계 | 정의 | 다이어그램 |
|---|---|---|
| \(\enspace \mathbf{P} \enspace\) | 첫 스캔된 스퀘어의 오른쪽으로 첫 빈칸을 찾는다. 알파벳 \(\{a_0, \dots, a_k\}\) 에 대하여 \(\mathbf{P}\) 의 쿼드러플은 모든 \(a_i\) 에 대한 \(q_0a_iRq_1\) 과 모든 \(a_i \neq a_0\) 에 대한 \(q_1a_ia_iq_0\) 이다. | ![]() |
| \(\enspace \Lambda \enspace\) | 첫 스캔된 스퀘어의 왼쪽으로 첫 빈칸을 찾는다. | ![]() |
| \(\enspace \rho \enspace\) | 첫 스캔된 스퀘어의 오른쪽으로 첫 빈칸이 아닌 스퀘어를 찾는다. | ![]() |
| \(\enspace \lambda \enspace\) | 첫 스캔된 스퀘어의 왼쪽으로 첫 빈칸이 아닌 스퀘어를 찾는다. | ![]() |
주요 튜링 기계들
튜링 기계를 쉽게 표기하기 위하여 다음과 같이 정의한다.
- \(\ssim\): 임의의 기호
- \(B \dots B\): 빈칸의 열
- \(B \dots\): 빈칸 우측의 모든 것
- \(\dots B\): 빈칸 좌측의 모든 것
- \(W\): 빈칸이 아닌 기호로 구성된 비어있지 않은 단어
- \(X\): \(n \geq 1\) 에 대한 \(W_1BW_2B \dots W_n\) (빈칸으로 분리된 \(W\) 열)
- 밑줄 표시된 기호는 스캔된 기호이다.
| 기계 | 정의 | 다이어그램 |
|---|---|---|
| \(\mathcal{R}\)(right-end machine) | \(\underline{\ssim } XBB \implies \ssim X \underline{B}B\) | ![]() |
| \(\mathcal{L}\)(left-end machine) | \(BBX \underline{\ssim } \implies B \underline{B}X \ssim\) | ![]() |
| \(\mathbf{T}\)(left- translation machine) | \(\underline{\ssim } BWB \implies \ssim W \underline{B}B\) | ![]() |
| \(\sigma\)(shift machine) | \(BW_1BW_2 \underline{B}\implies BW_2 \underline{B}\dots B\) (\(W_1\) 을 지우고 \(W_2\) 를 \(W_1\) 의 위치로 옮긴다.) | ![]() |
| \(\mathbf{C}\)(clean-up machine) | \(\ssim BBXBW \underline{B}\implies \\ \ssim W \underline{B}\dots B\) (\(X\) 를 지운다.) | ![]() |
| \(\mathbf{K}\)(word-copier) | \(BW \underline{B} \dots \implies BWBW \underline{B}\dots\) | ![]() |
| \(\mathbf{K} _n\)(n-shift copier) | \(BW_nBW _{n-1}B \dots W_1 \underline{B} \dots \implies \\ BW_nBW _{n-1}B \dots W_1BW_n \underline{B}\dots\) | ![]() |
Partial Recursive Functions: Unsolvable Problems✔
제한되지 않은 \(\mu\)-연산자(unrestricted \(\mu\)-operator)
\(f\) 가 다음을 만족하면 제한되지 않은 \(\mu\)-연산자에 의하여 \(g\) 로부터 얻어졌다고 한다.
-
제한된 \(\mu\)-연산자는 함수 \(g(x_1, \dots, x_n, y)\) 가 임의의 \(x_1, \dots, x_n\) 에 대한 최소한 하나의 \(y\) 가 존재하여 \(g(x_1, \dots, x_n, y)=0\) 을 만족해야 한다는 조건이 있었다. 그러나 제한되지 않은 \(\mu\)-연산자에서는 이러한 조건이 없으므로 제한되지 않았다고 말한다.
그러므로 어떤 \(x_1, \dots, x_n\) 에 대하여 \(f(x_1, \dots, x_n)\) 이 정의되지 않을 수도 있다. 즉, \(g(x_1, \dots, x_n,y)= 0\) 을 만족하는 \(y\) 가 존재하지 않을 수도 있다.
Partial Recursiveness✔
부분 재귀 함수(partial recursive)
초기 함수에서 유한한 수의 치환, 재귀, 제한되지 않은 \(\mu\)-연산자에 의하여 얻어진 함수이다.
-
재귀 함수의 정의에서 제한된 \(\mu\)-연산자를 제한되지 않은 \(\mu\)-연산자로 바꾸면 부분 재귀 함수를 얻는다. 따라서 모든 재귀 함수가 전함수(total function)인데 비해 부분 재귀 함수는 부분 함수(partial function)이다.
-
예시
\(\mu y(x + y) = 0\) 은 오직 \(x = 0\) 에서만 정의된다. 그 외의 경우 음수가 발생하므로 \(\N\) 의 영역을 벗어난다.
-
이렇게 부분 재귀 함수가 특정 인자에 대하여 정의되지 않을 수도 있으므로 제한되지 않은 \(\mu\)-연산자를 다음과 같이 정의하면 더 정확하다.
\(\mu y(g(x_1, \dots, x_n,y) = 0) = k\) 라는 것은 \(0 \leq u<k\) 에 대하여 \(g(x_1, \dots, x_n,u)\) 가 정의되고 \(g(x_1, \dots, x_n, u) \neq 0\) 이고 \(g(x_1, \dots, x_n, k) = 0\) 라는 것이다. -
\(R(x_1, \dots, x_n, y )\) 가 재귀 관계이면 \(\mu y(R(x_1, \dots, x_n,y))\) 도 제한되지 않은 \(\mu\)-연산자의 적절한 적용이라고 생각할 수 있다.
실제로 \(R\) 의 특성함수 \(C_R\) 에 대하여 \(\mu y(R(x_1, \dots, x_n,y)) = \mu y(C_R(x_1, \dots, x_n,y) = 0)\) 이다. \(R\) 이 재귀관계이므로 정의에 의하여 \(C_R\) 은 재귀 함수이다.
문제 5.15
재귀 함수는 부분 재귀이다.
- 증명
Standard Turing-Computable✔
표준 튜링계산가능한(standard turing-computable)
부분 수론적 함수 \(f(x_1, \dots, x_n)\) 가 표준 튜링계산가능하다는 것은 임의의 자연수 \(k_1, \dots, k_n\) 에 대하여 다음을 만족하는 튜링 기계 \(\mathcal{T}\) 가 존재한다는 것이다.
-
\(B \overline{k_1}B \overline{k_2} B \dots B \overline{k_n}\) 을 인자띠(argument strip)라고 하자.(일변수 함수에서 인자띠는 \(B \overline{k_1}\) 가 된다.) 이 인자띠는 \(B \overline{(k_1, \dots, k_n)}\) 이다. 이 인자띠를 포함하고 그 오른쪽에는 아무것도 없는 테이프를 잡자. 기계 \(\mathcal{T}\) 는 이 테이프 위에서 시작하고 \(\overline{k_1}\) 의 첫 \(|\) 을 스캔함으로써 시작된다. 그러면 다음이 성립한다.
- \(\mathcal{T}\) 가 멈춘다는 것은 \(f(k_1, \dots, k_n)\) 가 정의된 것과 동치이다.
-
\(\mathcal{T}\) 가 멈추면, 테이프는 \(B \overline{f(k_1, \dots, k_n)}\) 가 뒤따르는 이전 인자띠를 포함한다. 즉, 최종 테이프는 다음과 같다.
\[ B \overline{k_1}B \overline{k_2} B \dots B \overline{k_n}B \overline{f(k_1, \dots, k_n)} \] -
읽기 헤더는 \(\overline{f(k_1, \dots, k_n)}\) 의 첫 \(|\) 를 스캔하고 있다.
- \(\overline{f(k_1, \dots, k_n)}\) 의 오른쪽으로는 빈칸밖에 없다.
- 전체 계산동안 읽기 헤더는 인자띠의 왼쪽을 스캔하지 않는다.
\(\mathcal{T}\) 가 위와 같으면 편의상 함수 \(f(x_1, \dots, x_n)\) 를 ST-계산한다(ST-compute)라고 말한다.
-
모든 부분 재귀 함수 \(f(x_1, \dots, x_n)\) 는 \(f\) 가 정의되었을 때 그것을 계산하고 \(f\) 가 정의되지 않았을 때 아무런 결과를 내놓지 않는 알고리즘이 존재하고 관점에서 계산가능하다. 이 성질은 초기 함수와 치환, 재귀, 제한되지 않은 \(\mu\)-연산자의 연산으로부터 상속된다. 사실, 부분 재귀 함수가 튜링계산가능한 함수와 동치이다. 이 사실을 보이기 위해 표준 튜링계산가능성의 개념을 정의해야 한다.
-
따라서 표준 튜링 계산가능성에 대한 요구사항은 원래의 인자가 보존되어야 한다는 것, 기계가 멈춘다는 것은 주어진 인자에 대한 함수가 정의된다는 것과 동치라는 것, 기계가 인자띠 위에서 또는 오른쪽에서 동작한다는 것이다. 특히, 인자띠 왼쪽 부분은 변하지 않는다.
정리 5.1
표준 튜링계산가능한 함수는 튜링계산가능하다.
-
증명
\(\mathcal{T}\) 가 부분 함수 \(f(x_1, \dots, x_n)\) 를 ST-계산하는 튜링 기계라고 하면 \(f\) 는 튜링기계 \(\mathcal{T}\mathbf{P}\mathbf{C}\) 에 의하여 튜링계산가능하다. ■
정리 5.2
부분 재귀 함수는 표준 튜링계산가능하다.
-
증명
(초기함수) 영함수 \(Z(x)\), 다음수 함수 \(N(x)\), 사영함수 \(U _{i}^{n}(x_1, \dots, x_n) = x_i\) 는 각각 \(\mathbf{P}\mathbf{r} \mathbf{a} _1\), \(\mathbf{P}\mathbf{K}\mathbf{a} _1 \Lambda \mathbf{r}\), \(\mathcal{R}\mathbf{K}_{n-i+1}\Lambda \mathbf{r}\) 에 의하여 ST-계산가능하다. ▲
(치환) \(f(x_1, \dots, x_n) = g(h_1(x_1, \dots, x_n), \dots ,h_m(x_1, \dots, x_n))\) 라고 하자. \(\mathcal{T}\) 가 \(g\) 를 ST-계산하고 \(\mathcal{T}_j\) 가 \(1 \leq j \leq m\) 에 대하여 \(h_j\) 를 ST-계산한다고 하자. \(\mathcal{S}_j\) 를 기계 \(\mathcal{T}_j \mathbf{P}\sigma ^{n}(\mathbf{K} _{n+j})^{n}\Lambda ^{n} \mathbf{r}\) 이라고 하자. \(f\) 는 다음 기계에 의하여 ST-계산된다.
\[ \mathcal{T}_1 \mathbf{P}(\mathbf{K} _{n+1})^{n}\Lambda ^{n} \mathbf{r} \mathcal{S}_2 \mathcal{S}_3 \dots \mathcal{S}_{m-1} \mathcal{T}_m \mathbf{P}\sigma ^{n}\Lambda ^{m}\mathbf{r}\mathcal{T}\mathbf{P}\sigma ^{m}\Lambda \mathbf{r} \](ST-계산가능성의 이점은 \(\overline{x}_1, \dots , \overline{x}_n, h_1(x_1, \dots, x_n), \dots ,h_i(x_1, \dots, x_n)\) 를 테이프에 저장할 때 테이프의 오른쪽에 \(\overline{(x_1, \dots, x_n)}\) 를 두고 \(h _{i+1}(x_1, \dots, x_n)\) 를 계산할 때 저장된 것의 왼쪽에 무엇이 있든 신경쓰지 않아도 된다는 것이다.) ▲
(재귀) 다음과 같이 \(f\) 를 잡자.
\[ f(x_1, \dots, x_n, 0) = g(x_1, \dots, x_n) \]\[ f(x_1, \dots, x_n, y+1) = h(x_1, \dots, x_n, y, f(x_1, \dots, x_n, y)) \]\(\mathscr{T}\) 가 \(g\) 를 ST-계산하고 \(\mathscr{S}\) 가 \(h\) 를 ST-계산한다고 하자. 그러면 다음의 기계가 \(f\) 를 ST-계산한다.

▲
(제한되지 않은 \(\mu\)-연산자) \(f(x_1, \dots, x_n) = \mu y(g(x_1, \dots, x_n, y) = 0)\) 라고 두고 \(\mathcal{T}\) 가 \(g\) 를 ST-계산한다고 하자. 다음의 기계가 \(f\) 를 ST-계산한다.

■
따름정리 5.3
부분 재귀 함수는 튜링계산가능하다.
-
증명
정리 5.1 과 5.2 의 따름정리이다. ■
Arithmetization of language of Turing computability✔
튜링계산가능성의 언어의 산술화
다음과 같이 기호를 산술화한다. 그러므로 모든 기호는 홀수 괴델수를 갖는다.
| \(R\) | \(L\) | \(a_i\) | \(q_i\) |
|---|---|---|---|
| \(3\) | \(5\) | \(7 + 4i\) | \(9 + 4i\) |
유한 기호열을 표현식(expression)이라고 하자. 유한 기호열인 표현식 \(u_0, \dots, u_k\) 은 소수 \(p_0, p_1, \dots\)(\(2,3, \dots\)) 와 \(u_i\) 의 괴델수 \(g(u_i)\) 에 대하여 괴델수 \(p _{0}^{g(u_0)}p _{1}^{g(u_1)}\dots p _{k}^{g(u_k)}\) 를 부여받는다.
표현식 \(E_0, \dots, E_m\) 의 유한열에 괴델수 \(p _{0}^{g(E_0)}p _{1}^{g(E_1)}\dots p _{m}^{g(E_m)}\) 을 부여한다.
-
표현식의 유한열의 괴델수 부여는 튜링 기계의 유한열에 괴델수를 부여하고 테이프 서술의 유한열에 괴델수를 부여한다.
-
표현식의 괴델수는 짝수이고, 그러므로 홀수인 기호의 괴델수와는 다르다.
표현식의 유한열의 괴델수는 \(p_0=2\) 로써 짝수 지수의 짝수를 갖고, 그러므로 홀수 지수의 짝수를 갖는 표현식의 괴델수와는 다르다.
-
예시
\(a_0\) 인 빈칸 \(B\) 은 괴델수 \(7\) 을 부여받고, \(a_1\) 인 \(|\) 은 괴델수 \(11\) 를 부여받는다.
표현식인 쿼드러플 \(q_0a_0a_1q_0\) 은 괴델수 \(2 ^{9}3 ^{7} 5 ^{11} 7 ^{9}\) 를 부여받는다.
-
\(x\) 가 유한열 \(w_0, \dots, w_k\) 의 괴델수 \(x = p _{0}^{g(w_0)}p _{1}^{g(w_1)}\dots p _{k}^{g(w_k)}\) 라면 다음이 성립한다.
\[ \operatorname{lh}(x) = k + 1 \]\[ (x)_j = g(w_j) \]\(y\) 가 유한열 \(v_0, \dots, v_m\) 의 괴델수라면 \(x * y\) 는 \(w_0, \dots, w_k, v_0, \dots, v_m\) 의 괴델수이다.
정리 5.4
다음 수론적 관계와 함수는 원시 재귀이다.
-
\(\operatorname{IS}(x)\): \(x\) 는 내부 상태 기호 \(q_u\) 의 괴델수이다.
\[ (\exists u)_{u<x}(x = 9 + 4u) \] -
\(\operatorname{Sym}(x)\): \(x\) 는 알파벳 기호 \(a_u\) 의 괴델수이다.
\[ (\exists u)_{u<x}(x = 7 + 4u) \] -
\(\operatorname{Quad}(x)\): \(x\) 는 튜링기계 쿼드러플의 괴델수이다.
\[ \operatorname{lh}(x) = 4 \land \operatorname{IS}((x)_0) \land \operatorname{Sym}((x)_1) \land \operatorname{IS}((x)_3) \land \\ [\operatorname{Sym}((x)_2) \lor (x)_2 = 3 \lor (x)_2 = 5] \] -
\(\operatorname{TM}(x)\): \(x\) 는 튜링기계(적절한 쿼드러플의 유한열)의 괴델수이다.
\[ \begin{align}\begin{split} &(\forall u)_{u < \operatorname{lh}(x)}\operatorname{Quad}((x)_u) \land x > 0 \land \\ &(\forall u)_{u < \operatorname{lh}(x)}(\forall v)_{v < \operatorname{lh}(x)}(u \neq v \implies \\ & \qquad [((x)_u)_0 \neq ((x)_v)_0 \lor ((x)_u)_1 \neq ((x)_v)_1])\\ \end{split}\end{align} \tag*{} \] -
\(\operatorname{TD}(x)\): \(x\) 는 테이프 서술의 괴델수이다.
\[ \begin{align}\begin{split} &x > 1 \land (\forall u)_{u < \operatorname{lh}(x)}[\operatorname{IS}((x)_u) \lor \operatorname{Sym}((x)_u)] \\ & \land (\exists _1u)_{u < \operatorname{lh}(x)}\operatorname{IS}((x)_u) \\ &\land (\forall u)_{u<\operatorname{lh}(x)}(\operatorname{IS}((x)_u) \implies u+1 < \operatorname{lh}(x)) \\ \end{split}\end{align} \tag*{} \] -
\(\operatorname{Cons}(x, y, z)\); \(x\) 와 \(y\) 는 각각 테이프 서술 \(\alpha\) 와 \(\beta\) 의 괴델수이고, \(z\) 는 \(\alpha\) 를 \(\beta\) 로 변환하는 튜링기계 쿼드러플의 괴델수이다.
\[ \begin{align} & \operatorname{TD}(x) \land \operatorname{TD}(y) \land \operatorname{Quad}(z) \land (\exists w)_{w < \operatorname{lh}(x) \dotdiv 1}[\operatorname{IS}((x)_w)\\ & \land (x)_w = (z)_0 \land (x) _{w+1} = (z)_1 \land \\ & \text{I}\begin{cases} ([\operatorname{Sym}((z)_2) \land (y) _{w+1} = (z)_2 \land (y)_w = (z)_3 \land \operatorname{lh}(x) = \operatorname{lh}(y) &\\ \land (\forall u)_{u< \operatorname{lh}(x)}(u \neq w \land u \neq w + 1 \implies (x)_u = (y)_u)] \lor &\\ \end{cases} \\ & \text{II} \begin{cases} &[(z)_2 = 3 \land (y)_w = (x) _{w+1} \land (y) _{w+1} = (z)_3 \land \\ &(\forall u)_{u < \operatorname{lh}(x)}(u \neq w \land u \neq w + 1 \implies (y)_u = (x)_u ) \land \\ & ([w + 2 < \operatorname{lh}(x) \land \operatorname{lh}(y) = \operatorname{lh}(x)] \lor [w + 2 = \operatorname{lh}(x) \land \\ & \operatorname{lh}(y) = \operatorname{lh}(x) + 1 \land (y) _{w+2} = 7])] \lor \\ \end{cases} \\ & \text{III}\begin{cases} & [(z)_2 = 5 \land \{[w \neq 0 \land (y) _{w \dotdiv 1} = (z)_3 \land (y)_w = (x) _{w \dotdiv 1}\\ & \land \operatorname{lh}(y) = \operatorname{lh}(x) \land (\forall u)_{u < \operatorname{lh}(x)}(u \neq w \dotdiv 1 \land u \neq w \implies \\ & (y)_u = (x)_u)] \lor [w = 0 \land (y)_0 = (z)_3 \land (y)_1 = 7 \land \\ & \operatorname{lh}(y) = \operatorname{lh}(x) + 1 \land (\forall u) _{0 < u < \operatorname{lh}(x)}(y) _{u+1} = (x)_u] \}])] \\ \end{cases} \\ \end{align} \]\(\text{I}\) 는 쿼드러플 \(q_ja_ia_kq_r\), \(\text{II}\) 는 쿼드러플 \(q_ja_iRq_r\), \(\text{III}\) 는 쿼드러플 \(q_ja_iLq_r\) 에 대응된다.
-
\(\operatorname{NTD}(x)\): \(x\) 는 숫자 테이프 서술의 괴델수이다. 숫자 테이프 서술이란 비어있거나 빈칸으로 구성된 \(E_1\) 과 \(E_2\) 에 대한 \(E_1 \overline{k}E_2\) 의 형태를 갖는 테이프와 임의의 헤드 위치를 갖는 테이프 설명이다.
\[ \begin{align}\begin{split} &\operatorname{TD}(x) \land (\forall u)_{u < \operatorname{lh}(x)} (\operatorname{Sym}((x)_u) \implies (x)_u = 7 \lor (x)_u = 11) \\ & \land (\forall u)_{u< \operatorname{lh}(x)}(\forall v)_{v < \operatorname{lh}(x)}(\forall w)_{w < \operatorname{lh}(x)}(u < v \land v < w \land (x)_u = 11 \land \\ & (x)_w = 11 \implies (x)_v \neq 7) \land (\exists u) _{u< \operatorname{lh}(x)} ((x)_u = 11) \end{split}\end{align} \tag*{} \] -
\(\operatorname{Stop}(x, z)\): \(z\) 는 튜링 기계 \(\mathcal{T}\) 의 괴델수이고 \(x\) 는 \(\alpha\) 에서 \(\mathcal{T}\) 가 멈추는 테이프 서술 \(\alpha\) 의 괴델수이다.
\[ \begin{align}\begin{split} \operatorname{TM}(z) \land \operatorname{TD}(x) \land \lnot (\exists u) _{u<\operatorname{lh}(x)} &[\operatorname{IS}((x)_u) \land (\exists v)_{v < \operatorname{lh}(z)}(((z)_v)_0 \\ & = (x)_u \land ((z)_v)_1 = (x) _{u+1})]\\ \end{split}\end{align} \tag*{} \] -
\(\operatorname{Comp}(y, z)\): \(z\) 는 튜링 기계 \(\mathcal{T}\) 의 괴델수이고, \(y\) 는 \(\mathcal{T}\) 의 계산의 괴델수이다.
\[ \begin{align}\begin{split} &y>1 \land \operatorname{TM}(z) \land (\forall u)_{u < \operatorname{lh}(y)}\operatorname{TD}((y)_u) \land \operatorname{Stop}((y) _{\operatorname{lh}(y) \dotdiv 1}, z) \land \\ & (\forall u)_{u < \operatorname{lh}(y) \dotdiv 1}(\exists w)_{w < \operatorname{lh}(z)}\operatorname{Cons}((y)_u, (y)_{u+1}, (z)_w) \land \\ & (\forall v) _{v < \operatorname{lh}((y)_0)} (\operatorname{IS}(((y)_0)_v) \implies ((y)_0)_v = 9) \\ \end{split}\end{align} \tag*{} \] -
\(\operatorname{Num}(x)\): 단어 \(\overline{x}\), 즉, \(| ^{x+1}\) 의 괴델수.
\[ \operatorname{Num}(x) = \prod_{u \leq x}^{}p _{u}^{11} \] -
\(\operatorname{TR}(x_1, \dots, x_n)\): n-튜플 \((x_1, \dots, x_n)\) 의 테이프 서술 \(\overline{(x_1, \dots, x_n)}\) 의 괴델수.
\[ \operatorname{TR}(x_1, \dots, x_n) = \operatorname{Num}(x_1) * 2 ^{7} * \\ \operatorname{Num}(x_2) * 2 ^{7} * \dots * 2 ^{7} * \operatorname{Num}(x_n) \] -
\(U(y)\): \(y\) 가 숫자 테이프 서술의 계산의 괴델수이면 \(U(y)\) 는 최종 테이프에서 표현되는 수이다. 가정이 성립하지 않아도 \(U(y)\) 가 정의는 되지만 그 값은 의미없다.
\[ U(y) = \left[ \sum_{u < \operatorname{lh}((y) \operatorname{lh}(y) \dotdiv 1)}^{} \overline{\operatorname{sg} }(|((y) _{\operatorname{lh}(y) \dotdiv 1})_u - 11) \right] \dotdiv 1 \]최종 테이프에서 \(| ^{w+1}\) 에 의하여 표현되는 수를 \(w\) 라고 하자. \(U(y)\) 의 계산은 최종 테이프에서 나타는 모든 \(|\) 을 센다. 이는 합 \(w+1\) 이 되고 마지막에 \(1\) 을 빼서 \(w\) 를 얻는다.
-
\(T_n(z, x_1, \dots, x_n, y)\): \(y\) 는 계산이 테이프 \((x_1, \dots, x_n)\) 에서 \(\overline{x_1}\) 의 첫 \(|\) 를 스캔하는 것으로 시작하여 숫자 테이프 서술로 끝나는 괴델수 \(z\) 의 튜링기계의 계산의 괴델수이다.
\[ \operatorname{Comp}(y, z) \land (y)_0 = 2 ^{9} * \operatorname{TR}(x_1, \dots, x_n) \land \operatorname{NTD}((y)_{\operatorname{lh}(y) \dotdiv 1}) \]\(n=1\) 일 때 \(\operatorname{TR}(x_1, \dots, x_n)\) 를 \(\operatorname{Num}(x_1)\) 으로 바꾼다. (\(T_n(z, x_1, \dots, x_n, y_1)\) 이고 \(T_n(z, x_1, \dots, x_n, y_2)\) 이면 \(y_1 = y_2\) 이다.)
-
증명
원시 재귀성의 증명은 정리 3.18 과 다양한 원시 관계와 함수를 사용하면 된다.
정리 5.5
\(\mathcal{T}\) 가 수론적 함수 \(f(x_1, \dots, x_n)\) 를 계산하는 튜링 기계이고 \(e\) 가 \(\mathcal{T}\) 의 괴델수이면 다음이 성립한다.
-
두 부분함수의 동등성은 이것들 중 하나가 정의되면 다른 하나도 정의되고 두 함수가 같은 값을 갖는다는 것이다.
-
증명
임의의 자연수 \(k_1, \dots, k_n\) 에 대하여 \(\mathcal{T}\) 가 \(f\) 를 계산하므로 \(f(k_1, \dots, k_n)\) 가 정의되는 것은 \((\overline{k_1, \dots, k_n})\) 에서 시작하여 숫자 테이프 서술로 끝나는 계산이 존재한다, 즉, \((\exists y)T_n(e, k_1, \dots, k_n, y)\) 와 동치이다. 따라서 \(f(k_1, \dots, k_n)\) 가 정의되는 것은 \(\mu yT_n(e, k_1, \dots, k_n, y)\) 가 정의되는 것과 동치이다.
\(f(k_1, \dots, k_n)\) 가 정의되었을 때 \(U(\mu yT_n(e, k_1, \dots, k_n, y))\) 은 \(f(k_1, \dots, k_n)\) 의 계산에 의한 값이다. ■
따름정리 5.6
튜링계산가능한 함수는 부분 재귀이다.
-
증명
\(f(x_1, \dots, x_n)\) 가 괴델수 \(e\) 의 튜링 기계에 의하여 튜링계산가능하다고 하면, 정리 5.5 에 의하여 \(f(x_1, \dots, x_n) = U(\mu yT_n(e, x_1, \dots, x_n, y))\) 이다.
정리 5.4 에 의하여 \(T_n\) 이 원시 재귀이므로 \(\mu yT_n(e, x_1, \dots, x_n, y)\) 는 부분 재귀이다. 따라서 \(U(\mu yT_n(e, x_1, \dots, x_n, y))\) 는 부분 재귀이다. ■
Turing Computability = Partial Recursiveness✔
따름정리 5.7
튜링계산가능한 함수는 부분 재귀 함수과 동일하다.
-
증명
따름정리 5.6 과 따름정리 5.3 에서 바로 나온다. ■
따름정리 5.8
전 부분 재귀(total partial recursive) 함수는 재귀이다.
-
증명
전 부분 재귀 함수 \(f(x_1, \dots, x_n)\) 가 괴델수 \(e\) 의 튜링 기계에 의하여 계산가능하다고 하자. 그러면 모든 \(x_1, \dots, x_n\) 에 대하여 \((\exists y)T_n(e, x_1, \dots, x_n, y)\) 이다. 그러므로 제한된 \(\mu\)-연산자를 적용하여 \(\mu yT_n(e, x_1, \dots, x_n, y)\) 를 얻을 수 있고, 그러므로 이는 재귀이다. 따라서 \(U(\mu yT_n(e, x_1, \dots, x_n, y))\) 또한 재귀이다. 이제 정리 5.5 를 사용하면 된다. ■
따름정리 5.9
임의의 전 수론적(total number-theoretic) 함수 \(f\) 에 대하여 \(f\) 가 재귀인 것은 \(f\) 가 튜링계산가능한 것과 동치이다.
-
증명
따름정리 5.7, 5.8 과 문제 5.15 에서 바로 나온다. ■
따름정리 5.10
수론적 함수가 튜링계산가능한 것과 표준 튜링계산가능한 것은 동치이다.
-
증명
정리 5.1, 따름정리 5.6, 정리 5.2 에서 바로 나온다. ■
Kleene's Normal Form Theorem✔
따름정리 5.11 클레이니의 표준형 정리(Kleene's Normal Form Theorem)
모든 자연수에 대하여 \(z\) 를 변화시키면, \(U(\mu yT_n(z, x_1, \dots, x_n, y))\) 가 모든 \(n\)변수 부분 재귀 함수를 나열한다.
-
증명
따름정리 5.3 에 의하여 부분 재귀 함수 \(f\) 는 튜링계산가능므로 \(f\) 를 계산가는 튜링 기계 \(\mathcal{T}\) 와 \(\mathcal{T}\) 의 괴델수 \(e\) 에 대하여 정리 5.5 에 의하여 다음이 성립한다.
\[ f(x_1, \dots, x_n) = U(\mu yT_n(e, x_1, \dots, x_n, y)) \]\(f\) 가 튜링계산가능하므로 문제 5.7 에 의하여 \(f\) 는 무한히 많은 다른 튜링 기계에 의하여 계산가능하다.
(만약 \(z\) 가 튜링 기계의 괴델수가 아니라면 \(T_n(z, x_1, \dots, x_n, y)\) 를 만족하는 \(y\) 가 존재하지 않고, 그러므로 그에 대응되는 부분 재귀 함수는 공함수(empty function)가 된다. 공함수는 공집합 \(\varnothing\) 과 같다. 공함수는 정의역이 공집합이다.) ■
따름정리 5.12
임의의 재귀 관계 \(R(x_1, \dots, x_n, y)\) 을 잡자. 그러면 모든 자연수 \(x_1, \dots, x_n\) 에 대하여 다음을 만족하는 자연수 \(z_0\) 와 \(v_0\) 가 존재한다.
- \((\exists y)R(x_1, \dots, x_n, y)\) 는 \((\exists y)T_n(z_0, x_1, \dots, x_n, y)\) 와 동치이다.
- \((\forall y)R(x_1, \dots, x_n, y)\) 는 \((\forall y)\lnot T_n(v_0, x_1, \dots, x_n, y)\) 와 동치이다.
-
증명
함수 \(f(x_1, \dots, x_n) = \mu yR(x_1, \dots, x_n, y)\) 는 부분 재귀이다. 따름정리 5.7 에 의하여 \(f\) 는 튜링계산가능한 함수이다. \(f\) 를 계산하는 튜링 기계의 괴델수를 \(z_0\) 라고 하자.
그러면 \(f(x_1, \dots, x_n)\) 가 정의되는 것은 \((\exists y)T_n(z_0, x_1, \dots, x_n, y)\) 와 동치이다. 그런데 \(f(x_1, \dots, x_n)\) 가 정의되는 것은 \((\exists y)R(x_1, \dots, x_n, y)\) 와 동치이다. ▲
1) 을 재귀 관계 \(\lnot R(x_1, \dots, x_n, y)\) 에 적용하면 다음을 만족하는 \(v_0\) 을 얻는다.
\((\exists y)\lnot R(x_1, \dots, x_n, y)\) 은 \((\exists y)T_n(v_0, x_1, \dots, x_n, y)\) 와 동치이다. 이제 양쪽에 부정을 취하면 된다. ■
문제 5.19
\(R(x_1, \dots, x_n, y, z)\) 이 재귀 관계이면 모든 자연수 \(x_1, \dots, x_n\) 에 대하여 다음을 만족하는 자연수 \(z_0\) 과 \(v_0\) 가 존재한다.
- \((\forall z)(\exists y)R(x_1, \dots, x_n, y, z)\) 는 \((\forall z)(\exists y)T _{n+1}(z_0, x_1, \dots, x_n, z, y)\) 와 동치이다.
- \((\exists z)(\forall y)R(x_1, \dots, x_n, y, z)\) 는 \((\exists z)(\forall y)\lnot T _{n+1}(v_0, x_1, \dots, x_n, z, y)\) 와 동치이다.
- 증명
따름정리 5.13
- \((\exists y)T_n(x_1, x_1, x_2, \dots , x_n, y)\) 는 재귀가 아니다.
- \((\exists y)T_n(z, x_1, \dots , x_n, y)\) 는 재귀가 아니다.
-
이 정리는 자기 자신의 괴델수를 인자로 전달받는 기계의 계산이 존재하는지 판정할 수 없다, 즉, 이것을 기계적으로 계산할 수 있는 기계가 존재하지 않는다는 것을 뜻한다. 이 정리는 정지문제의 해결로 이어진다.
다음의 정리에서 알 수 있듯이 기계가 자기 자신의 괴델수를 인자로 입력받지만 않아도 모순이 발생하지 않는다. 오직 기계가 자기 자신 자체를 입력받았을 때 모순이 발생한다.
-
증명
1:
\((\exists y)T_n(x_1, x_1, x_2, \dots ,x_n, y)\) 가 재귀라고 하자. 그러면 정리 3.18 에 의하여 \(\lnot (\exists y)T_n(x_1, x_1, x_2, \dots, x_n, y) \land z = z\) 는 재귀이다. 따름정리 5.12(1) 에 의하여 다음을 만족시키는 \(z_0\) 가 존재한다.
\[ \begin{align}\begin{split} & (\exists z) (\lnot (\exists y)T_n(x_1, x_1, x_2, \dots, x_n, y) \land z = z) \quad\text{iff}\quad \\ &(\exists z)T_n(z_0, x_1, x_2, \dots ,x_n, z) \\ \end{split}\end{align} \tag*{} \]좌측의 \(z\) 는 명백하게 생략 가능하다. 따라서 다음이 성립한다.
\[ \lnot (\exists y)T_n(x_1, x_1, x_2, \dots, x_n, y) \quad\text{iff}\quad (\exists z)T_n(z_0, x_1, x_2, \dots ,x_n, z) \]\(x_1 = x_2 = \dots = x_n = z_0\) 인 경우 다음과 같은 모순을 얻는다.
\[ \lnot (\exists y)T_n(z_0, z_0, z_0, \dots, z_0, y) \quad\text{iff}\quad (\exists z)T_n(z_0, z_0, z_0, \dots ,z_0, z) \]▲
2:
\((\exists y)T_n(z, x_1, \dots , x_n, y)\) 가 재귀이면 치환에 의하여 \((\exists y)T_n(x_1, x_1, \dots , x_n, y)\) 도 재귀이며, 1) 의 논증이 적용된다. ■
Halting Problem✔
정지 문제(halting problem)
튜링 기계 \(\mathcal{T}\) 에 대한 정지 문제는 각 테이프 서술 \(\beta\) 에 대하여 \(\mathcal{T}\) 가 \(\beta\) 에 적용가능한지, 즉, \(\beta\) 에서 시작하는 \(\mathcal{T}\) 의 계산이 존재하는지 판정하는 문제이다. 이 정지 문제에 요구되는 알고리즘은 다음과 같은 계산가능한 함수 \(H _{\mathcal{T}}\) 이다.
주어진 테이프 서술 \(\beta\) 에 대하여 \(\mathcal{T}\) 가 \(\beta\) 에 적용가능한지 판정하는 알고리즘이 존재하면 \(\mathcal{T}\) 에 대한 정지문제가 알고리즘적으로 해결가능하다(algorithmically solvable)고 한다.
튜링 알고리즘을 알고리즘의 정확한 대응물로 받아들인다면(확장된 처치의 논제), \(\mathcal{T}\) 에 대한 정지 문제가 알고리즘적으로 해결가능하다는 것은 함수 \(H _{\mathcal{T}}\) 가 튜링계산가능한 것, 또는 따름정리 5.9 에 의하여 그와 동등하게, 재귀라는 것과 동치이다.
함수 \(H _{\mathcal{T}}\) 가 재귀이면 \(\mathcal{T}\) 에 대한 정지 문제가 재귀적으로 해결가능하다(recursively solvable)고 한다. \(H_{\mathcal{T}}\) 가 재귀가 아니면, \(\mathcal{T}\) 에 대한 정지문제가 재귀적으로 해결불가능(recursively unsolvable)하다고 한다.
-
튜링의 논문의 정지 문제 파트에서 정지 문제를 어떤 기계가 영원히 실행될지 판정하는 기계를 만들 수 있는지에 대한 문제라고 설명한다. 튜링의 개념으로 말하면 기계가 순환인지 비순환인지 판정하는 기계가 존재하는지에 대한 문제이다. 튜링은 논문에서 기계의 운명을 판정하는 기계 \(\mathcal{H}\) 는 자기 자신의 괴델수를 전달받았을 때 무한 재귀에 빠진다는 것을 보임으로써 \(\mathcal{H}\) 가 재귀일 수 없다, 기계적일 수 없다, 그러니까 \(\mathcal{H}\) 라는 기계는 존재하지 않는다는 것을 보였다.
튜링은 논문에서 \(\mathcal{H}\) 로 존재하는 모든 튜링 기계를 검사함으로써 증명을 수행했다. 하지만 현대 수리논리학에서는 여기에서처럼 정지문제를 더 세분화시키고 좀 더 구체적으로 분석하여 어떤 기계 \(\mathcal{T}\) 를 고정시키고 그 기계에 입력되는 테이프 서술 \(\beta\) 에 대한 정지문제를 생각한다. 각 테이프 서술 \(\beta\) 에 대하여 \(\beta\) 에서 시작하는 \(\mathcal{T}\) 의 계산이 존재하는지 판정하는 문제라고 했는데, 여기에서 계산이라고 정의된 의미는 \(\mathcal{T}\) 가 계산을 정상적으로 종료하고 멈춘다는 의미까지 포함되어 있으므로, 계산이 존재한다는 것만 성립하면 기계가 순환에 빠지지 않고 비순환 기계로써 정상 기계라고 판정된다는 것을 의미한다.
정리 5.14
재귀적으로 해결불가능한 정지 문제를 갖는 튜링 기계가 존재한다.
-
자기 자신의 괴델수를 인자로 전달받는 기계를 \(T_1(x,x,y)\) 로 표현한다. 이런 기계에서 정지 문제가 해결불가능하다. 이것을 튜링의 원본 논문(튜링의 증명)에서 더욱 자세하게 알아본다.
이 증명은 튜링의 증명과는 조금 다른데, 기계들의 괴델수와 자신의 괴델수 자체를 기계의 인자로 입력하는 계산이 존재하는지 판정하는 기계 \(\mathcal{T}\) 를 정의했기 때문이다. 튜링은 기계들이 비순환인지, 순환인지 차례대로 검사했다. 튜링의 증명보다 정지문제의 증명이 더욱 간소화되고 세분화된 탓에 튜링은 정지문제를 증명하기 위하여 보편 기계를 사용했지만, 이 증명에서는 보편 기계가 필요 없다. 보편 기계는 좀 더 아래에서 정의한다.
-
증명
정리 5.2 에 의하여 부분 재귀 함수 \(\mu yT_1(x, x, y)\) 를 ST-계산하는 튜링 기계 \(\mathcal{T}\) 를 잡을 수 있다. 표준 튜링 계산가능성의 정의에 의하여 \(\mathcal{T}\) 가 오직 \(\overline{x}\) 로 구성된 테이프 위에서 가장 왼쪽의 \(|\) 을 읽으면서 계산을 시작했을 때, \(\mathcal{T}\) 가 계산을 종료하고 멈춘다는 것은 \(\mu yT_1(x,x,y)\) 가 정의된 것과 동치이다.
\(\mathcal{T}\) 가 재귀적으로 해결가능한 정지문제를 가진다, 즉, 함수 \(H_{\mathcal{T}}\) 가 재귀적이라고 가정하자. 테이프 서술 \(q_0 \overline{x}\) 의 괴델수는 \(2 ^{9} * \operatorname{Num}(x)\) 이다. 이제 다음이 성립한다.
\[ \begin{align}\begin{split} (\exists y)T_1 (x, x, y)& \quad\text{iff}\quad \mu yT_1(x, x, y) \text{ 가 정의된다} \\ & \quad\text{iff}\quad \mathcal{T} \text{ 가 } q_0 \overline{x} \text{ 위에서 시작하여 계산을 수행한다} \\ & \quad\text{iff}\quad H_{\mathcal{T}}(2 ^{9} * \operatorname{Num}(x)) = 0 \\ \end{split}\end{align} \tag*{} \]\(H_{\mathcal{T}}\), \(\operatorname{Num}\), \(*\) 가 재귀이므로 \((\exists y)T_1(x,x,y)\) 도 재귀이다. 그런데 이는 따름정리 5.13(1) 에 모순이다.
그러므로 \(\mathcal{T}\) 에 대한 정지문제가 재귀적으로 해결불가능하다. 즉, \(H _{\mathcal{T}}\) 가 재귀가 아니다. ■
Iteration Theorem✔
다음과 같이 정의한다.
함수 \(\phi _{z}^{n}\) 의 \(z\) 를 인덱스(index)라고 한다.
-
따름정리 5.11 에 의하여 \(\phi _{0}^{n}, \phi _{1}^{n}, \phi _{2}^{n}, \dots\) 은 모든 \(n\)변수 부분 재귀 함수를 나열한다.
-
각 \(n\)변수 부분 재귀 함수는 무한히 많은 인덱스를 갖는다.
정리 5.15 Iteration Theorem(s-m-n Theorem)
임의의 양의 정수 \(m\) 과 \(n\) 에 대하여 다음을 만족하는 원시 재귀 함수 \(s _{n}^{m}(z, y_1, \dots, y_m)\) 이 존재한다.
-
따라서 \(\phi _{z}^{m+n}(x_1, \dots, x_n, y_1, \dots, y_m)\) 의 \(z, y_1, \dots, y_m\) 에 특정한 값을 할당하는 것은 새로운 \(n\)변수 부분 재귀 함수를 만들고, 새 함수의 인덱스는 \(z\) 와 \(y_1, \dots, y_m\) 에 대한 원시 재귀 함수이다.
-
증명
\(\mathcal{T}\) 가 괴델수 \(z\) 의 튜링 기계일 때, 튜링 기계 \(\mathcal{T}_{y_1, \dots, y_m}\) 가 \((x_1, \dots, x_n)\) 위에서 시작하여 \((x_1, \dots, x_n, y_1, \dots, y_m)\) 를 생성하고, \(\overline{x_1}\) 의 가장 왼쪽의 \(|\) 으로 이동하고, \(\mathcal{T}\) 처럼 동작한다고 정의하자. 이 기계는 다음과 같은 다이어그램으로 정의된다.
\[ \mathcal{R}\mathbf{r} (\mathbf{a} _1 \mathbf{r} )^{y_1+1}\mathbf{r} (\mathbf{a} _1 \mathbf{r} )^{y_2+1}\mathbf{r} \dots \mathbf{r} (\mathbf{a} _1 \mathbf{r} )^{y_m+1} \mathcal{L} \mathbf{r} \mathcal{T} \]이 튜링 기계의 괴델수 \(s _{n}^{m}(z, y_1, \dots, y_m)\) 는 효과적으로 계산될 수 있고, 처치의 논제에 의하여 이 함수는 부분 재귀이다. 실제로 \(s _{n}^{m}\) 은 다음과 같은 원시 재귀 함수 \(g(z ,y_1, \dots, y_m)\) 에 의하여 계산된다.
\(t = y_1 + \dots + y _m + 2m + 1\), \(u(i) = 2 ^{9+4i}3 ^{7}5 ^{11}7 ^{9+4i}\), \(v(i) = 2 ^{9+4i}3 ^{11}5 ^{3} 7 ^{13+4i}\) 로 두자. \(u(i)\) 는 쿼드러플 \(q_iB|q_i\) 의 괴델수, \(v(i)\) 는 쿼드러플 \(q_i|Rq _{i+1}\) 의 괴델수이다. 이제 \(g(z , y_1, \dots, y_m)\) 를 다음과 같이 정의한다.
\[ \begin{align}\begin{split} & \left [2 ^{2 ^{9}3 ^{11}5 ^{3} 7 ^{9}} 3 ^{2 ^{9}3 ^{7} 5 ^{3} 7 ^{13}} 5 ^{2 ^{13}3 ^{11} 5 ^{3} 7 ^{9}} 7 ^{2 ^{13}3 ^{7}5 ^{7}7 ^{17}} \right] * \\ &\prod_{i=2}^{y_1 + 2}p _{|2i-4|}^{u(i)}p _{|2i-3|}^{v(i)} * 2 ^{2 ^{9+4(y_1+3)}3 ^{7}5 ^{3} 7 ^{9+4(y_1 + 4)}} * \\ & \prod_{i=y_1+4}^{y_1+y_2+4}p _{2|i-(y_1 + 4)|}^{u(i)}p _{2|i - (y_1 + 4)| + 1}^{v(i)} * \\ & 2 ^{2 ^{9 + 4(y_1 + y_2 + 5)}3 ^{7}5 ^{3}7 ^{9 + 4(y_1 + y_2+6)}} * \dots *\\ & 2 ^{2 ^{9 + 4( y_1+ \dots+ y _{m-1} + 2m-1)}3 ^{7}5 ^{3} 7 ^{9+4(y_1+ \dots+ y _{m-1} + 2m)}} * \\ & \prod_{i = y_1+\dots+y _{m-1} + 2m}^{y_1+ \dots+ y_m+2m}p _{2|i - (y_1+ \dots+ y _{m-1} + 2m)|}^{u(i)}p _{2|i - (y_1+ \dots+ y _{m-1}+2m)|+1}^{v(i)} * \\ & 2 ^{2 ^{9 + 4t} 3 ^{11} 5 ^{5} 7 ^{9+4t}} 3 ^{2 ^{9+4t}3 ^{7} 5 ^{5} 7 ^{9+4(t+1)}} 5 ^{2 ^{9+4(t + 1)}3 ^{11}5 ^{5}7 ^{9+4t}} \cdot \\ & 7 ^{2 ^{9+4(t+1)} 3 ^{7} 5 ^{3} 7 ^{9+4(t+2)}} 11 ^{2 ^{9+4(t+2)} 3 ^{7} 5 ^{3} 7 ^{9+4(t+3)}} * \\ & \prod_{i=0}^{\delta (\operatorname{lh}(z))}p_i ^{2 ^{((z)_i)_0 + 4(t+3)} 3 ^{((z)_i)_1} 5 ^{((z)_i)_2} 7 ^{((z)_i)_3} + 4(t+3)} \\ \end{split}\end{align} \tag*{} \]원시 재귀에서 얻은 결론에 의하여 \(g\) 는 원시 재귀이다.
\(z\) 가 튜링 기계의 괴델수가 아니면 \(\phi _{z}^{m+n}\) 은 공함수이고, 그러므로 \(s _{n}^{m}(z, y_1, \dots, y_m)\) 은 공함수의 인덱스여야 하고 \(0\) 로 취해질 수 있다. 따라서 다음과 같이 정의하자.
\[ s _{n}^{m}(z, y_1, \dots, y_m) = \begin{cases} g(z, y_1, \dots, y_m) & \operatorname{TM}(z)\\ 0 & \text{else} \\ \end{cases} \]그러므로 \(s _{n}^{m}\) 은 원시 재귀이다. ■
따름정리 5.16
임의의 부분 재귀 함수 \(f(x_1, \dots, x_n, y_1, \dots, y_m)\) 에 대하여 다음이 성립하는 재귀 함수 \(g(y_1, \dots, y_m)\) 가 존재한다.
-
증명
\(f\) 의 인덱스를 \(e\) 로 잡으면 정리 5.15 에 의하여 다음이 성립한다.
\[ \phi _{e}^{m+n}(x_1, \dots, x_n, y_1, \dots, y_m) = \phi _{s _{n}^{m}(e, y_1, \dots, y_m)}(x_1, \dots, x_n) \]이제 \(g(y_1, \dots, y_m) = s _{n}^{m}(e, y_1, \dots, y_m)\) 으로 두면 된다. ■
보편 튜링 기계(universal turing machine)
부분 재귀 함수 \(U(\mu yT_1(z, x, y))\) 가 괴델수 \(e\) 의 튜링 기계 \(\mathcal{V}\) 에 의하여 계산된다고 하자. 정리 5.5 에 의하여 \(U(\mu yT_1(z, x, y)) = U(\mu yT_2(e,z,x,y))\) 이 성립한다. 다음이 성립하므로 \(\mathcal{V}\) 는 보편적이다.
-
\(\mathcal{V}\) 는 모든 일변수 부분 재귀 함수 \(f(x)\) 를 계산할 수 있다.
\(z\) 가 \(f\) 를 계산하는 튜링기계의 괴델수이면 \(\mathcal{V}\) 는 테이프 \(\overline{(z,x)}\) 위에서 시작하여 \(U(\mu yT_1(z, x, y)) = f(x)\) 를 계산할 수 있다.
-
\(\mathcal{V}\) 는 임의의 부분 재귀 함수 \(h(x_1, \dots, x_n)\) 를 계산할 수 있다.
\(h\) 를 계산하는 튜링 기계의 괴델수를 \(v_0\) 라고 하고, \(f(x) = h((x)_0, (x)_1,\dots ,(x) _{n-1})\) 라고 하자. 따름정리 5.16 을 부분 재귀 함수 \(U(\mu y T_n(v, (x)_0, (x)_1, \dots ,(x) _{n-1}, y))\) 에 적용하면 \(U(\mu yT_n(v, (x)_0, (x)_1, \dots , (x)_{n-1}, y)) = \phi _{g(v)}^{1}(x)\) 을 만족하는 재귀 함수 \(g(v)\) 를 얻는다. 그러므로 \(f(x) = \phi _{g(v)}^{1}(x)\) 이다. 그러면 \(h(x_1, \dots, x_n)\) 는 \(\mathcal{V}\) 를 테이프 \(\overline{(g(v_0), p _{0}^{x_1}\dots p _{n-1}^{x_n})}\) 에 적용함으로써 계산된다.
-
보편 만능 기계에 대해서는 튜링의 원본 논문(튜링의 증명)에서 더욱 자세히 알아본다.
-
다음을 만족하는 초보편 튜링기계(superuniversal turing machine) \(\mathcal{V}^{*}\) 도 찾을 수 있다.
- 임의의 튜링 기계 \(\mathcal{T}\) 에 대하여 \(\mathcal{T}\) 의 괴델수가 \(z\) 이고 \(\mathcal{T}\) 의 초기 테이프 설명 \(\alpha\) 의 괴델수가 \(x\) 이면 \(\mathcal{V}^{*}\) 가 \(q_0 \overline{(z, x)}\) 에 적용가능한 것은 \(\mathcal{T}\) 가 \(\alpha\) 에 적용가능한 것과 동치이다.
- \(\mathcal{T}\) 가 \(\alpha\) 에 적용되었을 때 \(\mathcal{T}\) 가 괴델수 \(w\) 의 테이프 설명으로 끝나면 \(\mathcal{V}^{*}\) 가 \(q_0 \overline{(z,x)}\) 에 적용되었을 때 \(\overline{w}\) 를 생성한다.
Arithmetical Hierarchy✔
산술 계층(Kleene–Mostowski hierarchy, arithmetical hierarchy)
재귀 관계 \(R(x_1, \dots, x_n, y_1, \dots, y_m)\) 에 대한 다음과 같은 wff 배열을 생각하자.
\(\Sigma _{0}^{n} = \Pi _{0}^{n}\) 를 모든 \(n\)항 재귀 관계 집합으로 정의한다.
\(k>0\) 에 대하여 \(\Sigma _{k}^{n}\) 을 프리넥스 형태의 \((\exists y_1)(\forall y_2)\dots (Q y_k)R(x_1, \dots, x_n, y_1, \dots, y_k)\) 로 표현가능한 모든 \(n\)항 관계의 집합으로 정의한다. \((Qy_k)\) 는 \(k\) 가 홀수이거나 짝수일 때 \((\exists y_k)\) 또는 \((\forall y_k)\) 이다.
\(\Pi _{k}^{n}\) 를 프리넥스 형태의 \((\forall y_1)(\exists y_2)\dots (Qy_k)R(x_1, \dots, x_n, y_1, \dots, y_k)\) 로 표현가능한 모든 \(n\)항 관계의 집합으로 정의한다.
이제 위 배열을 다음과 같이 쓸 수 있다.
이 관계들의 계층의 배열을 산술 계층이라고 한다.
정리 5.17
-
산술 계층의 어떠한 형태로든 표현가능한 모든 관계는 그것보다 낮은 행의 형태로 표현가능하다. 즉, 모든 \(j > k\) 에 대하여 다음이 성립한다.
\[ \Sigma _{k}^{n} \subseteq \Sigma _{j}^{n} \cap \Pi _{j}^{n} \qquad \Pi_{k}^{n} \subseteq \Sigma_{j}^{n} \cap \Pi_{j}^{n} \] -
\(\Sigma_{0}^{n}\) 을 제외하고 같은 행에서 다른 형태로 표현불가능한 관계가 존재한다. 즉, \(k>0\) 에 대하여 다음이 성립한다.
\[ \Sigma_{k}^{n} - \Pi_{k}^{n} \neq \varnothing \qquad \Pi_{k}^{n} - \Sigma_{k}^{n} \neq \varnothing \] -
모든 산술적 관계는 이들 형태 중 최소한 하나로 표현가능하다.
-
(Post) 임의의 관계 \(Q(x_1, \dots, x_n)\) 에 대하여 다음은 동치이다.
- \(Q\) 가 재귀이다.
- \(Q\) 와 \(\lnot Q\) 가 재귀인 \(R\) 에 대한 형태 \((\exists y_1)R(x_1, \dots, x_n, y_1)\) 로 표현가능하다.
즉, \(\Sigma_{1}^{n} \cap \Pi_{1}^{n} = \Sigma_{0}^{n}\) 이다.
-
\(Q_1 \in \Sigma_{k}^{n}\) 이고 \(Q_2 \in \Sigma_{k}^{n}\) 이면 \(Q_1 \lor Q_2\) 과 \(Q_1 \land Q_2\) 이 \(\Sigma_{k}^{n}\) 에 속한다.
\(Q_1 \in \Pi_{k}^{n}\) 이고 \(Q_2 \in \Pi_{k}^{n}\) 이면 \(Q_1 \lor Q_2\) 과 \(Q_1 \land Q_2\) 이 \(\Pi_{k}^{n}\) 에 속한다.
-
4) 와 대조되게 \(k>0\) 에 대하여 다음이 성립한다.
\[ \left( \Sigma_{k+1}^{n} \cap \Pi_{k+1}^{n} \right) - \left( \Sigma_{k}^{n} \cup \Pi_{k}^{n} \right) \neq \varnothing \]
-
증명
1:
다음이 성립한다.
\[ (\exists z_1)(\forall y_1)\dots (\exists z_k)(\forall y_k)R(x_1, \dots, x_n, z_1, y_1, \dots ,z_k, y_k) \iff \]\[ (\forall u) (\exists z_1)(\forall y_1)\dots (\exists z_k)(\forall y_k)(R(x_1, \dots, x_n, z_1, y_1, \dots ,z_k, y_k) \land u = u) \iff \]\[ (\exists z_1)(\forall y_1)\dots (\exists z_k)(\forall y_k)(\exists u)(R(x_1, \dots, x_n, z_1, y_1, \dots ,z_k, y_k) \land u = u) \]그러므로 계층 속 임의의 관계는 그것보다 낮은 행의 형태로 표현가능하다.
2:
\(\Sigma_{3}^{n}\) 의 경우를 생각하자. 관계 \((\exists v)(\forall z)(\exists y)T _{n+2}(x_1, x_1, x_2, \dots ,x_n, v,z,y)\) 를 잡자. 이 관계는 \(\Sigma_{3}^{n}\) 에 속한다. 이 관계가 \(\Pi_{3}^{n}\) 에 속한다, 즉, 재귀인 \(R\) 에 대한 \((\forall v)(\exists z)(\forall y)R(x_1, \dots, x_n, v, z,y)\) 의 형태로 표현가능하다고 하자. 문제 5.19 에 의하여 이는 어떤 \(e\) 에 대하여 \((\forall v)(\exists z)(\forall y) \lnot T _{n+2}(e, x_1, \dots, x_n, v, z,y)\) 와 동등하다. \(x_1= e\) 일 때 이는 모순이다.
3:
1차 논리 이론 \(S\) 의 모든 wff 는 프리넥스 표준형이 될 수 있다. 그렇다면 \((\exists u)(\exists v)R(u, v)\) 가 \((\exists z)R((z)_0, (z)_1)\) 와 동등하고 \((\forall u)(\forall v)R(u, v)\) 가 \((\forall z)R((z)_0, (z)_1)\) 와 동등하다, 즉, 연속적인 양화사가 한 양화사로 압축될 수 있다는 사실만으로 이미 증명된다.
4:
\(Q\) 가 재귀이면 \(\lnot Q\) 도 그러하다. \(P(x_1, \dots, x_n)\) 가 재귀이면, \(P(x_1, \dots, x_n) \iff (\exists y)(P(x_1, \dots, x_n) \land y=y)\) 이다.
역으로, \(Q\) 가 재귀 관계 \(R_1\) 에 대하여 \((\exists y)R_1(x_1, \dots, x_n,y)\) 로 표현가능하고 \(\lnot Q\) 가 재귀 관계 \(R_2\) 에 대하여 \((\exists y)R_2(x_1, \dots, x_n, y)\) 로 표현가능하다고 하자. 그러면 \((\forall x_1)\dots (\forall x_n)(\exists y)(R_1(x_1, \dots, x_n, y) \lor R_2(x_1, \dots, x_n, y))\) 이다. 따라서 \(\psi(x_1, \dots, x_n) = \mu y(R_1(x_1, \dots, x_n, y) \lor R_2(x_1, \dots, x_n, y))\) 는 재귀이다. 그러면 \(Q(x_1, \dots, x_n) \iff R_1(x_1, \dots, x_n, \psi(x_1, \dots, x_n))\) 이고, 그러므로 \(Q\) 는 재귀이다.
Recursion Theorem✔
정리 5.18 재귀 정리(Recursion Theorem)
\(n>1\) 이고 \(f(x_1, \dots, x_n)\) 가 부분 재귀 함수이면 다음을 만족하는 자연수 \(e\) 가 존재한다.
- 증명
따름정리 5.19 고정점 정리(Fixed-Point Theorem)
\(h(x)\) 가 재귀이면 \(\phi _{e}^{1} = \phi _{h(e)}^{1}\) 를 만족하는 \(e\) 가 존재한다.
- 증명
Rice's Theorem✔
따름정리 5.20 라이스의 정리(Rice's Theorem)(Rice, 1953)
최소한 하나의, 그러나 전부는 아닌, 일변수 부분 재귀 함수로 구성된 집합 \(\mathcal{F}\) 에 대하여 집합 \(A = \{u : \phi _{u}^{1} \in \mathcal{F}\}\) 는 재귀가 아니다.
-
증명
-
예시
이러한 결정 문제를 생각하자. 임의의 \(u\) 에 대하여 \(\phi _{u}^{1}\) 이 무한한 정의역을 갖는지 결정하자. 무한한 정의역을 갖는 모든 일변수 부분 재귀 함수의 집합을 \(\mathcal{F}\) 라고 하자. 라이스의 정리에 의하여 \(\{u : \phi _{u}^{1} \in \mathcal{F}\}\) 는 재귀가 아니다. 그러므로 이 문제는 재귀적으로 결정 불가능하다.
Recursively Enumerable✔
재귀적으로 열거가능한(recursively enumerable)
자연수 집합 \(A\) 가 재귀적으로 열거가능하다는 것은 \(A = \varnothing\) 이거나 재귀 함수의 치역인 것과 동치이다.
-
이때 \(A\) 를 r.e. 라고 한다.
-
처치의 논제를 수용하면 자연수의 모임 \(A\) 가 r.e. 인 것은 \(A = \varnothing\) 이거나 \(A\) 가 기계적인 과정이나 효과적인 절차로 생성될 수 있다는 것과 동치이다.
정리 5.21
- 집합 \(B\) 가 r.e. 인 것은 \(x \in B\) 가 재귀인 \(R\) 에 대한 형태 \((\exists y)R(x, y)\) 로 표현가능하다는 것과 동치이다. (\(R\) 이 원시 재귀여도 된다.)
- \(B\) 가 r.e. 인 것은 \(B = \varnothing\) 이거나 부분 재귀 함수의 치역인 것과 동치이다. (공함수가 부분 재귀이고 공집합을 치역으로 가지므로 \(B =\varnothing\) 라는 조건을 생략해도 된다.)
- \(B\) 가 r.e. 인 것과 \(B\) 가 부분 재귀 함수의 정의역인 것은 동치이다.
- \(B\) 가 재귀인 것은 \(B\) 와 여집합 \(\overline{B}\) 가 r.e. 인 것은 동치이다. (자연수 집합 \(\omega\) 에 대하여 \(\overline{B} = \omega -B\) 이다.)
- 집합 \(K = \{x : (\exists y) T_1(x,x,y) \}\) 은 r.e. 이지만 재귀가 아니다.
-
증명
1:
\(B\) 가 r.e. 임을 가정하자. \(B\) 가 \(\varnothing\) 인 경우 \(x \in B \iff (\exists y)(x \neq x \land y \neq y)\) 이다. \(B\) 가 \(\varnothing\) 가 아닐 경우 \(B\) 는 재귀 함수 \(g\) 의 치역이다. 그러면 \(x \in B \iff (\exists y)(g(y) = x)\) 이다.
역으로, 재귀인 \(R\) 에 대하여 \(x \in B \iff (\exists y)R(x, y)\) 라고 해보자. \(B\) 가 \(\varnothing\) 이면 \(B\) 는 r.e. 이다. \(B\) 가 \(\varnothing\) 이 아닐 경우 \(B\) 의 원소 \(k\) 가 존재한다. 함수 \(\theta\) 를 다음과 같이 정의하자.
\[ \theta(z) = \begin{cases} k & \lnot R((z)_0, (z)_1) \\ (z)_0 & R((z)_0, (z)_1) \\ \end{cases} \]정리 3.19 에 의하여 \(\theta\) 는 재귀이다. \(B\) 는 명백하게 \(\theta\) 의 치역이다.
마지막으로, \(R\) 이 재귀일 때 따름정리 5.12(1) 에 의하여 어떤 \(e\) 에 대하여 \((\exists y)R(x, y) \iff (\exists y)T_1(e, x, y)\) 이 성립하고 \(T_1\) 이 원시 재귀이므로 \(R\) 은 원시 재귀이다. 따라서 \(R\) 을 원시 재귀라고 해도 된다.
-
\(\phi _{n}^{1}(x) = U(\mu yT_1(n, x,y))\) 이 클레이니 표준형 정리에 의하여 모든 일변수 부분 재귀 함수를 열거한다. \(\phi _{n}^{1}\) 의 정의역을 \(W_n\) 이라고 하면 정리 5.21(3) 은 \(W_0, W_1, \dots\) 이 모든 r.e. 집합을 열거한다는 것을 말해준다. \(n\) 을 집합 \(W_n\) 의 인덱스라고 한다.
Decision Problems✔
해결불가능한 문제(unsolvable)
문제를 해결할 효과적인 절차가 존재하지 않으면 문제가 해결불가능하다고 한다.
-
문제의 클래스의 형식화를 산술화하고 각 문제에 자연수를 부여하면, 이 클래스가 해결불가능한 것은 \(n\) 이 주어진 문제의 자연수일 때 그 문제를 해결할 계산가능한 함수 \(h(n)\) 이 존재하지 않는다는 것과 동치이다. 처치의 논제를 수용하면 함수 \(h\) 는 부분 재귀여야 하고, 이로써 우리는 더욱 접근하기 쉬운 수학적 질문을 얻을 수 있다.
-
몇 가지 결정 문제(decision problem)들은 다음과 같다.
- 명제가 명제 논리의 항진식인가? 진리표가 이 질문에 대답할 수 있는 효과적인 절차를 제공한다.
-
결정가능한 이론(decidable theory)과 결정불가능한 이론(undecidable theory). 형식 체계 \(\mathcal{S}\) 의 임의의 wff 가 \(\mathcal{S}\) 의 정리인가? 그렇다면 \(\mathcal{S}\) 는 결정가능한 이론이고, 그렇지 않으면 \(\mathcal{S}\) 는 결정불가능한 이론이다.
- 명제 논리의 체계 \(L\) 은 결정가능하다. 진리표에 의하여 항진식을 기계적으로 판정할 수 있고, \(L\) 의 정리라면 항진식이기 때문이다.
- 정리 3.54 에 의하여 \(\operatorname{PP}\) 와 \(\operatorname{PF}\) 는 재귀적으로 결정불가능하다.
- 따름정리 3.46 에 의하여 \(RR\) 과 그것의 무모순 확장(페아노 산술 \(S\) 도 포함된다)은 재귀적으로 결정불가능하다.
- NBG 와 그것의 무모순 확장은 재귀적으로 결정불가능하다.
- 다양한 순서 구조와 대수 구조의 이론은 결정가능하다. 가령, 아벨군 이론, 실-닫힌 체 이론 등등.
-
논리적 타당성. 양화 이론에서 주어진 wff 가 논리적으로 타당한가? 괴델의 완전성 정리에 의하여 wff 의 논리적 타당성은 그것이 \(\operatorname{PF}\) 에서 증명가능한 것과 동치이다. 그러나 정리 3.54 에 의하여 \(\operatorname{PF}\) 는 재귀적으로 결정불가능하므로 논리적 타당성 문제는 재귀적으로 결정불가능하다.
- 힐베르트의 열번째 문제. 정수 계수의 다항식 \(f(x_1, \dots, x_n)\) 에 \(f(k_1, \dots, k_n) = 0\) 을 만족시키는 정수 \(k_1, \dots, k_n\) 가 존재하는가? 이 문제의 결정 절차는 존재하지 않는다.
-
이런 결정 문제는 튜링의 논문에서 자세히 알아본다.










