Untuk bukti kebenaran, saya mencari gagasan yang dapat digunakan tentang kesetaraan program untuk sistem tipe murni (PTS) Barendregt; hilang itu, untuk sistem jenis yang cukup spesifik. Tujuan saya hanyalah menggunakan gagasan itu, bukan untuk menyelidiki demi kepentingannya sendiri.
Gagasan ini harus " ekstensional " - khususnya, untuk membuktikan bahwa , harus cukup untuk membuktikan bahwa untuk semua nilai dari jenis yang sesuai.t 1v
Kesetaraan denotasi
Kesetaraan denotasional dengan mudah memenuhi semua lemmas yang tepat, tetapi semantik denotasional untuk PTS yang sewenang-wenang tampaknya agak menantang - itu sudah terasa sulit untuk Sistem F.
Kesetaraan kontekstual / observasi
Alternatif yang jelas kemudian berbagai bentuk kesetaraan kontekstual (dua istilah adalah setara jika tidak ada konteks dasar yang dapat membedakannya), tetapi definisi tersebut tidak segera dapat digunakan; berbagai lemma tidak sepele untuk dibuktikan. Apakah sudah terbukti untuk PTS? Atau, akankah teori itu menjadi "perpanjangan yang jelas", atau adakah alasan untuk percaya bahwa teori itu akan sangat berbeda?
EDIT: Saya tidak mengatakan apa yang sulit di atas.
Bagian yang mudah: definisi
Mendefinisikan kesetaraan tidak terlalu sulit, dan definisi muncul di banyak makalah (dimulai setidaknya dari studi Plotkin 1975 tentang PCF, jika tidak sebelumnya - sumbernya mungkin tesis PhD Morris dari 1968). Kami jika untuk semua konteks dasar , - yaitu, dan memberikan hasil yang sama . Anda memiliki beberapa pilihan di sini dengan banyak alternatif: Misalnya, dalam bahasa yang sangat normal, jika Anda memiliki jenis dasar naturals, Anda dapat mengatakan bahwa konteks dasar adalah yang mengembalikan naturals, dan kemudian berarti bahwa dan C C [ t 1 ] ≃ C [ t 2 ] C [ t 1 ] C [ t 2 ] a ≃ b a bmengevaluasi ke nomor yang sama. Dengan nontermination, untuk bahasa yang masuk akal cukup menggunakan "X terminates" sebagai observasi, karena jika dua program setara ketika mengamati terminasi, mereka juga sama ketika mengamati hasilnya.
Bagian yang sulit: buktinya
Namun, makalah-makalah itu seringkali tidak menjelaskan betapa sulitnya untuk benar-benar menggunakan definisi ini. Semua referensi di bawah ini menunjukkan bagaimana menangani masalah ini itu, tetapi teori yang dibutuhkan lebih sulit daripada yang dipikirkan orang. Bagaimana kami membuktikannya ? Apakah kita benar-benar melakukan analisis kasus dan induksi pada konteks? Anda tidak ingin melakukan itu.
Seperti yang ditunjukkan Martin Berger, Anda ingin menggunakan bisimulasi (seperti yang dilakukan oleh Pitts) atau hubungan kesetaraan logis (yang oleh Harper disebut "kesetaraan logis").
Akhirnya, bagaimana Anda membuktikan ekstensionalitas sebagaimana didefinisikan di atas?
Harper memecahkan pertanyaan-pertanyaan ini dalam 10 halaman untuk System T, melalui kepintaran dan hubungan logis yang cukup besar. Pitts mengambil lebih banyak. Beberapa bahasa masih lebih kompleks.
Bagaimana menghadapi ini
Saya sebenarnya tergoda untuk membuat pembuktian saya secara kondisional pada teori dugaan ekuivalensi untuk PTS, tetapi teori-teori yang sebenarnya memerlukan argumen nontrivial, jadi saya tidak yakin seberapa besar dugaan dugaan seperti itu akan bertahan.
Saya mengetahui (meskipun tidak secara mendetail) dari karya-karya berikut:
- Andrew Pitts (misalnya dalam ATTAPL untuk Sistem F yang diperluas, dan dalam beberapa makalah, seperti 58 halaman "Teori Berbasis Kesamaan Kesetaraan Program").
- Yayasan Praktis Bahasa Pemrograman (bab 47-48), yang terinspirasi oleh Pitts (tetapi mengklaim memiliki bukti yang lebih sederhana).
- Sebuah studi logis tentang kesetaraan program . Saya tidak dapat menemukan abstrak bahasa Inggris, tetapi tampaknya menghabiskan banyak upaya untuk efek samping (referensi), yang tampaknya merupakan komplikasi ortogonal.