p

Logika dla bystrzaków - Mark Zegarelli

Kup ebooka

39.90 zł
19.95 zł (19,95 zł najniższa cena z 30 dni)

-
Proszę czekać

Rozdział 4. Kwestie formalne

W tym rozdziale:

wprowadzenie do logiki formalnej;

pięć operatorów logicznych;

tłumaczenie zdań.

Wystarczy przejrzeć kilka wnioskowań logicznych, choćby takich jak w rozdziale 3., aby zacząć podejrzewać, że wszystkie takie stwierdzenia mają ze sobą wiele wspólnego. Podejrzenie to byłoby zresztą słuszne. Logicy przez wieki zdołali przeanalizować multum wnioskowań i dojść do wniosku, że pewne wzorce stale się powtarzają. Wzorce te można zapisać w formie kilku symboli, a następnie analizować pod kątem ich wspólnych cech.

W tym rozdziale wprowadzę pojęcie logiki formalnej, zbioru niezawodnych metod, pozwalających na określenie poprawności lub niepoprawności wnioskowania. Pokażę Ci, jak zapisywać zdania przy użyciu znaków zastępczych zwanych stałymi i zmiennymi, a także omówię pięć operatorów logicznych, służących do łączenia prostych sądów w bardziej rozbudowane zdania.

Operatory logiczne działają podobnie do znanych Ci symboli używanych w arytmetyce (takich jak dodawanie, odejmowanie itp.), więc zwrócę uwagę na te podobieństwa, aby łatwiej było Ci oswoić się z nowymi symbolami logicznymi. Na koniec pokażę Ci, jak tłumaczyć zdania z języka naturalnego na wyrażenia logiczne i z powrotem.

Formalne aspekty logiki zdań

Jak wspomniałem w rozdziale 2., logika zdań (zwana też rachunkiem zdań) jest jednym z dwóch rodzajów klasycznej logiki formalnej. (Drugi rodzaj to logika kwantyfikatorów, zwana też logiką predykatów. W tym rozdziale zapoznasz się z logiką zdań, którą omawiam szerzej w części II i III. Logiką predykatów zajmę się dopiero w części IV).

Wnioskowania logiczne mają formę językową, ale języki naturalne takie jak polski czy angielski są zazwyczaj mało dokładne. Poszczególne wyrazy miewają różne znaczenia, a całe zdania można też różnie interpretować.

Aby pomóc w rozwiązaniu tego problemu, matematycy i filozofowie opracowali logikę zdań - język przeznaczony konkretnie do precyzyjnego i przejrzystego przekazywania wnioskowań logicznych. Ponieważ logika zdań jest językiem symbolicznym, ma dodatkową zaletę, jaką jest umożliwienie wykonywania obliczeń zgodnie z precyzyjnie zdefiniowanymi zasadami i wzorami. Podobnie jak w matematyce, wystarczy przestrzegać reguł, aby otrzymać poprawną odpowiedź.

W poniższych punktach omówię kilka symboli, których używa się w logice zdań.

Stałe zdaniowe

Jeśli kiedykolwiek uczyłeś się algebry, to pewnie zetknąłeś się z tajemniczym x. Twój nauczyciel pewnie powiedział Ci, że x jest pseudonimem tajemniczej liczby i że Twoim zadaniem jest zmuszenie go, aby wyjawił swoją tożsamość. Nauczyciel zapewne pokazał Ci także przeróżne, sadystyczne sposoby torturowania biednego x, aby się wreszcie złamał i ujawnił, jaką jest liczbą. A ile w tym było radości!

Z czym jak z czym, ale z podstawianiem liter pod liczby matematycy radzą sobie znakomicie. Trudno się wobec tego dziwić, że w logice formalnej, która jest dziełem matematyków, również używa się liter jako zamienników. We wprowadzeniu do tego rozdziału wspomniałem, że w logice używa się zdań oznajmujących zamiast liczb, więc pewnie domyślasz się, że w logice formalnej to właśnie zdania zastępowane są literami. Oto przykład:

Niech k = Kasia karmi swoje rybki.

Niech r = Rybki radośnie łopoczą płetwami.

Z jakiegoś powodu logicy najbardziej lubią oznaczać stałe literami p i q. Według niektórych wynika to z tego, że p jest pierwszą literą angielskiego wyrazu proposition, oznaczającego po prostu stwierdzenie, a q dorzucono do tego zupełnym przypadkiem. Sam mam podejrzenie, że po długich latach męczenia algebry w szkolnej ławie logicy zwyczajnie mieli dość patrzenia na x i y.

Zmienne zdaniowe

Gdy logikom przyszło do głowy, że można zastępować zdania literami, zaczęli stosować to rozwiązanie wszędzie. Uświadomili sobie, że literą można oznaczyć każde zdanie, nawet wyrażenie w logice zdań. Używane w ten sposób litery nazywamy zmiennymi zdaniowymi.

W tej książce posługuję się zmiennymi do prezentowania ogólnych wzorców w logice zdań, a stałych używam przy omawianiu konkretnych przykładów.

Kiedy litera zastępuje zdanie w logice zdań, nazywamy ją zmienną zdaniową. Zgodnie z konwencją zmienne oznacza się małymi literami. W tej książce używam niemal wyłącznie liter x i y, a w razie potrzeby - dodatkowo w i z.

Wartość logiczna

