Istilah λ berikut, di sini dalam bentuk normal:
sort = (λabc.(a(λdefg.(f(d(λhij.(j(λkl.(k(λmn.(mhi))l))
(h(λkl.l)i)))(λhi.(i(λjk.(bd(jhk)))(bd(h(λjk.(j
(λlm.m)k))c)))))e))(λde.e)(λde.(d(λfg.g)e))c))
Menerapkan algoritma pengurutan untuk daftar yang dikodekan oleh gereja. Yaitu, hasil dari:
sort (λ c n . (c 3 (c 1 (c 2 n)))) β→ (λ c n . (c 1 (c 2 (c 3 n))))
Demikian pula,
sort_below = λabcd.a(λef.f(λghi.g(λj.h(λkl.kj(ikl)))(hi))e(λgh.h))
(λe.d)(λe.b(λf.e(f(λghi.hg)(λgh.cfh))))
Juga mengimplementasikan penyortiran untuk daftar yang sama seperti di atas, kecuali Anda harus memberikan argumen tambahan dengan batas untuk nomor yang akan dipertimbangkan:
sort_below 4 [5,1,3,2,4] → [1,2,3]
Saya mencoba untuk menentukan apakah istilah-istilah tersebut dapat diketik pada logika affine dasar. Karena saya tidak tahu jenis pemeriksa EAL yang tersedia untuk umum, ini membuktikan tugas yang lebih sulit dari yang saya harapkan. Apakah ada tipe untuk sort
logika affine dasar?
lo.logic
lambda-calculus
type-systems
Viktor Maia
sumber
sumber
Jawaban:
Saya pikir
sort
, seperti yang disajikan di sana, tidak dapat diketik pada EAL. Saya tidak bisa membuktikannya, tetapi itu tidak bekerja pada Algoritma Abstrak Lamping tanpa oracle. Selain itu, sementara istilahnya agak pintar dan singkat, ia menggunakan strategi yang sangat aneh yang tidak ramah-EAL.Tetapi di balik pertanyaan ini ada yang lebih menarik: "dapatkah fungsi penyortiran nat diterapkan di EAL" ? Itu adalah pertanyaan yang sangat sulit pada waktu itu, tetapi sekarang itu terlihat sangat sepele. Ya tentu saja. Ada banyak cara sederhana untuk melakukannya. Sebagai contoh, seseorang dapat mengisi kode Scott yang dikodekan
NatSet
dengan kode GerejaNat
, dan kemudian mengonversinya menjadi daftar. Berikut ini adalah demonstrasi lengkap:Berikut adalah bentuk normal bruijn yang diindeks dari versi yang sedikit diubah di
sort
atas, yang harus diterima(x -> (x x))
sebagai argumen pertama agar dapat berfungsi (jika tidak, ia tidak memiliki bentuk normal):Cukup sederhana dalam retrospeksi.
sumber