Kita tahu bahwa beta-equality dari istilah lambda yang diketik adalah mudah untuk dipilih. Diberikan M, N: σ → τ, apakah dapat ditentukan apakah untuk semua X: σ, MX NX?
10
Kita tahu bahwa beta-equality dari istilah lambda yang diketik adalah mudah untuk dipilih. Diberikan M, N: σ → τ, apakah dapat ditentukan apakah untuk semua X: σ, MX NX?
Jawaban:
Seperti yang saya katakan dalam komentar saya, jawabannya secara umum adalah tidak.
Poin penting untuk dipahami (saya katakan ini untuk Viclib, yang tampaknya belajar tentang hal-hal ini) adalah bahwa memiliki bahasa pemrograman / set mesin di mana semua program / perhitungan diakhiri tidak berarti menyiratkan kesetaraan fungsi (yaitu, apakah dua program / mesin menghitung fungsi yang sama) dapat dipilih. Contoh mudah: ambil satu set mesin Turing secara polinomi. Menurut definisi, semua mesin tersebut berakhir pada semua input. Sekarang, mengingat mesin Turing apa pun , ada mesin Turing yang, diberikan dalam input string , mensimulasikanlangkah-langkah perhitungan pada input tetap (katakanlah, string kosong) dan menerima jika paling banyak berakhirM M0 x |x| M M |x| langkah, atau menolak sebaliknya. Jika adalah mesin Turing yang selalu langsung menolak, dan keduanya (jelas) memiliki clock-polinomial, dan apakah kita dapat memutuskan apakah dan menghitung fungsi yang sama (atau, dalam hal ini, memutuskan bahasa yang sama), kita akan dapat memutuskan apakah (yang, ingat, adalah mesin Turing yang sewenang-wenang) berakhir pada string kosong.N M0 N M0 N M
Dalam kasus yang hanya diketik -calculus (STLC), argumen yang sama berfungsi, kecuali bahwa mengukur kekuatan ekspresif dari STLC tidak sepele seperti dalam kasus di atas. Ketika saya menulis komentar saya, saya memikirkan beberapa makalah oleh Hillebrand, Kanellakis dan Mairson dari awal 90-an, yang menunjukkan bahwa, dengan menggunakan jenis yang lebih kompleks daripada jenis bilangan bulat Gereja yang biasa, orang dapat menyandikan dalam STLC cukup kompleks perhitungan untuk argumen di atas berfungsi. Sebenarnya, saya melihat sekarang bahwa bahan yang dibutuhkan sudah dalam bukti disederhanakan teorema Statman Mairson:λ
Harry G. Mairson, Bukti sederhana dari teorema Statman. Theoretical Computer Science, 103 (2): 387-394, 1992. (Tersedia online di sini ).
Dalam tulisan itu, Mairson menunjukkan bahwa, mengingat setiap Turing mesin , ada tipe sederhana dan -istilah pengkodean fungsi transisi . (Ini bukan apriori yang jelas, jika seseorang berpikir tentang kekuatan ekspresif yang sangat buruk dari STLC pada bilangan bulat Gereja. Memang, pengkodean Mairson tidak langsung). Dari sini, tidaklah sulit untuk membangun sebuah istilahM σ λ δM:σ→σ M
(di mana adalah Instansiasi pada dari tipe bilangan bulat Gereja) sehingga menjadi jika berakhir di paling langkah ketika mengumpankan string kosong, atau mengurangi ke sebaliknya. Seperti di atas, jika kita dapat memutuskan bahwa fungsi yang diwakili oleh adalah fungsi konstan , kita akan memutuskan terminasi pada string kosong.nat[σ] σ tMn–– 1– M n 0– tM 0– M
sumber