Klasifikasi Kalkulator Lambda Diketik / Tidak Diketik

18

Adakah yang bisa menjelaskan secara singkat (jika mungkin!) Atau merujuk saya ke referensi, meringkas perbedaan antara kalkulus lambda yang tidak diketik dan kalkulus lambda yang diketik lebih umum?

Saya terutama mencari pernyataan dari kekuatan ekspresif mereka, ekivalen dengan sistem logika / aritmatika atau metode perhitungan, dan analogi dengan bahasa pemrograman jika berlaku.

Walaupun saya tentu ingin membaca, sesuatu seperti tabel referensi yang menguraikan kalkulus dan persamaan / perbedaan / tempat dalam hierarki akan menjadi referensi BESAR untuk membantu saya memilahnya.

Tidak mengatakan di bawah ini benar, hanya mencoba membuat sketsa bersama beberapa tayangan yang saya harus melihat apakah mereka setidaknya berfungsi sebagai titik awal (atau sesuatu untuk diperbaiki!)

Kalkulus lambda yang tidak diketik - mis. untuk logika urutan pertama - tidak dapat melakukan X

Cukup ketik lambda calculus - eq to ... logic, terkait dengan Lisp?

Lambda 'Polimorfik' - dll.

Kalkulus Konstruksi - logika intusionis?

Combinatory Logic - sebanding dengan ??? mengetik kalkulus lambda, terkait dengan jenis bahasa APL / J

Jika ini mengikat ke kubus lambda dan tiga kapaknya semua lebih baik.

Sementara saya akrab dengan dasar-dasar kalkulus lambda dan pemrograman dengan bahasa fungsional, saya belum pernah membungkukkan kepala, atau membuat koneksi signifikan ke, sistem jenis yang terlibat dan rasa yang berbeda dari kalkulus lambda (dan mungkin pi?).

Ketika saya mencoba untuk meneliti ini saya tidak bisa membantu tetapi menemukan diri saya teralihkan, membuka banyak tab browser dan bercabang ke banyak arah saya tidak pernah masuk ke salah satu dari mereka dengan kedalaman!

Saya tidak yakin apakah yang saya minta itu masuk akal, tapi mudah-mudahan setidaknya saya sudah cukup melukis gambar untuk menyarankan beberapa bacaan yang dapat menjelaskan apa yang saya cari?

jon_darkstar
sumber
1
visualisasi lambda cube, jika mungkin merujuknya dapat membantu dengan penjelasan rbjones.com/rbjpub/logic/cl/tlc001.htm
jon_darkstar
3
Sebuah kisah pribadi: ketika saya pertama kali belajar kalkulus lambda yang diketik dan tidak diketik, saya selalu bingung mengapa saya harus peduli dengan kalkulus lengkap yang diketik dan bukan Turing. Ini sering membuat saya kehilangan minat. Di sisi lain, saya tidak pernah terganggu oleh ini ketika berpikir tentang kompleksitas dan perhitungan yang efisien. Akhirnya seseorang menghubungkan dua untai untuk saya dalam jawaban ini dan sekarang saya bisa lebih memahami mengapa begitu banyak waktu dihabiskan untuk mengajar saya mengetik kalkulus lambda.
Artem Kaznatcheev
saya melihat lo.logictag telah ditambahkan. mungkin pertanyaan bodoh, tapi apa sebenarnya artinya?
jon_darkstar
"Ketika saya mencoba untuk meneliti hal ini saya tidak dapat membantu tetapi mendapati diri saya teralihkan, membuka banyak tab browser dan bercabang ke banyak arah sehingga saya tidak pernah bisa masuk ke dalamnya dengan kedalaman apa pun!" <- Ini aku, sepanjang waktu! Terima kasih telah bertanya apa yang saya pikirkan ...
agam

Jawaban:

26

Meja Anda agak bingung; ini yang lebih baik.

  • Kalkulus lambda yang tidak diketik - tidak ada interpretasi logis, seperti yang dicatat Andrej
  • Cukup ketik lambda calculus - logika proposisional intuitionistic
  • Kalkulus lambda polimorfik - logika orde dua murni (yaitu, tanpa penjumlah urutan pertama)
  • Jenis dependen - generalisasi logika tingkat pertama
  • Kalkulus konstruksi - generalisasi logika tingkat tinggi

Ketergantungan tipe lebih umum daripada kuantifikasi tingkat pertama, karena mengubah bukti menjadi objek yang dapat Anda kuantifikasi. Kalkulator Lambda yang sesuai dengan FOL intuitionistic biasa ada, tetapi tidak cukup banyak digunakan untuk memiliki nama khusus - orang cenderung langsung ke tipe dependen.

Anda juga dapat menghubungkan bentuk sintaksis kalkulus dengan sistem logis.

  • Kalkulus Combinator (mis., Combinator SKI) - Sistem gaya Hilbert
  • Bentuk A-normal - kalkulus berurutan
  • Kalkulus lambda yang diketik biasa - deduksi alami
Neel Krishnaswami
sumber
fantastis! Terima kasih. membantu saya mewujudkan motivasi / perbedaan untuk kalkulus yang berbeda ini, dan tentunya akan membantu saya menjaga pemahaman dasar ketika saya membaca lebih banyak tentang hal itu
jon_darkstar
Saya juga akan memasukkan kalkulus lambda yang diketik tanpa interpretasi logis, seperti PCF. Juga, ada banyak kalkulus lambda keren yang sesuai dengan logika lain, seperti kalkulus lambda linier.
Sam Tobin-Hochstadt
@ Sam: Poin bagus. "Tidak ada interpretasi logis" benar-benar terlalu kuat, karena itu benar-benar berarti "referensi diri tidak diizinkan diizinkan", yang dikombinasikan dengan penggunaan kembali variabel menyebabkan inkonsistensi. Tetapi beberapa teori yang didasarkan pada logika linier mendukung skema pemahaman naif tanpa ada ketidakkonsistenan.
Neel Krishnaswami
tentu saja, beberapa cara Anda dapat menambahkan beberapa hal ke lambda calculus tanpa menjadi tidak konsisten. Tetapi ada banyak kalkulus lambda yang menarik, diketik, tanpa interpretasi logis persis seperti kalkulus lambda yang tidak diketik.
Sam Tobin-Hochstadt
20

λλλnatλ0T

λλ

λλ

λλλUlambda : U -> (U -> U)gamma : (U -> U) -> UλUλCUU[Cop,Set]UUU

Referensi:

Andrej Bauer
sumber