이것을 보는 방법에는 여러 가지가 있습니다.
하나는 증명에서 함축은 일종의 함수와 유사하며, 입력으로 무언가의 증거를 취하고 다른 것의 증거를 출력한다는 것입니다.
우리는 가지고 있지 않은 값에서 작동하는 함수를 작성할 수 있습니다.
예를 들어, 정지 숫자를 고려해 봅시다 h계산할 수 없습니다. 함수를 쓸 수있다
haltingPlusOne:{h}→N
haltingPlusOne(x)=x+1.
이 함수는 Halting 숫자를 입력으로 받아 Halting 숫자에 1을 더한 값을 반환합니다. 분명히 이것은 잘 정의 된 기능입니다. 올바른 입력을 제공하면 올바른 출력을 제공합니다. 올바른 입력을 찾을 수 없다고해서 변환에 덜 유효한 것은 아닙니다.
나는 oracles를 가진 증명을 비슷한 것으로 본다. 기본적으로 문제를 해결하는 튜링 머신을 제공하는 기능입니다.X, 그리고 일부 정리의 증거를 출력으로 제공합니다.
또한 "중지 문제를 결정할 수있는 Turing Machine이 없습니다"와 같이 말할 때 정지 문제를 결정하는 TM의 표준 정의와 일치하는 TM이 없다는 것을 인식하는 것이 중요합니다.
오라클은 기본적으로 "어떤 문제를 해결할 수 있다고 가정하는 것 외에는 표준 정의와 일치하는 TM이 있다고 가정합니다"라고 말합니다. 따라서 우리는 문제를 받아들이는 일반적인 TM이 있다고 가정하지 않기 때문에 모순이 없습니다. 우리는 문제를 받아들이는 특별한 TM이 있다고 가정합니다.
매우 비공식적 인 비유에서, 이것과 같이 생각하십시오. 내가 당신에게 초능력이없는 사람은 날 수 없다는 것을 증명할 수 있다면, 날 수있는 슈퍼 히어로가 있다는 모순은 없습니다.
이 오라클은 순수한 논리적 개체입니다. 우리는 기계를 에뮬레이트하는 물리적 기계를 만드는 방법, Turing 기계로 할 수있는 방법을 모르지만, 우리가 아는 한, 그들의 정의와 기본 공리 사이에는 본질적인 모순이 없습니다. 논리적 객체로서 이러한 오라클이 존재합니다. 우리는 이들이 표준 Turing Machines 또는 Lambda-Calculus 항 또는 부분 재귀 함수가 아니라는 것을 알고 있습니다. Church-Turing 논문은 더 이상 강력한 모델은 없지만 이론은 아니며 추측 일 뿐이며 실제로 증명하기에는 너무 비공식적이라고 말합니다.