« poprzedni punkt   następny punkt »


7.2. Semantyka

Niech symbolem prawdy będzie 1, a symbolem fałszu 0. Fakt, że jakieś zdanie α jest prawdziwe, oznaczymy przez w( α) =1, a fakt, że jakieś zdanie jest fałszywe oznaczymy przez w( α) = 0. W ten sposób w jest funkcją, która zdaniom przypisuje ich wartość logiczną.

w("Wisła jest nazwą rzeki w Polsce") = 1 oraz
w("Tatry są najwyższymi górami na świecie") = 0

Wartościowaniem zmiennych zdaniowych nazywamy funkcję, która zmiennym zdaniowym przypisuje wartości prawda i fałsz.

Mając dane wartościowanie zmiennych (wartości zdań prostych) można określić wartość logiczną zdań złożonych. Podane poniżej tablice nazywamy czasami matrycami logicznymi (albo tablicami logicznymi) (por. Rys. 7.2.1). Definiują one sens operacji zdaniotwórczych i pozwalają obliczyć wartość dowolnych zdań złożonych (formuł rachunku zdań).

w(p)

w( ¬ p)

0

1

1

0

w(p)

w(q)

w(p ∧ q)


w(p)

w(q)

w(p ∨ q)

0

0

0

0

0

0

0

1

0

0

1

1

1

0

0

1

0

1

1

1

1

1

1

1

 

w(p)

w(q)

w(p → q)


w(p)

w(q)

w(p ↔ q)

0

0

1

0

0

1

0

1

1

0

1

0

1

0

0

1

0

0

1

1

1

1

1

1

Rys. 7.2.1 Na rysunku przedstawiono tablice logiczne dla funktorów ¬ , ∧ , ∨ , → , ↔ .

Innymi słowy, w zbiorze wartości logicznych {0,1} mamy określone: jednoargumentowe działanie ¬ oraz cztery działania dwuargumentowe ∧ , ∨ , → , ↔ :

¬ 1 = 0 ¬ 0 = 1    
1 ∧ 1 = 1 1 ∧ 0 = 0 0 ∧ 1 = 0 0 ∧ 0 = 0
1 ∨ 1 = 1 1 ∨ 0 = 1 0 ∨ 1 = 1 0 ∨ 0 = 0
1 → 1 = 1 1 → 0 = 0 0 → 1 = 1 0 → 0 = 1
1 ↔ 1 = 1 1 ↔ 0 = 0 0 ↔ 1 = 0 0 ↔ 0 = 1

Czytelnik zechce zwrócić szczególną uwagę na, najmniej intuicyjny, spójnik implikacji → . Implikacja p → q przyjmuje wartość prawdy, gdy poprzednik p jest zdaniem fałszywym. Zatem zdanie "2+2=5 → (każda liczba naturalna jest parzysta)" jest prawdziwe, bo oba człony zdania są fałszywe, a zdanie "2+2=5 → 2+2=4" jest prawdziwe, bo poprzednik tej implikacji jest zdaniem fałszywym.

Zbiór {0,1} z operacjami ¬ , ∧ , ∨ , → nazywa się dwuelementową algebrą Boole'a. Zwykle będziemy ją oznaczać przez B0 (por. wykład 15).

Pytanie 7.2.1: Jaka jest wartość podanych wyrażeń w algebrze Boole'a?

  1. (((1 ∧ 1 ) ∧ 0) → 1)
  2. ((0 ↔ 1) → (( ¬ 0 ∧ 0) → 0))
  3. ((((1 ∨ 1) ∨ 0 ) → ¬ (0 ↔ 1)) ↔ 0 )

Funktory logiczne ¬ , ∧ , ∨ , → mają pewną wspólną cechę, a mianowicie: wartość logiczna zdań utworzonych przy ich pomocy, zależy jedynie od wartości logicznej zdań, z których powstało wyrażenie, a nie od sensu tych zdań. Taką własność funktorów nazywamy ekstensjonalnością.

Przykład 7.2.1

Wartość zdania: "Wszyscy na tej sali żywo interesują się logiką lub rachunek zdań jest podstawą logiki matematycznej" zależy tylko od tego jaka jest wartość zdań: "wszyscy na tej sali żywo interesują się logiką " lub "rachunek zdań jest podstawą logiki matematycznej". Co więcej wartością tego zdania jest prawda, o ile chociaż jedno ze zdań składowych jest prawdziwe.

