MathLabs
Định lýĐã chứng minh

Định lý Rice

Phát biểu

Với mọi tính chất ngữ nghĩa không tầm thường PP của các hàm khả tính bộ phận, tập {e:φe has property P}\{e : \varphi_e \text{ has property } P\} không quyết định được.

Vì sao đúng?

Định lý duy nhất này ngay lập tức loại trừ thuật toán cho "chương trình này có tính hàm không hay không", "chương trình này có tính toàn phần không", "hai chương trình này có tương đương không", và vô số câu hỏi tự nhiên khác về hành vi chương trình — tất cả cùng một lúc, không cần lập luận đường chéo riêng cho từng câu.

Phác thảo chứng minh

Không mất tổng quát giả sử hàm không xác định khắp nơi ∅\emptyset (tính bởi chương trình không bao giờ dừng ở đầu vào nào) không có tính chất PP — nếu không thì lập luận với tính chất bù ¬P\lnot P, tính chất này quyết định được đúng khi PP quyết định được. Vì PP không tầm thường, cố định một chương trình e0e_0 mà hàm φe0\varphi_{e_0} của nó có tính chất PP.

Giả sử phản chứng PP quyết định được bởi thuật toán DD nào đó (cho một chỉ số chương trình, DD dừng và báo cáo đúng liệu hàm của chương trình đó có tính chất PP hay không). Ta quy về bài toán dừng bởi PP, mâu thuẫn với Định lý 1.

Cho một cặp (e,x)(e,x) bất kỳ, xây dựng hiệu quả (bằng thao tác văn bản đơn giản — định lý s-m-n của Kleene) một chương trình mới e′e' mà, với đầu vào yy bất kỳ: trước hết mô phỏng chương trình ee chạy trên đầu vào xx; nếu mô phỏng đó dừng, thì e′e' tiếp tục mô phỏng chương trình e0e_0 trên đầu vào yy và cho ra bất cứ gì nó cho ra.

Xét hai khả năng. Nếu ee dừng ở xx: mô phỏng ee trên xx kết thúc, nên e′e' sau đó hành xử y hệt e0e_0 ở mọi đầu vào, tức φe′=φe0\varphi_{e'}=\varphi_{e_0} — hàm này có tính chất PP (vì PP ngữ nghĩa, chỉ phụ thuộc hàm được tính, và φe0\varphi_{e_0} có PP). Nếu ee không dừng ở xx: mô phỏng ee trên xx không bao giờ kết thúc, nên e′e' không bao giờ tới bước mô phỏng e0e_0 ở bất kỳ đầu vào yy nào; do đó φe′\varphi_{e'} là hàm không xác định khắp nơi ∅\emptyset, theo giả định không có tính chất PP.

Vậy: ee dừng ở xx   ⟺  \iff φe′\varphi_{e'} có tính chất PP   ⟺  \iff D(e′)D(e') trả lời "có". Vì (e,x)↦e′(e,x)\mapsto e' tính được, thuật toán "tính e′e' từ (e,x)(e,x), rồi chạy D(e′)D(e')" sẽ quyết định được bài toán dừng — mâu thuẫn Định lý 1. Vậy không tồn tại DD như thế: PP không quyết định được. ■\blacksquare

Chủ đề chứa định lý này

Chứng minh từng bước

Chưa có chứng minh từng bước cho định lý này.

Tài liệu tham khảo

  1. Wikipedia contributors (2024). Halting problem
  2. Wikipedia contributors (2024). Rice's theorem
  3. Wikipedia contributors (2024). Ackermann function