Logika dla informatyków/Logika pierwszego rzędu. Sposób użycia: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Tprybick (dyskusja | edycje)
Tprybick (dyskusja | edycje)
Linia 146: Linia 146:
od treści tych wyrażeń, czy też jakichkolwiek innych związków pomiędzy  
od treści tych wyrażeń, czy też jakichkolwiek innych związków pomiędzy  
<math>\var\varphi</math> i <math>\psi</math>. W szczególności, wypowiedzi <math>\var\varphi</math> i&nbsp;<math>\psi</math> mogą mówić   
<math>\var\varphi</math> i <math>\psi</math>. W szczególności, wypowiedzi <math>\var\varphi</math> i&nbsp;<math>\psi</math> mogą mówić   
o&nbsp;zajściu jakichś zdarzeń i wtedy wartość logiczna \rightarrowlikacji
o&nbsp;zajściu jakichś zdarzeń i wtedy wartość logiczna implikacji
,,<math>\var\varphi\to\psi</math>''
<math>\var\varphi\to\psi</math>
nie ma nic wspólnego z ichewentualnym następstwem w czasie, lub też   
nie ma nic wspólnego z ichewentualnym następstwem w czasie, lub też   
z tym, że jedno z&nbsp;tych zdarzeń spowodowało drugie. W języku polskim  
z tym, że jedno z&nbsp;tych zdarzeń spowodowało drugie. W języku polskim  
stwierdzenie '',,jeśli <math>\var\varphi</math> to <math>\psi</math>''\/'' oczywiście sugeruje  
stwierdzenie "jeśli <math>\var\varphi</math> to <math>\psi</math>" oczywiście sugeruje  
taki związek, np. w zdaniu:   
taki związek, np. w zdaniu:   


\hfil ''Jeśli zasilanie jest włączone, to terminal działa.''  
<center>''Jeśli zasilanie jest włączone, to terminal działa.''</center>


