KolejnaStronaTestow: Różnice pomiędzy wersjami
Nie podano opisu zmian |
(Brak różnic)
|
Wersja z 12:48, 18 wrz 2006
Uwaga: przekonwertowane latex2mediawiki; prawdopodobnie trzeba wprowadzi� poprawki
= = by 60 = by 60 by - = by 10
{Spis treści} = 8pt = 0pt
{twierdzenie}{Twierdzenie} {wniosek}[twierdzenie]{Wniosek} {moral}[twierdzenie]{Morał} {lemat}[twierdzenie]{Lemat} {fakt}[twierdzenie]{Fakt} {przyklad}[twierdzenie]{Przykład} {definicja}[twierdzenie]{Definicja}
{Obrazek} [1]{{{ #1}}} [1]Szablon:PU: {{{ JTy ?}}}
{} {} {}
{} {{1{-}1}} Szablon:Na Szablon:Na
{{}-2.7mu{}} {{{-}-2.7mu{}-2.7mu{}}} Szablon:S
Logika dla informatyków {Jerzy Tiuryn Jerzy Tyszkiewicz Paweł Urzyczyn} {Sierpień 2006}
Wnioskowanie o prawdziwości rozmaitych stwierdzeń jest powszednim zajęciem matematyków i nie tylko matematyków. Dlatego filozofowie i matematycy od dawna zajmowali się systematyzacją metod wnioskowania i kryteriów ich poprawności. Oczywiście ostatecznym kryterium poprawności rozumowania pozostaje zawsze zdrowy rozsądek i przekonanie o słuszności wywodu. Logika, która narodziła się jako nauka o rozumowaniu, jest jednak ważnym i potrzebnym narzędziem, które to przekonanie ułatwia.
Szczególną rolę wśród rozmaitych działów logiki zajmuje logika matematyczna, poświęcona opisowi i analizie języka matematyki oraz poprawności wnioskowań matematycznych. Jest to dyscyplina w pewnym sensie paradoksalna: będąc sama częścią matematyki, traktuje matematykę jako swój przedmiot zainteresowania. Dla uniknięcia "błędnego koła" musimy więc tutaj zauważyć, że logika formalna nie opisuje rzeczywistych wywodów matematyka, ale ich uproszczone modele, które bez zastrzeżeń można uważać za zwykłe obiekty matematyczne. Mimo tego ograniczenia, logika matematyczna dostarcza niezwykle ważnych wniosków o charakterze filozoficznym i metamatematycznym.
Logika formalna była kiedyś ezoteryczną nauką z pogranicza filozofii i matematyki, potem stała się pełnoprawnym działem czystej matematyki. Jeszcze później, wraz z narodzinami informatyki, zaczęła być coraz bardziej postrzegana jako dziedzina matematyki stosowanej, a zwłaszcza podstaw informatyki.
Logika matematyczna stosowana jest dziś szeroko w informatyce. Semantyka i weryfikacja programów, teoria złożoności i teoria automatów, programowanie funkcyjne i programowanie w logice --- to tylko niektóre z działów informatyki, w których metody logiki formalnej stały się standardowym narzędziem zarówno badacza jak i praktyka.
Rachunek zdań
{twierdzenie}{0}
Jak powiedzieliśmy wyżej, logika matematyczna zajmuje się badaniem rozmaitych systemów formalnych, modelujących rzeczywiste sposoby wnioskowania matematycznego. Do najprostszych takich systemów należą różne warianty logiki zdaniowej zwanej też rachunkiem zdań. Język rachunku zdań jest bardzo prosty. Nie ma w nim wyrażeń stwierdzających jakiś stan rzeczy, zajście jakichś faktów, czy też wyrażeń orzekających o własnościach obiektów. Przedmiotem naszego zainteresowania są tu tylko możliwe zależności pomiędzy stwierdzeniami (zdaniami orzekającymi), oraz to w jaki sposób prawdziwość zdań złożonych zależy od prawdziwości ich składowych. Sens samych składowych pozostaje tu całkowicie dowolny i nieistotny. Dlatego w rachunku zdań odpowiadają im po prostu zmienne zdaniowe. Zdania złożone budujemy ze zmiennych za pomocą spójników logicznych takich jak alternatywa , koniunkcja , negacja , czy implikacja . Wygodne są też stałe logiczne (fałsz) i (prawda), które można uważać za zeroargumentowe spójniki logiczne. Dlatego nasza pierwsza definicja jest taka:
Definicja
Ustalamy pewien przeliczalnie nieskończony zbiór ZZ symboli, które będziemy nazywać zmiennymi zdaniowymi i zwykle oznaczać literami , , itp. Pojęcie formuły zdaniowej definiujemy przez indukcję:
- Zmienne zdaniowe oraz i są formułami zdaniowymi;
- Jeśli napis jest formułą zdaniową, to także napis
jest formułą zdaniową;
- Jeśli napisy i są formułami zdaniowymi to
napisy , i też są formułami zdaniowymi.
Inaczej mówiąc, formuły zdaniowe to elementy najmniejszego zbioru napisów Parser nie mógł rozpoznać (nieznana funkcja „\sc”): {\displaystyle \displaystyle {\cal F}_{{\sc Z}}} , zawierającego ZZ i takiego, że dla dowolnych Parser nie mógł rozpoznać (nieznana funkcja „\sc”): {\displaystyle \displaystyle \varphi,\psi\in{\cal F}_{{\sc Z}}} także należą do Parser nie mógł rozpoznać (nieznana funkcja „\sc”): {\displaystyle \displaystyle {\cal F}_{{\sc Z}}} .
Konwencje notacyjne: Dla pełnej jednoznaczności składni nasze formuły są w pełni nawiasowane. W praktyce wiele nawiasów pomijamy, stosując przy tym następujące priorytety:
- Negacja;
- Koniunkcja i alternatywa;
- Implikacja.
Zatem na przykład wyrażenie oznacza , ale napis jest niepoprawny.
Znaczenie formuł
W logice klasycznej interpretacją
formuły jest wartość logiczna tj. "prawda" (1) lub "fałsz" (0). Aby określić wartość formuły zdaniowej trzeba jednak najpierw ustalić wartości zmiennych.
Definicja
Przez wartościowanie zdaniowe rozumiemy dowolną funkcję , która zmiennym zdaniowym przypisuje wartości logiczne 0 lub 1. Wartość formuły zdaniowej przy wartościowaniu oznaczamy przez Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz\varphi\varrho} i określamy przez indukcję:
- Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz\bot\varrho=0} oraz Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz\top\varrho=1} ;
- , gdy jest symbolem zdaniowym;
- Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz{\neg\varphi}\varrho=1-\wfz{\varphi}\varrho} ;
- ;
- ;
- , gdy
Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz\varphi\varrho=1} i Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz\psi\varrho=0} ;
- Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz{\varphi\to\psi}\varrho=1} , w przeciwnym przypadku.
Łatwo można zauważyć, że Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle [\![ \varphi\to\psi ]\!]_{\varrho} = \max\{\wfz\psi\varrho,1-\wfz\varphi\varrho\}} , czyli Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz{\varphi\to\psi}\varrho=\wfz{\neg\varphi\vee\psi}\varrho} , dla dowolnego . A zatem zamiast formuły moglibyśmy z równym powodzeniem używać wyrażenia , lub też odwrotnie: zamiast alternatywy pisać . Nasz wybór spójników nie jest więc "najoszczędniejszy", w istocie w logice klasycznej wystarczy używać np. implikacji i fałszu (Ćwiczenie Uzupelnic udacczleka|). Czasem i my będziemy korzystać z tego wygodnego uproszczenia, przyjmując, że "oficjalnymi" spójnikami są tylko implikacja i fałsz, a pozostałe to skróty notacyjne, tj. że napisy
{3.0cm} oznaczają
odpowiednio
;
{2.0cm} ;
{2.0cm} ;
{2.0cm} .
Będziemy też czasem pisać Parser nie mógł rozpoznać (nieznana funkcja „\oto”): {\displaystyle \displaystyle \varphi\oto\psi} zamiast . Zauważmy, że Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz{\varphi\oto\psi}\varrho=1} wtedy i tylko wtedy, gdy Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz{\varphi\to\psi}\varrho=\wfz{\psi\to\varphi}\varrho} .
Często stosowanym skrótem jest notacja oznaczająca alternatywę wszystkich formuł , gdzie przebiega skończony zbiór . Analogicznie stosuje się zapis .
Notacja i terminologia: Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\kl”): {\displaystyle \displaystyle \kl\varphi_\varrho=1} to piszemy też lub i mówimy, że jest spełniona przez wartościowanie . Jeśli jest zbiorem formuł zdaniowych, oraz dla wszystkich , to piszemy . Wreszcie oznacza, że każde wartościowanie spełniające wszystkie formuły z spełnia także formułę . Mówimy wtedy, że jest semantyczną konsekwencją zbioru . Jeśli to zamiast piszemy po prostu . Oznacza to, że formuła jest spełniona przez każde wartościowanie. Na koniec powiedzmy jeszcze, że formułami równoważnymi nazywamy takie formuły i , których wartości przy każdym wartościowaniu są takie same (tj. takie, że równoważność Parser nie mógł rozpoznać (nieznana funkcja „\oto”): {\displaystyle \displaystyle \varphi\oto\psi} jest tautologią --- patrz niżej).
Definicja
Formuła jest spełnialna, gdy zachodzi dla pewnego wartościowania . Jeśli zaś to mówimy, że jest tautologią (klasycznego) rachunku zdań. Oczywiście jest spełnialna wtedy i tylko wtedy, gdy nie jest tautologią.
Tautologie rachunku zdań
Niech będzie funkcją przypisujacą symbolom zdaniowym pewne formuły. Jeśli jest formułą zdaniową, to przez oznaczymy formuę otrzymaną z przez jednoczesną zamianę każdego wystąpienia zmiennej zdaniowej na formuę . Mówimy, że formuła jest instancją schematu zdaniowego . Używamy oznaczenia .
Fakt
Jeżeli jest zbiorem formurachunku zdań i , to także . W szczególności, jeśli jest tautologią to jest też tautologią.
Dowód
Przykład
= 2mm Następujące formuły (i wszystkie ich instancje) są tautologiami rachunku zdań:
- ;
- ;
- ;
- ;
- ;
- oraz ;
- oraz
;
- , oraz
;
- , oraz
;
- ;
- ;
- ;
- Parser nie mógł rozpoznać (nieznana funkcja „\oto”): {\displaystyle \displaystyle (p\to q)\oto (\neg p\vee q)} ;
- ;
- Parser nie mógł rozpoznać (nieznana funkcja „\oto”): {\displaystyle \displaystyle p\vee\bot\oto p} oraz
Parser nie mógł rozpoznać (nieznana funkcja „\oto”): {\displaystyle \displaystyle p\wedge\top\oto p} .
Dowód
Niektóre z powyższych formuwskazują na analogię pomiędzy implikacją i uporządkowaniem (np. zawieraniem zbiorów). Implikację można odczytać tak: "warunek jest silniejszy (mniejszy lub równy) od ". Formuę (Uzupelnic 1|) czytamy wtedy: "fałsz jest najsilniejszym warunkiem (najmniejszym elementem)". Formuły (Uzupelnic 8|) stwierdzają, że alternatywa jest najsilniejszym warunkiem, który wynika zarówno z jak i z (czyli jest kresem górnym pary , jak suma zbiorów). Formuły (Uzupelnic 9|) wyrażają dualną własność koniunkcji: to jest kres dolny, czyli najsłabszy warunek implikujący oba argumenty. Prawa de Morgana (Uzupelnic 11|,Uzupelnic 12|) wskazują też na analogie koniunkcja -- iloczyn, alternatywa -- suma, negacja -- dopełnienie. Ta ostatnia widoczna jest też w prawach wyłączonego środka (Uzupelnic 5|), podwójnej negacji (Uzupelnic 6|) i kontrapozycji (Uzupelnic 7|).
O ile (Uzupelnic 9|) wskazuje na analogię pomiędzy koniunkcją i iloczynem mnogościowym, o tyle warto zauważyć, że koniunkcja ma też własności podobne do iloczynu kartezjańskiego. Jeśli zbiór funkcji z do oznaczymy przez , to mamy (bardzo naturalną) równoliczność . Podobieństwo tego związku do formuły (Uzupelnic 10|) nie jest wcale przypadkowe. Wrócimy do tego w Rozdziale Uzupelnic logint|.
Formuła (Uzupelnic 12a|) wyraża implikację z pomocą negacji i alternatywy i jest często bardzo przydatna, gdy np. chcemy przekształcić jakąś formułę do prostszej postaci.
Formuła (Uzupelnic 2|) mówi, że dodatkowe założenie można zawsze zignorować. Formuła (Uzupelnic 3|) (prawo Frege) wyraża dystrybutywność implikacji względem siebie samej i może być odczytywana tak: jeśli wynika z w kontekście , to ten kontekst może być włączony do założenia i konkluzji. Formuła (Uzupelnic 4|) (prawo Peirce'a) wyraża przy pomocy samej implikacji zasadniczą własność logiki klasycznej: możliwość rozumowania przez zaprzeczenie. Sens prawa Peirce'a widać najlepiej gdy jest fałszem, otrzymujemy wtedy prawo Claviusa: .
Warto zauważyć, że formuły w parach (Uzupelnic 6|) i (Uzupelnic 7|) nie są wcale tak symetryczne jak się wydaje na pierwszy rzut oka. Na przykład, pierwsza z formu (Uzupelnic 6|) to w istocie . Wiedząc, że i , natychmiast zgadzamy się na . Intuicyjne uzasadnienie drugiej formuły jest zaś w istocie związane z prawem (Uzupelnic 5|).
Własnością, która często uchodzi naszej uwagi, jest łączność równoważności (Uzupelnic 13|). W zwiazku z tym, wyrażenie Parser nie mógł rozpoznać (nieznana funkcja „\oto”): {\displaystyle \displaystyle \varphi \oto \psi \oto \vartheta} można z czystym sumieniem pisać bez nawiasów. Zwróćmy jednak uwagę na to, że oznacza ono zupełnie co innego niż stwierdzenie że , i są sobie nawzajem równoważne!
Ostatnie na liście są dwie równoważności wyrażające taką myśl: fałsz jest "elementem neutralnym" dla alternatywy, a prawda dla koniunkcji. Dlatego możemy uważać za "pustą alternatywę" a za "pustą koniunkcję". Powyżej pominięto dobrze znane prawa: łączność i przemienność koniunkcji i alternatywy, ich wzajemną dystrybutywność, przechodniość, zwrotność implikacji itp.
Postać normalna formuł
Definicja
Każdą zmienną zdaniową i negację zmiennej zdaniowej nazwijmy literałem. Mówimy, że formuła zdaniowa jest w koniunkcyjnej postaci normalnej, gdy jest koniunkcją alternatyw literałów, tj.
, (*)
gdzie , , dla , a wszystkie są literałami.
Przy tym pustą koniunkcję () utożsamiamy w myśl
Przykładu Uzupelnic taut-rz|(Uzupelnic 14|) ze stałą , a stała to tyle co koniunkcja z jednym pustym składnikiem.
Fakt
Dla każdej formuły zdaniowej istnieje równoważna jej formuła w koniunkcyjnej postaci normalnej.
Dowód
Dowód jest przez indukcję ze względu na długość formuły. Symbole zdaniowe są oczywiście w postaci normalnej. Zgodnie z naszą definicją, także stałe logiczne są postaciami normalnymi. Jeśli jest w postaci (*), to można przekształcić w koniunkcyjną postać normalną stosując prawa De Morgana i prawa dystrybutywności:
Parser nie mógł rozpoznać (nieznana funkcja „\oto”): {\displaystyle \displaystyle \psi\vee(\vartheta\wedge\zeta)\oto (\psi\vee\vartheta)\wedge(\psi\vee\zeta)\displaystyle \psi\vee(\vartheta\vee\zeta)\oto (\psi\vee\vartheta)\vee(\psi\vee\zeta)} .
Podobnie postępujemy z alternatywą dwóch formuł w postaci normalnej.{Ta procedura jest niestety wykładnicza (Ćwiczenie Uzupelnic wziawszy|).} Przypadek koniunkcji jest oczywisty, a implikację eliminujemy z pomocą prawa Uzupelnic taut-rz|(Uzupelnic 12a|). Szczegóły pozostawiamy Czytelnikowi.

{Ćwiczenia}
- Zbadać, czy następujące formuły są tautologiami rachunku zdań
i czy są spełnialne:
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- .
- Czy następujące zbiory formuł są spełnialne?
- ;
- ;
- ;
- .
- Czy zachodzą następujące konsekwencje?
- ;
- ;
- ;
- ;
- ;
- .
- Dla dowolnej formuły niech oznacza
dualizację formuły , tzn. formułę powstającą z przez zastąpienie każdego wystąpienia symbolem oraz każdego wystąpienia symbolem .
- Dowieść,że jest tautologią wtw, gdy
jest tautologią.
- Dowieść, że Parser nie mógł rozpoznać (nieznana funkcja „\lr”): {\displaystyle \displaystyle \varphi\lr\psi} jest tautologią wtw, gdy
Parser nie mógł rozpoznać (nieznana funkcja „\lr”): {\displaystyle \displaystyle \hat{\varphi}\lr\hat{\psi}} jest tautologią.
- Znależć formułę zdaniową , która jest spełniona dokładnie
przy wartościowaniach spełniających warunki:
- Dokładnie dwie spośród wartości ,
i są równe 1.
- .
Rozwiązanie: Można to robić na różne sposoby, ale najprościej po prostu wypisać alternatywę koniunkcji, np. .
Udowodnić, że dla dowolnej funkcji istnieje formuła , w której występują tylko spójniki i oraz zmienne zdaniowe ze zbioru , o tej własności, że dla dowolnego wartościowania zdaniowego zachodzi równość Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz\varphi\varrho = f(\varrho(p_1),\ldots, \varrho(p_k))} . (Inaczej mówiąc, formuła definiuje funkcję zerojedynkową .)
Wskazówka: Indukcja ze względu na .
Niech będzie dowolnym zbiorem niepustym. Dowolną funkcję ZZ Parser nie mógł rozpoznać (nieznana funkcja „\potX”): {\displaystyle \displaystyle \to\potX} nazwijmy wartościowaniem w zbiorze Parser nie mógł rozpoznać (nieznana funkcja „\potX”): {\displaystyle \displaystyle \potX} . Każdej formule zdaniowej przypiszemy teraz pewien podzbiór Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz\varphiv} zbioru , który nazwiemy jej wartością przy wartościowaniu .
- Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz\botv=\emptyset} oraz Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz\topv=X} ;
- , gdy jest symbolem zdaniowym;
- Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle \wfz{\neg\varphi}v= X-\wfz{\varphi}v} ;
- ;
- ;
- Parser nie mógł rozpoznać (nieznana funkcja „\wfz”): {\displaystyle \displaystyle [\![ \varphi\to\psi ]\!]_{v}= (X-\wfz{\varphi}v) \cup\wfz\psiv} .
Udowodnić, że formuła jest tautologią rachunku zdań wtedy i tylko wtedy, gdy jest prawdziwa w Parser nie mógł rozpoznać (nieznana funkcja „\potX”): {\displaystyle \displaystyle \potX} , tj. gdy dla dowolnego jej wartością jest cały zbiór .
Uzupełnić szczegóły dowodu Faktu Uzupelnic pania|. Pokazać, że długość postaci normalnej może wzrosnąć wykładniczo w stosunku do rozmiaru formuły początkowej.
- Niech formuła będzie tautologią
rachunku zdań. Znaleźć taką formułę , że:
- Zarówno jak i są
tautologiami rachunku zdań.
- W formule występują tylko te zmienne zdaniowe,
które występują zarówno w jak i w .
- Niech będzie pewną formułą, w której
występuje zmienna zdaniowa i niech będzie zmienną zdaniową nie występującą w . Przez oznaczmy formułę powstałą z przez zamianę wszystkich na . Udowodnić, że jeśli
to istnieje formuła , nie zawierająca zmiennych ani , taka że
.