Xem xét vấn đề lấy máy Turing đầu vào và xác định xem ô cuối cùng là hay sau khi dừng tính toán. Trong trường hợp nó viết một cái gì đó khác hoặc không dừng lại, bạn được phép đưa ra bất kỳ câu trả lời nào (nhưng bạn phải dừng lại và đưa ra một số câu trả lời trên tất cả các đầu vào).
Là vấn đề này không thể giải quyết được? Ruột của tôi nói rằng nó nên như vậy, nhưng tôi không thể tìm ra cách giảm bớt vấn đề tạm dừng. Với một máy Turing có thể dừng hoặc không dừng, chúng ta có thể thiết lập máy kết thúc bằng trong trường hợp nó dừng lại, nhưng không thể kết thúc với bất cứ điều gì trong trường hợp không dừng, vì vậy nhà tiên tri chỉ có thể nói trong trường hợp này mà không cần phải tìm hiểu xem trên thực tế máy có dừng lại hay không.
Lưu ý rằng việc giảm theo hướng khác là đơn giản; nếu bạn có thể giải quyết vấn đề tạm dừng, sau đó đưa ra một TM kết thúc bằng hoặc , chúng tôi thay thế bước chữ viết bằng một vòng lặp vô hạn để tạo ra một TM mới. Nếu TM mới tạm dừng, chúng tôi nói "nó viết " và nếu nó không dừng lại, chúng tôi sẽ nói "nó viết ". Câu trả lời này được đảm bảo là chính xác miễn là trên thực tế TM tạm dừng bằng hoặc , vì vậy chúng tôi có thể giải quyết vấn đề ban đầu.
haltify
sẽ được chọn kết quảgood()
và nó sẽ tự đồng nhất trong cả hai trường hợp, nhưng nó vẫn sẽ quay trở lại vì (bằng phép thuật voodoo)haltify(good)
tạm dừng, vì vậy nó không thực sự là một vòng lặp vô hạn như là một ràng buộc đối với câu trả lời. (Trong thực tế, cách để thực hiệnhaltify
chỉ là chạy tranh luận, trong trường hợp đó cả haigood
vàevil
được cứu khỏi mâu thuẫn bằng cách chuyển hướng, nhưng tất nhiên sau đó chúng tôi buộc phải cho phéphaltify
phân kỳ, đánh bại điểm này.)