이것은 잘못 표현 된 질문이므로 먼저 이해해 봅시다. 나는 그것을 계산 성 이론의 스타일로 할 것입니다. 따라서 문자열 대신 숫자를 사용합니다. 소스 코드는 기호 문자열이 아니라 숫자입니다. 그것은 정말 문제, 당신은 대체 할 수없는 와 의 t는 r에 난 N g은 아래를 통해.Ns는 t는 r에 난을 N g
하자 될 페어링 기능 .⟨ m , N ⟩
프로그래밍 언어 는 다음 데이터로 제공됩니다.L = ( P, e v )
- "유효한 프로그램" 의 결정 가능한 세트 피⊆ N
- 계산 가능 하고 일부 기능 .e v : P× N → N
사실 decidable 수단은 계산 가능한 전체지도가 V L 난 d 개 : N → { 0 , 1 } 이되도록 V L I d 개 ( N ) = 1피V L의 I의 D: N → { 0 , 1 } . 비공식적으로, 우리는 주어진 문자열이 유효한 코드인지 알 수 있다고 말합니다. 함수 e v 는 본질적으로 우리 언어의 해석기입니다. e v ( m , n ) 은입력 n 에서코드 m 을실행합니다. 결과는 정의되지 않을 수 있습니다.V L의 I의 D( n ) = 1⟺n ∈ Pe ve v ( m , n )미디엄엔
이제 몇 가지 용어를 소개 할 수 있습니다.
- n ↦ e v ( m , n ) 이 모든 m ∈ P에 대한 총 함수 인 경우 언어는 총계 입니다.n ↦ e v ( m , n )m ∈ P
- 언어 해석 된 언어 L 2 = ( P (2) , 즉 V 2 ) 가 존재하는 경우 U ∈ P 1 이되도록 전자 (V) (1) ( U , ⟨ N , m ⟩ ) ≃ 전자 V 모든 n ∈ P에 대해 2 ( n , m )엘1=(P1,ev1) L2=(P2,ev2)u∈P1ev1(u,⟨n,m⟩)≃ev2(n,m)n∈P및 . 여기서 U는 하기위한 시뮬레이터 L 2 구현 L 1 . L 2에 대한 범용 프로그램 이라고도합니다 .m∈NuL2L1L2
" 은 L 2를 해석합니다 "의 다른 정의 도 가능하지만 지금은 다루지 않겠습니다.L1L2
우리는 말할 및 L 2는 서로를 해석하면 동일합니다.L1L2
튜링 머신의 "가장 강력한"언어 가 있으며, 여기서 n ∈ N 은 튜링 머신의 인코딩이고 φ ( n , m ) 은 " 입력 m 에서 튜링 머신 인코딩 된 n 을 n 으로 실행하는"부분 계산 기능 . 우리는 e v 가 계산 가능 해야했기 때문에이 언어는 다른 모든 언어를 통일 할 수 있습니다 .T=(N,φ)n∈Nφ(n,m)nmev
프로그래밍 언어에 대한 우리의 정의는 매우 편안합니다. 다음을 진행하려면 세 가지 조건이 더 필요합니다.
- 은 후속 함수를 구현합니다.모든 m ∈ N 에 대해 e v ( s u c c , m ) = m + 1 과 같은 s u c c ∈ P가 있습니다 .Lsucc∈Pev(succ,m)=m+1m∈N
- 구현은 대각선 기능 : 거기 거라고 나에게 g ∈ P가 되도록 전자 V ( D I g , m ) = ⟨ m , m ⟩ 모든 m ∈ N ,Ldiag∈Pe v ( 일I g, m ) = ⟨ m , m ⟩m ∈ N
- 함수의 조성에 따라 폐쇄된다 : 만약 L의 구현 F 및 g 다음과 같은 구현 F ∘ g ,엘엘에프지에프∘ g
고전적인 결과는 다음과 같습니다.
정리 : 언어가 자기 자신을 해석 할 수 있다면 전체가 아닙니다.
증명. 가정 총 langauge에 대한 범용 프로그램 L 구현 L 모두, 즉, m ∈ P 및 N ∈ N ,
E의 V ( U , ⟨ m , N ⟩ ) ≃ E V ( m , N ) .
후계자, 대각 및 e v ( u , - ) 는 L 로 구현 되므로 구성도 k ↦유엘엘m ∈ Pn ∈ N
즉 V ( U , ⟨ m , N ⟩ ) ≃ E V ( m , N ) .
e v ( u , − )엘 . 존재
N 0 ∈ P가 되도록
전자 V ( n은 0 , K ) ≃ 전자 V ( 유 , ⟨ K , K ⟩ ) + 1 , 그러나
전자 V ( U , ⟨ n은 0 , n은 0 ⟩ ) ≃ E V (K ↦ 전자 V ( U , ⟨ K , K ⟩ ) + 1엔0∈ Pe v ( n0, K ) ≃ 전자 V ( U , ⟨ K , K ⟩ ) + 1
에는 숫자 자체 후속 동일하지 존재하므로, 그것은 그 다음
L을 합계 없거나 그
L은 그 자체를 해석하지 않는다. QED.
즉 V ( U , ⟨ N0, n0⟩ ) ≃ e v ( n0, n0) ≃ 전자 V ( U , ⟨ N0, n0⟩ ) + 1
엘엘
후속 맵을 다른 고정 소수점없는 맵으로 바꿀 수 있음을 관찰하십시오.
여기에 오해를 정리할 수있는 작은 정리가 있습니다.
정리 : 모든 전체 언어는 다른 전체 언어로 해석 될 수 있습니다.
증명. 전체 언어로 하자 . 우리는 전체 얻을 L ' 하는 해석 L를 에 인접하여 L 의 평가자 전자 절 . 보다 정확하게 할 수 P ' = { ⟨ 0 , N ⟩ | N ∈ P } ∪ { ⟨ 1 , 0 ⟩ } 및 정의 전자 브이 ' 로
전자 V ' ( ⟨ B , N ⟩ , m엘엘'엘엘e v피'= { ⟨ 0 , N ⟩ | N ∈ P를} ∪ { ⟨ 1 , 0 ⟩ }e v'
물론, L이 ' 때문에 토탈 L은 전체이다. 그 보려면 L을 ' 시뮬레이션 할 수 있습니다 L은 단지 걸릴 유 = ⟨ 1 , 0
e v'( ⟨ B , N ⟩ , m ) = { 전자 (V) ( N , M )e v ( m0, m1)만약 B = 0 ,경우 B = 1 및 m = ⟨ m0, m1⟩
엘'엘엘'엘 , 이후
전자 V ' ( U , ⟨ m , N ⟩ ) ≃ E V ( m , N ) , 필요에 따라. QED.
유 = ⟨ 1 , 0 ⟩e v'( U , ⟨ m , N ⟩ ) ≃ E V ( m , N )
연습 문제 : [2014-06-27에 추가됨] 위에 구성된 언어 는 작곡으로 닫히지 않습니다. 그래서 정리의 증명을 수정 L ' 경우 만족 여분의 요구 사항을 L가 않습니다.엘'엘'엘
엘엘'엘'엘엘엘