Ada sedikit kebebasan dalam apa yang kami anggap "nilai yang sama". Biarkan saya menunjukkan bahwa tidak ada algoritma seperti itu jika "nilai yang sama" berarti "setara dengan pengamatan". Saya akan menggunakan sebagian dari kalkulus konstruksi, yaitu Sistem T Gödel (cukup ketik kalkulus, bilangan alami, dan rekursi primitif pada mereka), sehingga argumen berlaku untuk kalkulus yang jauh lebih lemah.λ
Diberi nomor , biarkan menjadi sesuai angka yang mewakili itu, yaitu, n aplikasi dari s u c c ke 0 . Diberikan Turing mahcine M , misalkan ⌈ M ⌉ adalah angka yang mengkode M dengan cara yang masuk akal.¯ nnn¯¯¯ns u c c0M.⌈ M.⌉M.
Katakan bahwa dua istilah tertutup adalah sama , ditulis t ≃ u , ketika untuk semua n ∈ N , tt , u : n a t → n a tt ≃ un ∈ N danstn¯¯¯ baik menormalkan ke angka yang sama (mereka menormalkan ke angka karena kita berada dalam claculus sangat normalisasi).sn¯¯¯
Misalkan kita memiliki suatu algoritma, yang memberikan istilah tertutup tipe menghitung istilah ekuivalen minimal. Kemudian kita bisa menyelesaikan oracle Hentikan sebagai berikut.n a t → n a t
Ada istilah seperti itu, untuk semua n ∈ N dan semua mesin Turing M ,
S ( ⌈ M ⌉ , ¯ n ) menormalkan ke ¯ 1 jika T perhentian dalam n langkah , dan menormalkan untuk ¯ 0 sebaliknya. Ini sudah dikenal, karena simulasi mesin Turing untuk sejumlah langkah n adalah primitif rekursif.S: N a t × n a t → n a tn ∈ NM.S( ⌈ M⌉ , n¯¯¯)1¯¯¯Tn0¯¯¯n
Ada finitely banyak istilah tertutup yang istilah minimal setara dengan λ x : n a t .Z1, ... , Zk . Algoritma minimisasi kami mengembalikan salah satunya ketika kami memberikannya λ x : n a t .λ x : n a t .0 , dan bahkan mungkin demikian halnya bahwa λ x : n a t .λ x : n a t .0 sebenarnya satu-satunya istilah minimal tersebut. Semua ini tidak masalah, satu-satunya hal yang penting adalah bahwa ada banyak istilah minimal yang setara dengan λ x : n a t .λ x : n a t .0 .λ x : n a t .0
Sekarang, mengingat mesin apa pun , pertimbangkan istilah
u : = λ x : n a t .M.
Jika M berjalan selamanya maka u ¯ n menormalkan ke ¯ 0 untuk setiap n dan setara dengan λ x : n a t .
kamu :=λx:nat.S(⌈M⌉,x)
Mun¯¯¯0¯¯¯n . Untuk memutuskan apakah
M berjalan selamanya, kami makan
u ke dalam algoritma minimzation kami dan cek apakah algoritma kembali salah satu dari
Z 1 , ... , Z k . Jika ya, maka
M berjalan selamanya. Jika tidak, maka berhenti. (Catatan: algoritma tidak perlu menghitung
Z 1 , ... , Z k dengan sendirinya, ini bisa sulit-kode ke algoritma.)
λ x : nat.0M.kamuZ1, ... ,ZkM.Z1, ... ,Zk
Akan menyenangkan untuk mengetahui argumen yang bekerja dengan gagasan kesetaraan yang lebih lemah, misalnya hanya -reducibility.β