Operacje logiczne

Jan 26 2023
Istnieje równoważność między operacjami logicznymi a operacjami na zbiorach. Weźmy na przykład następujące logiczne stwierdzenie: „Pada deszcz oznacza, że ​​na niebie są chmury.

Istnieje równoważność między operacjami logicznymi a operacjami na zbiorach. Weźmy na przykład następujące logiczne stwierdzenie:

„Pada deszcz oznacza, że ​​na niebie są chmury”.

Bez chmur nie byłoby deszczu. Możemy wziąć dwa zestawy lokalizacji, „zbiór miejsc, w których pada deszcz” i „zbiór miejsc, w których występują chmury”, i pokazać, że pierwszy zestaw jest ściśle zawarty w drugim zbiorze.

Podobnie w informatyce wnioskowanie o typach opiera się na operacjach logicznych między typami, a typ może być traktowany jako zbiór wszystkich obiektów należących do tego typu (jeśli istnieje przynajmniej jeden taki obiekt, można powiedzieć, że typ jest zapełniony, w przeciwnym razie jest to pusty. )

Wnioskowanie typu wykorzystuje dowody logiczne i ma na celu znalezienie zapełnionych typów, ponieważ programy obsługują obiekty, których typ chcemy znaleźć.

Ze względu na powyższą równoważność będę ilustrował operacje logiczne na zbiorach w duchu Boole'a . Każda operacja na zbiorach zostanie wyrażona za pomocą logicznego konektora i notacji logicznej.

Do dyskusji użyję dwóch przedziałów nad liczbami całkowitymi A i B jako zbiorów wejściowych.

O: 0…10

B: 5…18

Komplement

Złącze: nie

Wynik zawiera wszystkie elementy, których nie ma w A .

¬A: …-1, 11…

Unia

Złącze: lub

Wynik zawiera wszystkie elementy, które znajdują się w A lub B .

A ∨ B: 0…18

Skrzyżowanie

Złącze: i

Wynik zawiera tylko te elementy, które znajdują się zarówno w A , jak iw B.

A ∧ B: 5…10

Unia dysjunkcyjna

Złącze: else (xor)

Wynik zawiera elementy, które są tylko w A , inne są tylko w B.

A ⊕ B: 0…4, 11…18

Implikacja

Złącze: tylko wtedy, gdy (sugeruje)

Wynik zawiera elementy, które znajdują się w A tylko wtedy, gdy znajdują się w B .

Jest to trochę trudniejsze do zrozumienia niż poprzednie operacje. Łatwo zauważyć, że wynik zawiera przecięcie dwóch zbiorów: jego elementy znajdują się w A iw B , co spełnia warunek.

Ale co z resztą B ?

Możesz zobaczyć, że elementy B poza przecięciem nie znajdują się w A . Czy to znaczy, że spełniają warunek? To zależy, jak to przeczytasz:

  • Wynik zawiera elementy, które znajdują się w A ( tylko jeśli są w B ).
  • Wynik zawiera elementy (które znajdują się w A tylko wtedy, gdy znajdują się w B ).

A ⇒ B: …-1, 5…

Innym przykładem może być „Deszcz pada tylko wtedy, gdy są chmury”. Jeśli istnieje miejsce, w którym pada deszcz, ale nie ma chmur, warunek nie jest spełniony . Zdanie nie stawia warunku w miejscach, w których nie pada deszcz, więc mogą być pochmurne lub nie, albo jest w porządku.

Różnica

Złącze: ale nie

Wynik zawiera tylko elementy, które znajdują się w A , ale nie w B.

Co ciekawe, tym razem nie ma specjalnego odczytania, ale różnica polega na dopełnieniu implikacji! Należy również pamiętać, że kolejność A i B ma znaczenie.

A-B: 0…4