Chỉ để ghi lại, bằng chứng tiêu chuẩn về tính không thể giải quyết được của vấn đề tạm dừng dựa trên cùng một ý tưởng như câu hỏi: rằng có thể viết một chương trình một số thuật ngữ phụ để đánh giá mã nguồn cho toàn bộ chương trình. Sau đó, nếu có một hàm halts
, được cung cấp mã nguồn cho một chương trình, đã trả về Đúng nếu chương trình đó tạm dừng trên tất cả các đầu vào và Sai thì đây sẽ là một chương trình hợp pháp:
prog() = if halts "prog" then prog() else ()
nơi "prog"
sẽ có một số biểu thức được ước tính cho mã nguồn prog
; tuy nhiên, bạn có thể nhanh chóng thấy rằng prog
tạm dừng (đối với tất cả các đầu vào) nếu nó không dừng lại, đó là một mâu thuẫn. Không có gì trong bằng chứng này phụ thuộc vào I / O theo bất kỳ cách nào (bạn có cần I / O để viết một câu hỏi không?).
Nhân tiện, bạn có thể muốn xem xét "I / O dựa trên hộp thoại" để biết thêm bằng chứng rằng I / O hoàn toàn không liên quan đến vấn đề của bạn (về cơ bản, các chương trình làm I / O có thể được giảm xuống thành các chương trình lấy đầu vào như (rõ ràng) đối số chức năng và trả về đầu ra dưới dạng (rõ ràng) kết quả bổ sung trong một ngôn ngữ lười biếng). Thật không may, tôi không thể tìm thấy một trang hợp lý, không thiên vị (hoặc hộp thoại chuyên nghiệp) trên web ngay bây giờ.