Apakah kita mampu membuktikan teorema parametricity gratis tentang fungsi seperti ? Seharusnya menyatakan bahwa f mengambil daftar dan selalu mengembalikan permutasi itu.
Contoh lain: membuktikan bahwa fungsi akan selalu mengembalikan daftar permutasi dengan tepat satu elemen disalin.
linear-logic
parametricity
Łukasz Lew
sumber
sumber
Jawaban:
Berbagai orang tertarik untuk membuktikan hal semacam ini. Neel Krishnaswami menyebutkan teorema khusus ini di sini . Saya juga melihat Frank Pfenning memberikan beberapa contoh keren untuk logika yang dipesan. Misalnya, jika Anda memiliki , maka dalam sistem tipe yang diurutkan, e harus menambahkan daftar x dan y .A,x:[A],y:[A]⊢e:[A] e x y
Jawaban singkatnya adalah ya, kami dapat membuktikan contoh pertama Anda. Dalam konteks kalkulus lambda, pendekatan berbasis hubungan logis dijelaskan dalam makalah ini . Mereka akan membuktikan teorema Anda dalam dua langkah:
Tetapi, teorema semacam ini menjadi lebih menarik ketika kita melihat bahasa dengan efek dan kemampuan kita untuk membuktikannya untuk bahasa-bahasa seperti itu sangat terbatas. Sebagai contoh, perhatikan isomorfisma dari Sistem F. Dalam pengaturan nilai-panggilan, isomorfisma ini terputus ketika kita menambahkan non-terminasi. Kami harus bisa memulihkan isomorfisma yang sama, meskipun, dengan jenis linear: τ ≅ ∀ A . ( Τ → A ) ⊸ A . Sayangnya, kami tidak memiliki hubungan logis operasional yang dapat membuktikan ini.τ≅∀A.(τ→A)→A τ≅∀A.(τ→A)⊸A
Yang mengatakan, ada juga metode sintaksis yang dapat membuktikan isomorfisme dan teorema Anda. Ini tampaknya menjadi pendekatan yang sangat berguna dalam pengaturan linier, dan jauh lebih sedikit dari beban daripada mengatur hubungan logis untuk membuktikan teorema sederhana.
Edit: Karena Anda bertanya, inilah contoh dari bukti sintaksis dari teorema bebas untuk jenis dalam pengaturan dengan istilah ⊥ yang berulang selamanya dan diketik dengan baik dalam konteks apa pun pada jenis apa pun. Idenya adalah untuk menemukan seperangkat istilah kanonik dari suatu jenis dan menggunakannya untuk menentukan apa nilai pengembalian yang mungkin untuk suatu fungsi. Kita mulai dengan teorema kesehatan untuk istilah yang diketik dengan baik.∀A.(A⊗A)⊸A ⊥
Anda meminta referensi untuk bukti semacam ini, tapi saya tidak yakin dengan yang baik. Jenis pemikiran ini terkenal di kalangan tertentu dan mungkin kembali sejauh Gentzen. Saya diberitahu bahwa ini mengingatkan pada pencarian bukti terfokus untuk kalkulus sekuensial, tetapi saya tidak tahu persis apa hubungannya.
Yang mengatakan, saya tidak mengetahui adanya karya modern yang diterbitkan yang menjelaskan metode yang relatif sederhana ini dengan baik. Memang, ini agak terbatas dalam penerapannya ke bahasa yang lebih sederhana. Di sisi lain, saya pikir itu telah dibayangi oleh "Teorema Gratis!" et al dan sebagai akibatnya bahkan banyak peneliti senior segera memikirkan hubungan logis ketika mereka mendengar ungkapan "teorema bebas", tidak menyadari bahwa teknik seperti ini dapat menjadi pendekatan alternatif yang lebih sederhana untuk bukti semacam itu (terutama dalam konteks sistem tipe linear).
sumber