Ini pertanyaan yang menarik. Jelas seseorang tidak dapat berharap untuk memiliki program yang memutuskan untuk setiap apakah ∀ k T ( e , k ) berlaku atau tidak, karena ini akan memutuskan Masalah Pemutusan. Seperti yang telah disebutkan, ada beberapa cara untuk menafsirkan bukti secara komputasi: ekstensi Curry-Howard, realisasi, dialektika, dan sebagainya. Tetapi mereka semua akan menginterpretasikan secara teoretis teorema yang Anda sebutkan kurang lebih dengan cara berikut.e∀kT(e,k)
Untuk kesederhanaan pertimbangkan teorema klasik yang setara
(1) ∃i∀j(¬T(e,j)→¬T(e,i))
Ini (secara konstruktif) setara dengan yang disebutkan karena mengingat kita dapat memutuskan apakah ∀ k T ( e , k ) berlaku atau tidak dengan hanya memeriksa nilai ¬ T ( e , i ) . Jika ¬ T ( e , i ) tahan maka ∃ i ¬ T ( e , i ) dan karenanya ¬ ∀ i T ( e , i ) . Jika di sisi laini∀kT(e,k)¬T(e,i)¬T(e,i)∃i¬T(e,i)¬∀iT(e,i) tidak berlaku oleh (1) kita memiliki ∀ j ( ¬ T ( e , j ) → ⊥ ) yang menyiratkan ∀ j T ( e , j ) .¬T(e,i)∀j(¬T(e,j)→⊥)∀jT(e,j)
Sekarang, sekali lagi kita tidak dapat menghitung dalam (1) untuk setiap e yang diberikan karena kita akan lagi menyelesaikan Masalah Pemutusan. Apa yang akan dilakukan oleh semua interpretasi yang disebutkan di atas adalah untuk melihat teorema yang setaraie
(2) ∀f∃i′(¬T(e,f(i′))→¬T(e,i′))
Fungsi disebut fungsi Herbrand. Ia mencoba untuk menghitung contoh contoh j untuk setiap saksi potensial yang diberikan i . Jelas bahwa (1) dan (2) adalah setara. Dari kiri ke kanan ini konstruktif, cukup ambil i ′ = i pada (2), di mana i adalah saksi yang dianggap sebagai (1). Dari kanan ke kiri seseorang harus beralasan secara klasik. Asumsikan (1) itu tidak benar. Kemudian,fjii′=ii
(3) ∀i∃j¬(¬T(e,j)→¬T(e,i))
Biarkan menjadi fungsi menyaksikan ini, yaituf′
(4) ∀i¬(¬T(e,f′(i))→¬T(e,i))
Sekarang, ambil dalam (2) dan kami memiliki ( ¬ T ( e , f ′ ( i ′ ) ) → ¬ T ( e , i ′ ) ) , untuk beberapa i ′ . Tetapi dengan mengambil i = i ′ dalam (4) kita memperoleh negasi dari itu, kontradiksi. Karenanya (2) menyiratkan (1).f=f′(¬T(e,f′(i′))→¬T(e,i′))i′i=i′
Jadi, kita memiliki bahwa (1) dan (2) secara klasik setara. Tetapi yang menarik adalah bahwa (2) sekarang memiliki saksi konstruktif yang sangat sederhana. Ambil saja jika T ( e , f ( 0 ) ) tidak berlaku, karena kesimpulan (2) benar; atau ambil i ′ = 0 jika T ( e , f ( 0 ) ) berlaku, karena kemudian ¬ T ( e , f ( 0 )i′=f(0)T(e,f(0))i′=0T(e,f(0)) tidak berlaku dan premis (2) salah, menjadikannya kembali benar.¬T(e,f(0))
Oleh karena itu, cara untuk menginterpretasi secara teoretis suatu teorema klasik seperti (1) adalah dengan melihat formulasi setara (klasik) yang dapat dibuktikan secara konstruktif, dalam kasus kami (2).
Perbedaan penafsiran yang disebutkan di atas hanya berbeda pada cara fungsi muncul. Dalam hal realisasi dan interpretasi dialektika, ini secara eksplisit diberikan oleh interpretasi, ketika dikombinasikan dengan beberapa bentuk terjemahan negatif (seperti Goedel-Gentzen) Dalam kasus ekstensi Curry-Howard dengan call-cc dan operator lanjutan, fungsi f muncul dari kenyataan bahwa program diizinkan untuk "mengetahui" bagaimana nilai tertentu (dalam kasus kami i ) akan digunakan, jadi f adalah lanjutan dari program di sekitar titik di mana saya dihitung.ffifi
Poin penting lainnya adalah bahwa Anda ingin bagian dari (1) ke (2) menjadi "modular", yaitu jika (1) digunakan untuk membuktikan (1 '), maka interpretasinya (2) harus digunakan dengan cara yang sama. untuk membuktikan interpretasi dari (1 '), katakanlah (2'). Semua interpretasi yang disebutkan di atas melakukan itu, termasuk terjemahan negatif Goedel-Gentzen.