Operasi Logika

Jan 26 2023
Ada kesetaraan antara operasi logika dan operasi pada set. Misalnya, ambil pernyataan logis berikut: “Hujan berarti ada awan di langit.

Ada kesetaraan antara operasi logika dan operasi pada set. Misalnya, ambil pernyataan logis berikut:

"Hujan berarti ada awan di langit."

Tidak akan ada hujan tanpa awan. Kita dapat mengambil dua set lokasi, "set tempat hujan" dan "set tempat ada awan", dan menunjukkan bahwa set pertama benar-benar disertakan dalam set kedua.

Demikian pula dalam ilmu komputer, inferensi tipe bergantung pada operasi logika antara tipe dan tipe dapat dianggap sebagai kumpulan semua objek yang termasuk dalam tipe tersebut (jika setidaknya ada satu objek seperti itu, Anda dapat mengatakan bahwa tipe tersebut diisi selain itu . kosong. )

Inferensi tipe menggunakan bukti logika dan bertujuan untuk menemukan tipe yang terpopulasi , karena program menangani objek yang ingin kita temukan tipenya.

Karena kesetaraan di atas saya akan mengilustrasikan operasi logika menggunakan set dalam semangat Boole . Setiap operasi pada set akan diekspresikan menggunakan konektor logika dan notasi logika.

Untuk diskusi saya akan menggunakan dua interval di atas bilangan bulat A dan B sebagai set masukan.

J: 0…10

B: 5…18

Melengkapi

Konektor: tidak

Hasilnya berisi semua elemen yang tidak ada di A .

¬A: …-1, 11…

Persatuan

Konektor: atau

Hasilnya berisi semua elemen yang ada di A atau B .

A ∨ B: 0…18

Persimpangan

Konektor: dan

Hasilnya hanya berisi elemen yang ada di A dan di B .

A ∧ B: 5…10

Persatuan Disjungtif

Konektor: lain (xor)

Hasilnya berisi elemen-elemen yang hanya ada di A yang lain hanya ada di B .

A ⊕ B: 0…4, 11…18

Implikasi

Konektor: hanya jika (menyiratkan)

Hasilnya berisi elemen-elemen yang ada di A hanya jika ada di B .

Itu sedikit lebih sulit untuk dipahami daripada operasi sebelumnya. Sangat mudah untuk melihat bahwa hasilnya mengandung irisan dari dua himpunan: elemen-elemennya ada di A dan di B , yang memenuhi syarat.

Tapi bagaimana dengan sisa B ?

Anda dapat melihat bahwa elemen-elemen B di luar persimpangan tidak berada di A . Apakah itu berarti mereka memenuhi syarat? Itu tergantung bagaimana Anda membacanya:

  • Hasilnya berisi elemen-elemen yang ada di A ( hanya jika ada di B ).
  • Hasilnya berisi elemen-elemen (yang ada di A hanya jika ada di B ).

A ⇒ B: …-1, 5…

Contoh lain adalah "Hujan hanya jika ada awan". Jika ada tempat yang hujan tetapi tidak ada awan maka kondisinya tidak terpenuhi . Kalimat itu tidak mensyaratkan tempat yang tidak hujan, jadi bisa mendung atau tidak, juga tidak apa-apa.

Perbedaan

Konektor: tapi tidak

Hasilnya hanya berisi elemen-elemen yang ada di A tetapi tidak di B .

Menariknya, kali ini tidak ada bacaan khusus namun perbedaan justru pelengkap dari implikasinya! Perhatikan juga bahwa urutan A dan B penting.

A - B: 0…4