Saya mencoba menyelubungi konsep-konsep tipe universal dan eksistensial tetapi di mana pun saya melihat, saya melihat intuisi logis atau operasional (atau implementasi) (misalnya buku TAPL oleh B. Pierce), yang, yah ... bagus , tapi saya ingin melihat definisi (di mana kita melihatnya sebagai set) - dan dari mereka, turunan dari beberapa undang-undang, serta pembenaran untuk intuisi kita.
Jadi, karena saya tidak dapat menemukan definisi tersebut, saya memutuskan untuk melakukannya sendiri dan saya pikir ini masuk akal:
∃ x . T d e f : = ⋃ S - t y p e T [ x : = S ]
Tetapi, dalam buku TAPL tersebut di atas, kita diberikan definisi ini (meskipun saya akan menyebutnya identitas)
Saya memiliki dua masalah dengan ini:
- Pada LHS dari saya akan berharap bahwa x adalah satu-satunya variabel bebas dari T (karena bagaimana cara melihat tipe "belum-dibangun" dengan beberapa variabel bebas yang menggantung di dalamnya?), Tetapi pada RHS sepertinya y mungkin memiliki beberapa dampak pada T , sehingga lebih baik menjadi variabel bebas dalam T . Maka LHS tidak bisa sama dengan RHS karena set variabel bebas T berbeda di kedua sisi, kan?
- Bahkan mengabaikan masalah pada poin 1. - Saya mencoba menulis ulang RHS menggunakan definisi saya dan melihat apakah saya bisa mendapatkan definisi saya tentang tipe eksistensial tetapi saya terjebak:
Bahkan tidak mirip dengan definisi saya. Apakah mungkin untuk menyederhanakan formula tempat saya tiba? Secara intuitif, karena ada tipe fungsi, mungkin tidak akan pernah sama dengan definisi saya. Tetapi jika mereka tidak setara - apakah mereka setidaknya 'isomorfis' dalam arti tertentu? Jika tidak - apa yang "salah"?
sumber
Jawaban:
Teori himpunan membuat Anda sedikit terluka di sini dan semakin cepat Anda membebaskan diri darinya, semakin baik pemahaman Anda tentang ilmu komputer.
Lupakan persimpangan dan serikat pekerja. Orang-orang mendapatkan ide bahwa dan ∃ seperti ⋂ dan ⋃ , yang merupakan hal yang dilakukan sekolah Polandia sejak lama dengan aljabar Boolean, tetapi itu benar-benar bukan cara untuk pergi (pasti bukan dalam ilmu komputer).∀ ∃ ⋂ ⋃
Anda ingin melihatnya sebagai set. Ok, tapi kemudian kita harus mengabaikan masalah ukuran dan berpura-pura bahwa ada satu set semua set. (Dimungkinkan untuk memperbaiki masalah ukuran dengan meneruskan ke kategori yang berbeda.) Jenis adalah benar-benar seperti Cartesian produk ∀ X . T : = ∏ S : S e t T [ X ↦ S ] . Artinya, unsur ∀ X . T adalah fungsi f dari set ke set: untuk setiap set S memberikan elemen∀x.T
sumber
Dalam kata kata:
sumber
Saya menyarankan untuk tidak menyerah pada intuisi operasional. Operasional adalah yang utama, semua semantik diturunkan, dan hanyalah teknik bukti untuk semantik operasional. Gagasan utama adalah sebagai berikut.
sumber