Jak wspomniałem w rozdziale 3., każde wyrażenie w logice ma wartość logiczną: prawdę lub fałsz. W logice formalnej prawdę zapisujemy jako P, a fałsz jako F.

Spróbujmy w ramach przykładu określić wartość logiczną dwóch poniższych stałych zdaniowych:

Niech n = Nil jest najdłuższą rzeką w Afryce.

Niech l = Leonardo DiCaprio jest królem świata.

Tak się akurat składa, że Nil rzeczywiście jest najdłuższą rzeką w Afryce, więc wartość logiczna n to P. Akurat składa się też tak, że Leonardo DiCaprio nie jest królem świata, więc wartość logiczna l to F.

W algebrze boolowskiej, prekursorce logiki formalnej, wartością 1 określa się P, a wartością 0 określa się F. Te dwie wartości stosowane są dziś w informatyce. (Algebrę Boole'a omówię szerzej w rozdziale 14., a zastosowanie logiki w informatyce - w rozdziale 20.).

Pięć operatorów logiki zdań

W rachunku zdań występuje pięć podstawowych operatorów, które widnieją w tabeli 4.1. Te operatory logiczne przypominają operatory arytmetyczne o tyle, że przetwarzają podane im wartości i podają nową wartość jako wynik. Operatory logiczne obsługują jednak tylko dwie wartości: P i F. W kolejnych punktach omówię wszystkie operatory pokazane w tabeli 4.1.

Tabela 4.1. Pięć operatorów logicznych

Operator

Nazwa techniczna

Co oznacza

Przykład

~

Negacja

Nie

~x

?

Koniunkcja

I

x ? y

?

Alternatywa

Lub

x ? y

?

Implikacja

Jeśli... to

x ? y

?

Równoważność

Wtedy i tylko wtedy, kiedy...

x ? y

Negacja

Każde zdanie można przekształcić w jego przeciwieństwo poprzez dodanie lub zastąpienie kilku słów. Tę czynność nazywamy negacją zdania. Oczywiście zanegowanie prawdziwego zdania prowadzi do przekształcenia go w zdanie fałszywe, a zanegowanie zdania fałszywego daje zdanie prawdziwe. Ogólnie można zatem powiedzieć, że każde zdanie ma przeciwną wartość logiczną do zdania, które jest jego negacją.

Zdanie n mogę wobec tego zmienić, dodając do niego jedno proste słowo:

n = Nil jest najdłuższą rzeką w Afryce.

~n = Nil nie jest najdłuższą rzeką w Afryce.

W wyniku dodania wyrazu nie pierwotne zdanie zostało przekształcone w swoje przeciwieństwo, czyli negację tego zdania. Po ustaleniu, że wartość n to P (we wcześniejszym punkcie "Wartość logiczna"), możemy stwierdzić, że wartością negacji n jest F.

W rachunku zdań operatorem negacji jest tylda (~). Rozważmy inny przykład negacji:

l = Leonardo DiCaprio jest królem świata.

~l = Leonardo DiCaprio nie jest królem świata.

W tym przypadku po określeniu, że wartość l to F (we wcześniejszym punkcie "Wartość logiczna"), możemy też stwierdzić, że wartość ~l to P.

Powyższe informacje można z łatwością streścić w tablicy:

Zapamiętaj informacje z powyższej tablicy. Będziesz z nich często korzystał w kolejnych rozdziałach.

Jak widać, w powyższej tablicy użyłem zmiennej x jako zamiennika dowolnego zdania. Kiedy zdanie oznaczone jako x jest prawdziwe, to ~x jest fałszywe. Z kolei kiedy zdanie x jest fałszywe, ~x jest prawdziwe.

W różnych książkach o logice operator negacji przedstawiany jest jako półpauza (-) lub znak przypominający obróconą o 90 stopni literę L. Sam wolę używać tyldy, ale znak ten ma takie samo znaczenie niezależnie od tego, jaki konkretnie symbol zastosowano.

Negacja negacji

Choć negacja to zaledwie wierzchołek góry lodowej, mały system symboli rachunku zdań ma więcej zastosowań, niż wydaje się na pierwszy rzut oka. Przy założeniu, że wartość nowego zdania r to P, a jego negacji ~r to F, co można powiedzieć o zdaniu ~~r?

Jeśli odgadłeś, że wartość ~~r to P, możesz sobie pogratulować. Zauważ też, że domyśliłeś się tego, pomimo że nawet nie podałem znaczenia zdania r.

Oto właśnie moc i magia logiki. Wystarczy kilka prostych zasad, aby od razu było wiadomo, że każde sformułowane w ten sposób stwierdzenie musi być prawdziwe, nawet jeśli nie znasz właściwej treści stwierdzenia. Ta pewność przypomina sytuację, w której wiesz, że skoro 2 jabłka + 3 jabłka = 5 jabłek, to taki wynik działania będzie prawdziwy bez względu na to, czy dodajesz do siebie jabłka, dinozaury czy krasnoludki.

Tablice prawdy

Ponieważ r może mieć tylko jedną z dwóch wartości logicznych - P lub F - informacje o ~r, ~~r i kolejnych takich negacjach możesz zapisać w tablicy następująco:

Takie tablice nazywamy tablicami prawdy. W pierwszej kolumnie widnieją dwie wartości logiczne, jakie może mieć zdanie r: P i F. W pozostałych kolumnach podane są wartości różnych pokrewnych zdań: ~r, ~~r itd.

Odczytywanie tablic prawdy jest dość proste. Spójrz na przykładową tablicę powyżej. Jeśli wiesz, że wartość logiczna r to F i chcesz się dowiedzieć, jaka jest wartość ~~~r, musisz znaleźć miejsce, w którym dolny rząd krzyżuje się z ostatnią kolumną. Wartość logiczna podana w tym miejscu wskazuje, że gdy wartość r to F, wartość ~~~r to P.

W rozdziale 6. dowiesz się więcej o efektywności tablic prawdy, ale póki co będę ich używał jedynie do przejrzystego ukazywania informacji.

Koniunkcja

Symbol ? jest operatorem koniunkcji, czyli ma znaczenie takie jak spójnik i. Możesz go traktować po prostu jako wyraz i umieszczony między dwoma zdaniami, który łączy je w nowe stwierdzenie.

Spójrz na poniższe stwierdzenie:

Ateny są stolicą Grecji i Jerzy Dudek był bramkarzem Liverpoolu.

Czy jest ono prawdziwe, czy fałszywe? Aby to określić, musisz uznać, że w rzeczywistości składa się z dwóch mniejszych zdań: jednego o Atenach, a drugiego - o Jerzym Dudku. Jego wartość logiczna uzależniona jest od wartości obydwu jego członów.

Ponieważ obydwa człony są prawdziwe, stwierdzenie w całości też jest prawdziwe. Wyobraźmy sobie jednak, że któreś ze zdań składowych jest fałszywe. Wyobraźmy sobie równoległy wszechświat, w którym Ateny nie są stolicą Grecji albo w którym Jerzy Dudek nigdy nie był bramkarzem Liverpoolu. W takim przypadku całe stwierdzenie byłoby fałszywe.

W logice stwierdzenia wykorzystujące słowo i traktuje się w szczególny sposób. Po pierwsze, każde zdanie składowe ma przypisaną stałą:

Niech a = Ateny są stolicą Grecji.

Niech j = Jerzy Dudek był bramkarzem Liverpoolu.

Obydwa zdania łączysz ze sobą następująco:

a ? j

Wartość logiczna tego nowego zdania uzależniona jest od wartości logicznych dwóch połączonych zdań składowych. Jeśli obydwa człony są prawdziwe, całe zdanie też jest prawdziwe. Jeśli co najmniej jedno z tych zdań jest fałszywe, to całe zdanie też jest fałszywe.

Wartości logiczne zdania z operatorem ? i członami x oraz y można przedstawić w tablicy następująco:

Zapamiętaj informacje z powyższej tablicy. Najprościej ująć je tak: zdanie z operatorem koniunkcji jest prawdziwe tylko wtedy, kiedy obydwa jego człony są prawdziwe. W innym razie jest ono fałszywe.

Zauważ, że w powyższej tablicy operatora ? znajdują się cztery rzędy zamiast dwóch, które wystarczyły do scharakteryzowania operatora ~ (podpunkt "Tablice prawdy"). Tablice te różnią się od siebie, ponieważ operator koniunkcji zawsze uwzględnia dwie zmienne, więc jego tablica musi uwzględniać wszystkie cztery pary wartości x i y.

W różnych książkach o tematyce logicznej zamiast znaku koniunkcji używa się znaku mnożenia (-) lub znaku &. Czasami zdarza się też, że x ? y zapisywane jest jako xy. Konwencje są różne, ale takie oznaczenia są tożsame.

Alternatywa

Podobnie jak w przypadku koniunkcji, stwierdzenie może składać się z dwóch mniejszych zdań, połączonych wyrazem lub. W rachunku zdań słowo lub zastępuje operator alternatywy ?.

Przyjrzyjmy się poniższemu stwierdzeniu:

Ateny są stolicą Grecji lub Jerzy Dudek był bramkarzem Liverpoolu.

Jeśli oznaczymy pierwsze zdanie jako a, a drugie jako b, to będziemy je mogli ze sobą połączyć następująco:

a ? b

Czy powyższe zdanie jest prawdziwe? Podobnie jak w koniunkcji, kiedy obydwa człony zdania są prawdziwe, prawdziwe jest też całe zdanie. Zdanie a ? b ma zatem wartość logiczną P. W przypadku alternatywy jednak zdanie w całości jest prawdziwe, nawet jeśli prawdziwy jest tylko jeden z jego członów. Oto przykład:

Niech a = Ateny są stolicą Grecji.

Niech n = Jerzy Dudek był napastnikiem Manchesteru United.

Zdanie a ? n oznacza:

Ateny są stolicą Grecji lub Jerzy Dudek był napastnikiem Manchesteru United.

Choć drugi człon tego zdania jest fałszywy, jest ono w całości prawdziwe, ponieważ prawdziwy jest jeden z jego członów. Zdanie a ? n ma zatem wartość P.

Kiedy jednak obydwa człony alternatywy są fałszywe, fałszywe jest też całe zdanie. Oto przykład:

Niech w = Ateny są stolicą Włoch.

Niech n = Jerzy Dudek był napastnikiem Manchesteru United.

Zdanie w ? n oznacza:

Ateny są stolicą Włoch lub Jerzy Dudek był napastnikiem Manchesteru United.

Powyższe zdanie jest fałszywe, ponieważ obydwa jego człony są fałszywe. A zatem w ? n ma wartość F.

Dla operatora ? możesz utworzyć tablicę z czterema rzędami, która obejmuje wszystkie możliwe kombinacje wartości logicznych dla zdań x i y:

Zapamiętaj informacje z powyższej tablicy. Najprościej ująć je tak: zdanie z operatorem alternatywy jest fałszywe tylko wtedy, kiedy obydwa jego człony są fałszywe. W innym przypadku jest ono prawdziwe.

W języku polskim spójników lub i albo używa się wymiennie, ale w logice przyjęło się odróżniać je od siebie jako oznaczenia alternatywy nierozłącznej i alternatywy rozłącznej:

Alternatywa nierozłączna (lub) oznacza "jedna możliwość lub druga, lub obie", czyli jest prawdziwa także wtedy, kiedy obydwa człony są prawdziwe. Przykładem alternatywy nierozłącznej jest następujące zdanie, które matka może skierować do dziecka: "Przed wyjściem z domu musisz posprzątać swój pokój lub odrobić lekcje". Rzecz jasna matka chce, żeby dziecko wykonało jedno z tych zadań albo i obydwa.

Alternatywa rozłączna (albo) oznacza "albo jedna możliwość, albo druga, ale nie obie", czyli nie jest prawdziwa wtedy, kiedy obydwa człony są prawdziwe. Przykładem alternatywy rozłącznej jest następujące zdanie: "Dam ci pieniądze, żebyś kupił sobie albo lody, albo lizaka". Matka chce przez to powiedzieć, że dziecko dostanie pieniądze na jeden z tych smakołyków, ale nie na obydwa.

Język polski jest wieloznaczny, ale logika taka nie jest. Przyjęło się, że operator ? zawsze oznacza alternatywę nierozłączną. Jeśli obydwa człony takiej alternatywy są prawdziwe, całe zdanie też jest prawdziwe.

Obydwa rodzaje alternatyw stosowane są przy tworzeniu bramek logicznych, które są integralnymi elementami sprzętu komputerowego. W rozdziale 20. przeczytasz więcej na temat zastosowania logiki w komputerach.

Implikacja

Symbol ? nazywamy operatorem implikacji. Aby zrozumieć jego działanie, przyjrzyj się poniższemu stwierdzeniu:

Jeśli na słupku łóżka w pokoju gościnnym wisi peruka, to ciocia Genowefa przyjechała z wizytą.

Widać, że składa się ono z dwóch sądów, które można wyrazić osobno stałymi zdaniowymi:

Niech p = Na słupku łóżka w pokoju gościnnym wisi peruka.

Niech g = Ciocia Genowefa przyjechała z wizytą.

Następnie łączymy je nowym operatorem:

p ? g

Podobnie jak w przypadku innych, omówionych w tym rozdziale operatorów, dla operatora ? można utworzyć czterorzędową tablicę, obejmującą wszystkie możliwe kombinacje wartości logicznych zdań x i y:

Zapamiętaj informacje z powyższej tablicy. Najprościej ująć je tak: implikacja jest fałszywa tylko wtedy, kiedy jej pierwszy człon jest prawdziwy, a drugi - fałszywy; w każdym innym przypadku implikacja jest prawdziwa.

W innych książkach o logice implikacja może być oznaczona symbolem É zamiast strzałką. Jest to taka sama implikacja, mimo że symbol się różni.

Wygląd operatora ? jest nieprzypadkowy. Istnieje ważny powód, dla którego strzałka wskazuje od lewej do prawej: jeśli implikacja jest prawdziwa, a poprzednik operatora też jest prawdziwy, to następnik również musi być prawdziwy.

Posłużę się nowymi stałymi, żeby to lepiej wyjaśnić:

Niech b = Jesteś w Berlinie.

Niech n = Jesteś w Niemczech.

Rozważ teraz poniższe zdanie:

b ? n

Oznacza ono: "Jeśli jesteś w Berlinie, to jesteś w Niemczech". Stwierdzenie to jest oczywiście prawdziwe, ale dlaczego? Dlatego, że Berlin znajduje się w Niemczech.

Konwersja zdania

Po odwróceniu implikacji uzyskujesz zdanie będące jej konwersją. Poniżej widnieje implikacja i jej konwersja:

Implikacja: Jeśli jesteś w Berlinie, to jesteś w Niemczech.

Konwersja: Jeśli jesteś w Niemczech, to jesteś w Berlinie.

Jeśli implikacja jest prawdziwa, to wcale nie wynika z tego, że jej konwersja też jest prawdziwa. Choć powyższa implikacja jest prawdziwa, jej konwersja jest fałszywa. Równie dobrze mógłbyś być w Hamburgu, Frankfurcie bądź jakimkolwiek innym mieście w Niemczech.

Inwersja zdania

Kiedy negujesz obydwa człony implikacji, uzyskujesz zdanie będące jej inwersją. Porównaj poniższe stwierdzenia:

Implikacja: Jeśli jesteś w Berlinie, to jesteś w Niemczech.

Inwersja: Jeśli nie jesteś w Berlinie, to nie jesteś w Niemczech.

Jeśli implikacja jest prawdziwa, to wcale nie wynika z tego, że jej inwersja też jest prawdziwa. Nawet gdybyś nie był w Berlinie, to mógłbyś być w jakimkolwiek innym mieście w Niemczech.

Kontrapozycja zdania

Kiedy zarówno zamienisz kolejność obydwu członów implikacji, jak i zanegujesz je, uzyskasz kontrapozycję pierwotnego zdania. Wiem, wiem - zaczyna się robić mętnie. Ale mam przykład:

Implikacja: Jeśli jesteś w Berlinie, to jesteś w Niemczech.

Kontrapozycja: Jeśli nie jesteś w Niemczech, to nie jesteś w Berlinie.

Implikacja i kontrapozycja zdania zawsze mają jednakową wartość logiczną. Zgodnie z powyższym przykładem: przy założeniu, że poprzednik jest prawdziwy i rzeczywiście nie ma Cię w Niemczech, to siłą rzeczy nie możesz być w Berlinie.

Choć zdanie i jego kontrapozycja zawsze mają taką samą wartość logiczną, w praktyce udowodnienie kontrapozycji zdania jest czasami łatwiejsze od udowodnienia jego pierwowzoru. (Więcej o dowodach w logice zdań znajdziesz w części III). Konwersja zdania zawsze ma tę samą wartość logiczną, co inwersja zdania. Jest tak, ponieważ konwersja i inwersja są kontrapozycjami dla siebie nawzajem.

Równoważność

W logice zdań operator równoważności (?) przypomina operator implikacji (omówiony w punkcie "Implikacja"), ale jest nieco dokładniejszy. Najlepszym sposobem na objaśnienie jego działania jest sformułowanie implikacji i jej przeanalizowanie.

Rozważ poniższą implikację:

Jeśli na słupku łóżka w pokoju gościnnym wisi peruka, to ciocia Genowefa przyjechała z wizytą.

Z tego stwierdzenia wynikają następujące rzeczy:

1. Jeśli na słupku łóżka wisi peruka, to możesz mieć pewność, że ciocia Genowefa przyjechała, ale...

2. Jeśli widzisz ciocię Genowefę, to nie możesz mieć pewności, że na słupku łóżka wisi peruka.

Powyższą implikację można przedstawić w rachunku zdań jako p ? g ze strzałką skierowaną w kierunku, w którym przebiega implikacja: peruka implikuje ciocię Genowefę.

Rozważ teraz kolejne stwierdzenie:

Na słupku łóżka w pokoju gościnnym wisi peruka wtedy i tylko wtedy, gdy ciocia Genowefa przyjechała z wizytą.

Przypomina ono poprzednie stwierdzenie, ale wynikają z niego inne rzeczy:

1. Jeśli na słupku łóżka wisi peruka, to możesz mieć pewność, że ciocia Genowefa przyjechała i...

2. Jeśli widzisz ciocię Genowefę, to możesz mieć pewność, że na słupku łóżka wisi peruka.

Powyższe stwierdzenie można przedstawić w rachunku zdań jako p ? g, przy czym podwójna strzałka podpowiada jego znaczenie: zarówno peruka implikuje ciocię Genowefę, jak i ciocia Genowefa implikuje perukę.

Nie myl operatora równoważności (?) z operatorem implikacji (?).

Podobnie jak z innymi operatorami, dla operatora implikacji można utworzyć czterorzędową tablicę, obejmującą wszystkie możliwe kombinacje wartości logicznych dla wyrażeń x i y:

Zapamiętaj informacje z powyższej tablicy. Najprościej ująć je tak: równoważność jest prawdziwa tylko wtedy, kiedy obydwa jej człony mają jednakową wartość logiczną; w każdym innym przypadku równoważność jest fałszywa.

Istotnym aspektem równoważności jest to, że obydwa człony równoważności są ekwiwalentne logicznie, czyli jeśli jeden jest prawdziwy, to drugi też musi taki być.

Oto kolejne dwa przykłady równoważności:

Jesteś w Warszawie wtedy i tylko wtedy, kiedy jesteś w stolicy Polski.

Liczba jest parzysta wtedy i tylko wtedy, kiedy po jej podzieleniu przez dwa nie zostaje reszta.

Z pierwszego zdania wynika, że Warszawa jest stolicą Polski. Drugie zdanie wskazuje na równoważność obydwu członów - parzystość jest tożsama z podzielnością przez dwa.

W innych książkach o logice równoważność zapisuje się znakiem ? zamiast ?. Niezależnie od konkretnego symbolu znaczenie jest jednakowe.

Rachunek zdań a prosta arytmetyka

Jak wspomniałem w podrozdziale "Pięć operatorów logiki zdań", logika zdań przypomina matematykę o tyle, że w obydwu tych dyscyplinach operatory przetwarzają podane im wartości i określają nową wartość wyjściową. Podobieństwa jednak na tym się nie kończą, a po dostrzeżeniu kolejnych o wiele łatwiej będzie Ci zrozumieć logikę zdań.

Wartości wejściowe i wyjściowe

Każdy z czterech podstawowych operatorów arytmetycznych przekształca dwie liczby w jedną. Oto przykłady:

6 + 2 = 8

6 - 2 = 4

6 - 2 = 12

6 : 2 = 3

Dwie liczby po lewej stronie znaku równości to wartości wejściowe, a liczba po prawej stronie znaku równości to wartość wyjściowa.

W każdym przypadku umieszczenie operatora między dwiema wartościami wejściowymi (6 i 2) tworzy wartość wyjściową (tutaj pogrubioną). Operatory te nazywamy operatorami dwuargumentowymi, ponieważ przetwarzają dwie wartości wyjściowe.

Znak odejmowania ma w matematyce także inne zastosowanie. Taki znak umieszczony przed liczbą dodatnią przekształca ją w ujemną, a przed ujemną - w dodatnią. Oto przykład:

-(-4) = 4

W tym przypadku pierwszy znak minusa odnosi się do wartości wejściowej (-4), którą przekształca w wartość wyjściową (4). Zastosowany w ten sposób znak odejmowania jest operatorem jednoargumentowym, ponieważ działa na jednej wartości wejściowej.

W arytmetyce musisz liczyć się z nieskończoną liczbą wartości, ale w rachunku zdań posługujesz się jedynie dwiema: P i F. (Więcej na temat wartości logicznych napisałem w punkcie "Wartość logiczna").

Podobnie jak w arytmetyce, w logice posługujemy się czterema operatorami dwuargumentowymi i jednym jednoargumentowym. W rachunku zdań operatory binarne to ?, ?, ? i ?, a unarny to ~. (Każdy z nich omówiłem w podrozdziale "Pięć operatorów logiki zdań").

Obydwa rodzaje operatorów obowiązują te same postawowe zasady, co w arytmetyce:

Umieszczenie operatora dwuargumentowego między dwiema dowolnymi wartościami wejściowymi tworzy wartość wyjściową.

Umieszczenie operatora jednoargumentowego przed wartością wejściową tworzy wartość wyjściową.

Możemy na przykład połączyć dwie wartości wejściowe, F i P (w tej dokładnie kolejności), czterema operatorami binarnymi:

F ? P = F

F ? P = P

F ? P = P

F ? P = F

W każdym przypadku operator tworzy wartość wyjściową, czyli P lub F. Umieszczenie operatora unarnego przed wartością P lub F również tworzy wartość wyjściową:

~F = P

~P = F

Podstawianie

Jeśli liznąłeś chociaż odrobinę algebry, to powinieneś wiedzieć, że litery mogą reprezentować liczby. Jeśli na przykład powiem Ci, że

a = 9 i b = 3

to będziesz mógł z łatwością obliczyć, że

a + b = 12

a - b = 6

a - b = 27

a : b = 3

Te same zasady dotyczą pracy ze stałymi zdaniowymi w rachunku zdań. Wystarczy jedynie podstawić właściwe wartości (P lub F) pod stałe. Przyjrzyj się poniższemu przykładowi:

Zakładając, że p jest prawdziwe, q jest fałszywe, a r jest prawdziwe, określ wartości poniższych wyrażeń:

1. p ? q

2. p ? r

3. q ? r

W przypadku 1. P podstawiasz pod p, a F pod q. Daje to P ? F, czyli P.

W przypadku 2. P podstawiasz pod p i P pod r. Daje to P ? P, czyli P.

W przypadku 3. F podstawiasz pod q, a P pod r. Daje to F ? P, czyli F.

Nawiasy

W arytmetyce nawiasy służą do grupowania liczb i działań. Oto przykład:

-((4 + 8) : 3)

W tym wyrażeniu nawiasy wskazują, że należy najpierw obliczyć 4 + 8, co daje wynik 12. Następnie należy przejść do kolejnego nawiasu, czyli 12 : 3 = 4. Na koniec unarny operator negacji (-) zmienia tę wartość na -4.

Należy zatem zaczynać rozwiązywanie od najgłębiej osadzonego nawiasu. W logice zdań nawiasy działają tak samo. Zakładając, że p jest prawdą, q jest fałszem, a r jest prawdą, znajdź wartość poniższego wyrażenia:

~((p ? q) ? ~r)

Zaczynając od najgłębiej osadzonego nawiasu, pod p ? q podstawiamy P ? F, które wynosi P. Przechodzimy do kolejnego nawiasu, gdzie pod p ? ~r podstawiamy P ? F, czyli F. Wreszcie ~, poprzedzająca wszystkie nawiasy, zmienia F w P.

Proces skracania stwierdzenia składającego się z więcej niż jednej wartości do wartości pojedynczej nazywa się ewaluacją wyrażenia bądź oceną jego wartości logicznej. Jest to bardzo ważna czynność, o której przeczytasz więcej w rozdziale 5.

Tłumaczenie zdań

Logika zdań jest językiem, więc wystarczy znać reguły, jakie nim rządzą, aby móc tłumaczyć zdania z języka logicznego na polski, hiszpański czy chiński - na razie jednak zostańmy przy polskim! (Jeżeli natomiast interesuje Cię któryś z tych języków, to sięgnij po Hiszpański dla bystrzaków lub Chiński dla bystrzaków).

Główną zaletą logiki zdań jest jej przejrzystość i jednoznaczność. To właśnie dzięki tym cechom można z łatwością przetłumaczyć zdanie z języka logicznego na polski, dlatego uznaję ten kierunek tłumaczenia za łatwy. Polski nie jest jednak przejrzysty i jednoznaczny. (W punkcie "Alternatywa" zwróciłem uwagę na to, że w języku naturalnym słowa takie jak lub i albo stosowane są wymiennie, choć mogą oznaczać zupełnie różne rodzaje alternatyw). Przy tłumaczeniu zdań z polskiego na język logiczny trzeba być bardzo uważnym, dlatego ten kierunek tłumaczenia uznaję za nie-taki-łatwy.

Tłumaczenie zdań w obydwu kierunkach rozwinie Twoje rozumienie logiki zdań, ponieważ będziesz miał wiele okazji, by zgłębić właściwe znaczenie tych wszystkich symboli, które dotąd przedstawiłem. Jeśli podczas lektury kolejnych rozdziałów pogubisz się, w razie czego przypomnij sobie, że każde zdanie w rachunku zdań, choćby najbardziej złożone, można przełożyć na polski.

Tłumaczenie z rachunku zdań na polski

Czasami najlepiej posłużyć się przykładem. Poniżej pokazano różne możliwości tłumaczenia każdego operatora. Zwroty te są dość proste, więc możesz wybrać ten, który podoba Ci się najbardziej, i stosować go regularnie. W tym punkcie będę używać następujących stałych zdaniowych:

Niech a = Antek kocha Ankę.

Niech b = Bakłażan leży na blacie.

Niech c = Celina przyszywa cekiny.

Tłumaczenie wyrażeń z ~

Wyrażenie ~a można przetłumaczyć na polski następująco:

Nie jest prawdą, że Antek kocha Ankę.

Nie jest tak, że Antek kocha Ankę.

Antek nie kocha Anki.

Tłumaczenie wyrażeń z ?

Wyrażenie a ? b można przetłumaczyć następująco:

Antek kocha Ankę i bakłażan leży na blacie.

Zarówno Antek kocha Ankę, jak i bakłażan leży na blacie.

Tłumaczenie wyrażeń z ?

Wyrażenie a ? c można przetłumaczyć następująco:

Antek kocha Ankę lub Celina przyszywa cekiny.

Antek kocha Ankę albo Celina przyszywa cekiny.

Tłumaczenie wyrażeń z ?

Wyrażenie b ? c można przetłumaczyć następująco:

Jeśli bakłażan leży na blacie, to Celina przyszywa cekiny.

Bakłażan leży na blacie, więc Celina przyszywa cekiny.

Bakłażan leży na blacie, zatem Celina przyszywa cekiny.

Bakłażan leży na blacie, tylko jeśli Celina przyszywa cekiny.

Tłumaczenie wyrażeń z ?

Wyrażenie c ? a można przetłumaczyć praktycznie tylko w jeden sposób:

Celina przyszywa cekiny wtedy i tylko wtedy, kiedy bakłażan leży na blacie.

Tłumaczenie bardziej złożonych wyrażeń

W przypadku bardziej złożonych wyrażeń możesz sięgnąć po wskazówki, które podałem w podrozdziale "Rachunek zdań a prosta arytmetyka". Wystarczy krok po kroku tłumaczyć kolejne człony wyrażenia, zaczynając od nawiasów:

(~a ? b) ? ~c

Wyrażenie zawarte w nawiasie to (~a ? b), czyli:

Antek nie kocha Anki i bakłażan leży na blacie.

Po dodaniu ostatniej części wyrażenia otrzymujemy następujące zdanie:

Antek nie kocha Anki i bakłażan leży na blacie lub Celina nie przyszywa cekinów.

Zauważ, że choć powyższe zdanie jest poprawne, to trudno zrozumieć jego sens, ponieważ nawiasy zniknęły i wszystko zlepiło się tak, że powstał długi ciąg tekstu. Wystarczy jednak to zdanie odrobinę przekształcić, aby je uporządkować:

Albo Antek nie kocha Anki i bakłażan leży na blacie, albo Celina nie przyszywa cekinów.

Słowa albo oddzielają od siebie te człony, które objęte są alternatywą. Dla porównania wyrażenie:

~a ? (b ? ~c)

można przetłumaczyć jako

Antek nie kocha Anki i albo bakłażan leży na blacie, albo Celina nie przyszywa cekinów.

Spójrzmy teraz na inny przykład:

~(a ? (~b ? c))

Zaczynając od zagnieżdżonego nawiasu (~b ? c) tłumaczymy jako

Bakłażan nie leży na blacie i Celina przyszywa cekiny.

Po uwzględnieniu zewnętrznego nawiasu zdanie wygląda tak:

Jeśli Antek kocha Ankę, to zarówno bakłażan nie leży na blacie, jak i Celina przyszywa cekiny.

Zauważ, że dodanie członu zarówno... jak i pozwala na wyróżnienie koniunkcji z pierwszego nawiasu. Na koniec musimy jeszcze uwzględnić negację:

Nie jest tak, że jeżeli Antek kocha Ankę, to zarówno bakłażan nie leży na blacie, jak i Celina przyszywa cekiny.

Nie twierdzę, że powyższe zdanie jest stylistycznym arcydziełem, ale przynajmniej zachowuje sens. Prawdopodobnie nigdy nie będziesz musiał tłumaczyć wyrażeń bardziej skomplikowanych od powyższego, ale powinieneś docenić teraz to, że logika zdań pozwala na radzenie sobie z wyrażeniami o dowolnej długości w sposób całkowicie przejrzysty i zrozumiały.

Tłumaczenie z polskiego na rachunek zdań

Każdy z czterech operatorów binarnych w logice zdań (?, ?, ? i ?) łączy ze sobą parę zdań. W języku polskim takie elementy nazywamy spójnikami. Oto kilka przykładowych spójników:

chociaż

jeśli... to

lub

i

albo... albo

więc

ale

ani... ani

zatem

jednak

aczkolwiek

choć

bo

natomiast

zatem

Na początek zdefiniujmy jednak parę stałych zdaniowych:

Niech k = Kasia mieszka w Krakowie.

Niech l = Kasia mieszka przy Librowszczyźnie.

Niech m = Lubię Manię.

Niech n = Lubię Ninę.

Niech o = Kasia lubi Olę.

Ale, chociaż, jednak, pomimo że...

Wiele polskich spójników pod względem logicznym łączy zdania tak samo jak wyraz i. Oto kilka przykładów:

Lubię Manię, ale lubię też Ninę.

Choć lubię Manię, lubię też Ninę.

Pomimo że lubię Manię, lubię też Ninę.

Lubię Manię, jednak lubię też Ninę.

Lubię Manię, aczkolwiek lubię też Ninę.

Każdy z tych wyrazów ma nieco inne znaczenie, ale w sensie logicznym wszystkie powyższe zdania tłumaczymy jako

m ? n

Po przetłumaczeniu zdania z polskiego na język logiczny obowiązują już tylko zasady rachunku zdań. W tym przypadku, tak jak przy każdej koniunkcji, jeśli m lub n jest fałszywe, to wyrażenie m ? n jest fałszywe. W przeciwnym razie jest prawdziwe.

Ani... ani

Struktura ani... ani neguje obydwa argumenty stwierdzenia. Oto przykład:

Ani nie lubię Mani, ani nie lubię Niny.

Oznacza to, że nie lubię zarówno Mani, jak i Niny. To stwierdzenie w rachunku zdań wygląda następująco:

~m ? ~n

Nie... zarówno

Struktura nie... zarówno polega na tym, że choć całe stwierdzenie jest zanegowane, żaden z argumentów nie jest zanegowany pojedynczo. Oto przykład:

Nie lubię zarówno Mani, jak i Niny.

Z tego zdania wynika, że choć nie lubię ich łącznie, mogę lubić którąś z nich osobno. To stwierdzenie wygląda następująco w rachunku zdań:

~(m ? n)

...jeśli

Wiesz już, jak przetłumaczyć stwierdzenie, które zaczyna się od wyrazu jeśli. Może to być jednak mylące, gdy wyraz ten znajduje się w środku zdania:

Lubię Manię, jeśli Kasia lubi Olę.

To stwierdzenie należy rozplątać, żeby stało się jasne:

Jeśli Kasia lubi Olę, to lubię Manię.

Tak uporządkowane stwierdzenie można przetłumaczyć następująco:

o ? m

...tylko jeśli...

To sformułowanie jest na pierwszy rzut oka mylące, ale wystarczy się przez moment zastanowić. Przede wszystkim zauważ, że poniższe stwierdzenie jest prawdziwe:

Kasia mieszka przy Librowszczyźnie, tylko jeśli mieszka w Krakowie.

Ma to sens, bo jedynym sposobem na mieszkanie przy Librowszczyźnie jest mieszkanie w Krakowie. Zauważ teraz, że poniższe stwierdzenie też jest prawdziwe:

Jeśli Kasia mieszka przy Librowszczyźnie, to mieszka w Krakowie.

Powyższe dwa zdania są ekwiwalentne logicznie. Jeśli więc trafisz na zdanie, którego dwie części składowe oddzielone są od siebie sformułowaniem ...tylko jeśli..., to pamiętaj, że jest to po prostu implikacja, której argumenty są już ułożone we właściwej kolejności. Przetłumacz je wtedy jako:

l ? k

...lub...

Jak wspomniałem w punkcie "Alternatywa", te wyrazy są źródłem wielu problemów. Rozważmy poniższy przykład:

Kasia mieszka w Krakowie lub Kasia lubi Olę.

W zależności od intencji stwierdzenie to może mieć dwa różne znaczenia:

Kasia mieszka w Krakowie lub Kasia lubi Olę, lub jedno i drugie.

Kasia mieszka w Krakowie lub Kasia lubi Olę, ale nie jedno i drugie.

Zważywszy na to rozdwojenie znaczenia słowa lub, mogę Ci zaoferować następującą poradę: kiedy widzisz takie lub w stwierdzeniu, które masz przetłumaczyć, prawdopodobnie oznacza to, że ktoś (najpewniej Twój nauczyciel) chce się upewnić, czy wiesz, że w języku logicznym lub zawsze oznacza lub... lub jedno i drugie. Powyższe zdanie należy zatem przetłumaczyć tak:

k ? o

...lub... lub jedno i drugie

Ta struktura jest prosta i zrozumiała - oznacza to, co widać na pierwszy rzut oka. Oto przykład:

Kasia mieszka w Krakowie lub Kasia lubi Olę, lub jedno i drugie.

Powyższe zdanie należy przetłumaczyć tak:

k ? o

...lub... ale nie jedno i drugie

Znaczenie tej struktury jest zrozumiałe, ale trudno je przełożyć na język logiczny. Oto przykład:

Kasia mieszka w Krakowie lub Kasia lubi Olę, ale nie jedno i drugie.

Aby przetłumaczyć sformułowanie ale nie jedno i drugie na język logiki, trzeba się przez chwilę zastanowić nad jego strukturą. Jak wspomniałem w podpunkcie "Ale, chociaż, jednak, pomimo że...", słowo ale oznacza koniunkcję, a sformułowanie nie jedno i drugie powinno przyjąć formę ~(k ? o). Wyrażenie w całości powinno mieć następującą postać:

(k ? o) ? ~(k ? o)