Natomiast wartość logiczna zdania "Myślę, że wszyscy na sali żywo interesują się logiką lub rachunek zdań jest podstawą logiki matematycznej " zależy nie od zdań składowych ale od tego co ja o tym myślę. Chociaż zwrot "Myślę, że" można uznać za operator, który pozwala tworzyć nowe zdania, to jednak nie ma on własności ekstensjonalności. Takimi funktorami nie zajmuje się rachunek zdań.

Pytanie 7.2.2: Przyjmijmy, że Piotr jest najlepszym studentem PJWSTK. Jaka jest wartość zdania "Wydaje się, że Piotr jest najlepszym studentem PJWSTK"?

----- Sprawdź odpowiedź -----

Powstaje pytanie: ile można utworzyć różnych funktorów zdaniotwórczych ekstensjonalnych?

Zastanówmy się najpierw, ile jest różnych funktorów zdaniotwórczych ekstensjonalnych jednoargumentowych. Inaczej mówiąc, ile jest różnych funkcji jednoargumentowych f : {0,1} → {0,1}.Oczywista odpowiedź to 4, bo można utworzyć dokładnie cztery (22) różne matryce logiczne (por. Rys. 7.2.2(a)):

p

f1p

f2 p

f3 p

f4 p

0

1

0

1

0

1

0

1

1

0

Rys. 7.2.2(a) Tablica wszystkich funktorów jednoargumentowych
(tzn. wszystkich funkcji ze zbioru {0,1} w zbiór {0,1}).

Podobnie, zastanówmy się, ile można utworzyć różnych funktorów zdaniotwórczych dwuargumentowych, ekstensjonalnych. Czyli, ile jest różnych funkcji dwuargumentowych f:{0,1} × {0,1} → {0,1}? Oczywiście 24, czyli 16 (por. Rys. 7.2.2(b)).

p q

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

f11

f12

f13

f14

f15

f16

0 0

0

1

0

0

0

1

1

1

0

0

0

1

1

1

0

1

0 1

0

0

1

0

0

1

0

0

1

1

0

1

1

0

1

1

1 0

0

0

0

1

0

0

1

0

1

0

1

1

0

1

1

1

1 1

0

0

0

0

1

0

0

1

0

1

1

0

1

1

1

1

Rys. 7.2.2(b) Tablica wszystkich funktorów dwuargumentowych.

Zauważmy, że f5 to po prostu koniunkcja, a f15 to alternatywa. Chociaż jest aż 16 różnych funktorów dwuargumentowych, to najczęściej używa się koniunkcji ∧ , alternatywy ∨ i implikacji → . Dlaczego? Otóż, te funktory najlepiej odpowiadają znanym w językach naturalnych spójnikom logicznym, a ponadto każdy inny funktor dwuargumentowy można zdefiniować używając tylko negacji i jednego z tych funktorów. Warto jeszcze zwrócić uwagę na funktor oznaczony na rysunku 7.2.2(b) numerem 12. Nazywa się on funktorem Sheffera i oznacza się go symbolem |. Funktor Sheffera, sam jeden, wystarcza do zdefiniowania wszystkich pozostałych funktorów zdaniotwórczych, zarówno jednoargumentowych jak i dwuargumentowych. Czytelnik zechce sprawdzić samodzielnie, że zachodzą następujące równości, definiujące funktory negacji, alternatywy i koniunkcji przy pomocy funktora Sheffera:

¬ p = p|p, p ∨ q = (p|p)|(q|q), p ∧ q = (p|q)|(p|q).

Zadanie 7.2.1 Zdefiniować funktory dwuargumentowe f5, f8, f13 i f16 przy pomocy negacji i alternatywy.

Odpowiedź: f5 (p,q) = ¬ ( ¬ p ∨ ¬ q) , f8(p,q) = ¬ ( ¬ p ∨ ¬ q) ∨ ¬ ( p ∨ q),

f13(p,q) = ( ¬ p ∨ q), f16 (p,q) = p ∨ ¬ p .


« poprzedni punkt   następny punkt »