Tymczasem \rightarrowlikacja materialna nie zachodzi, o czym dobrze  
Tymczasem implikacja materialna nie zachodzi, o czym dobrze  
wiedzą\boldsymbol{s}}\def\blank{\hbox{\sf Bżytkownicy terminali. Co więcej, w istocie materialną   
wiedzą użytkownicy terminali. Co więcej, w istocie materialną   
prawdą jest stwierdzenie odwrotne:  
prawdą jest stwierdzenie odwrotne:  


\hfil ''Jeśli terminal działa to zasilanie jest włączone.''  
<center>''Jeśli terminal działa to zasilanie jest włączone.'' </center>


Natomiast zdanie  
Natomiast zdanie  


\hfil ''Terminal działa, ponieważ zasilanie jest włączone,''  
<center>''Terminal działa, ponieważ zasilanie jest włączone,'' </center>


stwierdza nie tylko związek przyczynowo-skutkowy, ale też faktyczne zajście   
stwierdza nie tylko związek przyczynowo-skutkowy, ale też faktyczne zajście   
Linia 169: Linia 169:


Inne spójniki w mniejszym stopniu grożą podobnymi nieporozumieniami.  
Inne spójniki w mniejszym stopniu grożą podobnymi nieporozumieniami.  
Ale na przykład spójnik ,,i'' w języku polskim może też sugerować następstwo   
Ale na przykład spójnik "i"" w języku polskim może też sugerować następstwo   
czasowe\footnote{W językach programowania jest podobnie,   
czasowe <ref name="szesc">W językach programowania jest podobnie,   
ale to już inna historia.} zdarzeń: '',,Poszedł i&nbsp;zrobił.'''' A wyrażenie   
ale to już inna historia.</ref> zdarzeń: "''Poszedł i&nbsp;zrobił.''" A wyrażenie   
'',,A, chyba że B''\/'' ma inny odcień znaczeniowy niż proste   
"''A, chyba że B''" ma inny odcień znaczeniowy niż proste   
{\it,,A lub B''\/}. Przy tej okazji zwróćmy\boldsymbol{s}}\def\blank{\hbox{\sf Bwagę na to, że słowo   
"''A lub B''". Przy tej okazji zwróćmy uwagę na to, że słowo   
'',,albo''\/'' bywa czasem rozumiane w znaczeniu alternatywy   
"''albo''" bywa czasem rozumiane w znaczeniu alternatywy  wykluczającej. My jednak umawiamy się, że rozumiemy je tak samo   
wykluczającej. My jednak\boldsymbol{s}}\def\blank{\hbox{\sf Bmawiamy się, że rozumiemy je tak samo   
jak&nbsp;"''lub''".
jak&nbsp;{\it,,lub''}.

Wersja z 21:48, 21 wrz 2006

Logika pierwszego rzędu. Sposób użycia.

Przyjrzyjmy się teraz kilku ważnym tautologiom.

Fakt

Następujące formuły są tautologiami (dla dowolnych Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} i ψ).

  1. Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \forall x(\var\varphi\to\psi)\to(\exists x\var\varphi\to\exists x\psi)} ;
  2. xφφ, o ile x∉FV(φ);
  3. φ[x:=s]xφ;
  4. ¬xφx¬φ;
  5. ¬xφx¬φ;
  6. x(φψ)xφxψ;
  7. x(φψ)xφxψ;
  8. x(φψ)φxψ,o ile x∉FV(φ);
  9. x(φψ)φxψ, o ile x∉FV(φ);
  10. xφxφ;
  11. xyφyxφ;
  12. xyφyxφ;
  13. xyφyxφ;

Dowód

Ćwiczenie.

Formuły (1-3) powyżej wyrażają własności kwantyfikatora szczegółowego i są odpowiednikami formuł z Faktu 2.7. Zauważmy, że zamiast rozdzielności kwantyfikatora szczegółowego, mamy tu jeszcze jedno prawo rozkładu kwantyfikatora ogólnego. Zakłóca to nieco symetrię pomiędzy i , wyrażoną prawami de Morgana (4) i (4).

Kolejne dwie tautologie przypominają o bliskim związku kwantyfikatora ogólnego z koniunkcją i kwantyfikatora szczegółowego z alternatywą. (Uwaga: zmienna x może być wolna w Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi}ψ.) Analogiczna rozdzielność kwantyfikatora ogólnego względem alternatywy (8) i kwantyfikatora szczegółowego względem koniunkcji (9) nie zawsze jest prawdą, ale zachodzi pod warunkiem, że zmienna wiązana kwantyfikatorem nie występuje w jednym z członów formuły. (Prawo (8) nazywane bywa prawem Grzegorczyka.)

Formuła (10) jest odbiciem naszego założenia o niepustości świata. Jest to tautologia, ponieważ umówiliśmy się, że rozważamy tylko struktury o niepustych nośnikach.

Prawa (11)--(13) charakteryzują możliwości permutowania kwantyfikatorów. Implikacja odwrotna do (13) zazwyczaj nie jest tautologią.

Stosując równoważności (4--[9) możemy każdą formułę sprowadzić do postaci, w której wszystkie kwantyfikatory znajdują się na początku.

Definicja 3.2

Mówimy, że formuła Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} jest w preneksowej postaci normalnej, gdy

Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi = Q_1y_1Q_2y_2\ldots Q_ny_n\,\psi} ,

gdzie każde z Qi to lub , a ψ jest formułą otwartą. (Oczywiście n może być zerem.)

Fakt 3.3

Dla każdej formuły pierwszego rzędu istnieje równoważna jej formuła w preneksowej postaci normalnej.

Dowód

Indukcja (ćwiczenie).

Przykład 3.3

Formuła yp(y)zq(z) jest równoważna każdej z następujących formuł:

¬yp(y)zq(z);

y¬p(y)zq(z);

y(¬p(y)zq(z));

yz(¬p(y)q(z));

yz(p(y)q(z)).


Logika formalna i język polski

Systemy logiki formalnej są, jak już mówiliśmy, tylko pewnymi modelami, czy też przybliżeniami rzeczywistych sposobów wyrażania różnych stwierdzeń i wnioskowania o ich poprawności. Poziom dokładności takich przybliżeń może być większy lub mniejszy. Większy tam, gdzie mamy do czynienia z dobrze określoną teorią matematyczną, lub językiem programowania. Mniejszy wtedy, gdy używamy logiki do weryfikacji poprawności stwierdzeń języka potocznego, choćby takiego jak podręcznikowy przykład: Janek idzie do szkoły. Oczywiście przypisanie temu stwierdzeniu wartości logicznej jest zgoła niemożliwe, nie wiemy bowiem, który Janek do jakiej ma iść szkoły i czy może już doszedł? Więcej sensu ma zastosowanie logiki predykatów do analizy np. takiego rozumowania:

Każdy cyrulik sewilski goli tych wszystkich mężczyzn w Sewilli, którzy się sami nie golą.

Ale nie goli żadnego z tych, którzy golą się sami.

A zatem w Sewilli nie ma ani jednego cyrulika.


W tym przypadku aparat logiki formalnej może być pomocny. Łatwiej zrozumieć o co chodzi, tłumacząc nasz problem na język logiki predykatów, i przedstawiając go jako pytanie o poprawność pewnego stwierdzenia postaci Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \Gamma \models\var\varphi} . Można więc zapytać, czy

x(C(x)S(x)y(G(x,y)S(y)¬G(y,y)))¬x(C(x)S(x))?

Stwierdziwszy poprawność powyższego stwierdzenia, wywnioskujemy, że w Sewilli cyrulika nie ma. I będzie to wniosek ... błędny, bo cyrulik być może jest kobietą.

W powyższym przykładzie po prostu źle\boldsymbol{s}}\def\blank{\hbox{\sf Bstalono logiczną interpretację naszego zadania, zapominając o jednym z jego istotnychelementów. Błąd ten można łatwo naprawić, co jest zalecane jako ćwiczenie. Ale nie zawsze język logiki formalnej wyraża ściśle to samo, co p\leftrightarrowczny język polski, a nawet język w którym pisane są prace matematyczne. Zarówno składnia jak i semantyka tych języków rządzi się zupełnie innymi prawami, i o tym należy pamiętać tłumacząc jeden na drugi.


Implikacja materialna i związek przyczynowo-skutkowy

Implikacja, o której mówimy w logice klasycznej to tzw. implikacja materialna. Wartość logiczna, którą przypisujemy wyrażeniu Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi \to\psi} zależy wyłącznie od wartości logicznych przypisanych jego częściom składowym Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} i ψ. Nie zależy natomiast zupełnie od treści tych wyrażeń, czy też jakichkolwiek innych związków pomiędzy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} i ψ. W szczególności, wypowiedzi Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi}ψ mogą mówić o zajściu jakichś zdarzeń i wtedy wartość logiczna implikacji Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi\to\psi} nie ma nic wspólnego z ichewentualnym następstwem w czasie, lub też z tym, że jedno z tych zdarzeń spowodowało drugie. W języku polskim stwierdzenie "jeśli Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} to ψ" oczywiście sugeruje taki związek, np. w zdaniu:

Jeśli zasilanie jest włączone, to terminal działa.

Tymczasem implikacja materialna nie zachodzi, o czym dobrze wiedzą użytkownicy terminali. Co więcej, w istocie materialną prawdą jest stwierdzenie odwrotne:

Jeśli terminal działa to zasilanie jest włączone.

Natomiast zdanie

Terminal działa, ponieważ zasilanie jest włączone,

stwierdza nie tylko związek przyczynowo-skutkowy, ale też faktyczne zajście wymienionych zdarzeń i w ogóle nie ma odpowiednika w logice klasycznej.

Inne spójniki w mniejszym stopniu grożą podobnymi nieporozumieniami. Ale na przykład spójnik "i"" w języku polskim może też sugerować następstwo czasowe <ref name="szesc">W językach programowania jest podobnie, ale to już inna historia.</ref> zdarzeń: "Poszedł i zrobił." A wyrażenie "A, chyba że B" ma inny odcień znaczeniowy niż proste "A lub B". Przy tej okazji zwróćmy uwagę na to, że słowo "albo" bywa czasem rozumiane w znaczeniu alternatywy wykluczającej. My jednak umawiamy się, że rozumiemy je tak samo jak "lub".