plik pdf - IPI PAN

Transkrypt

plik pdf - IPI PAN
Rachunek zdań
2.1 Podstawowe pojęcia
2.1.1. Rachunek zdań to teoria zajmująca się formami wnioskowania zbudowanymi wyłącznie
ze zmiennych zdaniowych oraz funktorów prawdziwościowych, będących pewnego rodzaju
spójnikami zdaniowymi. Teoria ta stanowi – zakładaną przez inne teorie logiczne - część
logiki formalnej.
2.1.2. Proces formalizacji ogólnie pojmowanej teorii rozpoczyna się od formalizacji języka
teorii. W tym celu ustala się
•
•
zbiór symboli nazywanych alfabetem języka formalnego lub znakami pierwotnymi
teorii
zbiór reguł konstrukcji, które pozwalają w ściśle określony sposób konstruować ze
znaków pierwotnych tzw. formuły, czyli wyraŜenia, którymi wolno w danej teorii
operować.
Wśród znaków pierwotnych wyróŜnia się:
(a) stałe indywiduowe (w skrócie: stałe), czyli symbole oznaczające wszystkie pojęcia
pierwotne formalizowanej teorii
(b) zmienne indywiduowe (w skrócie: zmienne), czyli symbole oznaczające obiekty,
którymi zajmuje się dana teoria
(c) symbole funktorów zdaniotwórczych (koniunkcji, alternatywy,...)
(d) nawiasy i przecinki, czyli symbole „graficzne” stosowane dla celów przejrzystego
zapisywania i jednoznacznego odczytywania formuł.
Z wymienionych w punktach (a), (b) i (d) znaków pierwotnych tworzy się tzw. formuły
atomowe, które odpowiadają najprostszym funkcjom zdaniowym danej teorii. Z formuł
atomowych tworzy się – stosując znaki wymienione w punkcie (c) oraz reguły konstrukcji –
wszystkie formuły języka formalnego.
2.1.3. Konstruując język formalny nie odwołujemy się do jakiejkolwiek interpretacji jego
symboli ani formuł. A skoro nie wymaga on rozumienia, moŜe być w pełni przyswojony
przez maszynę (o ile alfabet języka jest skończony). Ujmując rzecz inaczej, język formalny
moŜna utoŜsamić ze zbiorem jego dobrze zbudowanych formuł (zwanych w skrócie
formułami). JeŜeli zbiór wszystkich formuł języka formalnego L jest identyczny ze zbiorem
formuł języka formalnego L’, to L jest tym samym językiem formalnym, co L’; w
przeciwnym wypadku są to róŜne języki.
2.1.3.1. Formuła jest przedmiotem abstrakcyjnym. Egzemplarzem formuły jest znak lub
ciąg znaków. Zbiór wszystkich dobrze zbudowanych formuł pewnego języka formalnego
ustalony zostaje na mocy decyzji twórcy tego języka, który po prostu informuje, jakie
przedmioty są formułami tego języka. Czyni to zazwyczaj przez podanie
•
•
zbioru symboli (a więc alfabetu tego języka) oraz
zbioru reguł konstrukcji, ustalających, które ciągi symboli naleŜących do alfabetu
są dobrze zbudowanymi formułami tego języka.
Obydwa te zbiory muszą być określone bez jakiegokolwiek odwoływania się do
interpretacji. W przeciwnym wypadku język nie jest językiem formalnym.
Symbole – podobnie jak formuły są przedmiotami abstrakcyjnymi. Egzemplarzem
symbolu jest znak lub ciąg znaków.
2.1.3.2. Przykład. Język J określony jest jak następuje:
Alfabet: 5 7;
Formuły: KaŜdy skończony ciąg symboli z alfabetu zaczynający się symbolem 5 jest
formułą.
Przykłady formuł: 5 5 7; 5 7777.
Natomiast 777 nie jest formułą.
2.1.3.3. Przykład. Język X określony jest jak następuje:
Alfabet: a b c d e f g;
Formuły: KaŜdy skończony ciąg symboli z alfabetu będący słowem polskim jest formułą.
Nie jest to język formalny, gdyŜ definicja formuły w X odwołuje się w istocie do
znaczenia, skoro słowem polskim jest tylko to co ma znaczenie z języku polskim.
2.1.4. Mając dany język formalny (nazywany teŜ językiem przedmiotowym) moŜemy
(a) podać aparat dedukcyjny dla tego języka, oraz/lub
(b) zdefiniować pojęcie interpretacji (semantyki) języka.
W pierwszym przypadku znajdujemy się na gruncie teorii dowodu, w drugim – na gruncie
teorii modeli.
2.1.4.1. Aparat dedukcyjny tworzony jest przez wyodrębnienie ze zbioru formuł
języka przedmiotowego pewnego podzbioru nazywanego aksjomatami, oraz przez
określenie reguł wnioskowania (nazywanymi teŜ regułami inferencji lub dowodzenia),
które pozwalają wyprowadzać jedne formuły z innych. Reguły wnioskowania
wyznaczają relację bezpośredniej konsekwencji.
Aparat dedukcyjny określany jest bez odwoływania się do jakiejkolwiek interpretacji
języka. MoŜe się on składać z aksjomatów i reguł wnioskowania lub tylko z
aksjomatów, lub tylko z reguł dowodzenia. Język formalny wraz z aparatem
dedukcyjnym tworzą system formalny (teorię).
Podstawowymi pojęciami teorii dowodu są pojęcia: dowodu formalnego, twierdzenia
formalnego, derywacji formalnej, oraz konsekwencji syntaktycznej.
Przykład. Dla języka J określonego w 2.1.3.2 określmy regułę inferencji w
następujący sposób: KaŜda formuła w J, której ostatnimi dwoma symbolami są
kolejno „5” i „7” jest bezpośrednią konsekwencją w J dowolnej formuły w J, której
2
pierwszymi symbolami są „5” i „7”. Nic poza tym nie jest bezpośrednią konsekwencją
w J Ŝadnej formuły.
(a) 5 5 7 jest bezpośrednia konsekwencją w J z formuły 5777
(b) 57 jest bezpośrednia konsekwencją w J z formuły 57
(c) 5775 nie jest bezpośrednią konsekwencją w J z formuły 5775 (kończy się 75, a nie
57)
(d) 75775 nie jest bezpośrednią konsekwencją w J z formuły 57757 (nie jest bowiem
formułą w J)
2.1.4.b) Problemami interpretacji języków formalnych, a więc problemami
przypisywania znaczeń symbolom i formułom tych języków zajmuje się teoria modeli,
nazywana teŜ semantyką logiczną. Do podstawowych pojęć tej teorii naleŜą pojęcia:
prawdziwości dla danej interpretacji, poprawności logicznej oraz konsekwencji
semantycznej.
Przykład. Jedną z moŜliwych interpretacji jest przypisanie znakowi „5” tego samego
znaczenia, które ma dziesiętna cyfra „0”, a znakowi „7” – znaczenia, które ma cyfra
„1”. Wtedy formuła „575” znaczyłaby tyle, co „010” w systemie dziesiętnym.
Zinterpretowana formuła nie musi być zdaniem w sensie logicznym. MoŜe ona być –
jak wyŜej – nazwą czegoś.
2.1.5. Teorię, której przedmiotem zainteresowania są systemy formalne oraz ich interpretacje
nazywamy metamatyką. UŜywany na jej gruncie język, słuŜący do opisu języka formalnego,
nosi nazwę metajęzyka (w naszym przypadku jest to język polski wzbogacony o pewne
sztuczne symbole). Do najwaŜniejszych zagadnień, którymi zajmuje się metamatyka są:
niesprzeczność, zupełność i rozstrzygalność.
2.2 Język formalny dla logiki zdań
Do formalizacji języka logiki zdań, L, konieczne są: zmienne indywiduowe (w tym wypadku:
zdaniowe) i funktory zdaniotwórcze.
2.2.1. W logice zdań interesują nas stwierdzenia, które mogą być prawdziwe lub fałszywe.
Przez zdanie rozumiemy więc stwierdzenie, które jest albo prawdziwe, albo fałszywe. Np.:
„śnieg biały”, „cukier – węglowodan”. Zdania oznaczamy literami pisanymi kursywą: p, q, r,
... i nazywanymi zmiennymi zdaniowymi. Innymi słowy: zmienna zdaniowa wskazuje wolne
miejsce, które moŜe zostać wypełnione przez dowolne wyraŜenie naleŜące do kategorii zdań.
Zmienne zdaniowe nazywane są teŜ formułami atomowymi, lub krócej: formułami.
2.2.2. Spójniki zdaniowe logiki zdań są podobne do pewnych spójników zdaniowych języka
naturalnego, jeŜeli weźmie się pod uwagę jedynie ich rolę syntaktyczną. Rola ta polega na
tworzeniu zdań złoŜonych z innych zdań (złoŜonych lub nie), tak jak jest to w przypadku
spójników języka polskiego: „i”, „lub”, „jeŜeli ... to”, itp.
2.2.2.a) Spójniki zdaniowe traktowane są w logice jako funktory1 w funkcjach
prawdziwościowych, tj. w takich funkcjach, których wartościami są prawda lub fałsz. Prawda
1
Symbol reprezentowany przez literę „f” w formule f(x) nazywamy funktorem.
3
i fałsz nazywane są wartościami (stałymi) logicznymi i zwykle oznaczane są, odpowiednio,
symbolami 1 i 0; uŜywa się teŜ do tego celu symboli P i F lub V (verum) i F (falsum).
Przykłady funkcji prawdziwościowych:
T1
p
0
1
¬p
1
0
T2
p
1
1
0
0
q
1
0
1
0
p∨q
1
1
1
0
Podane wyŜej tablice nazywane są tabelami prawdziwościowymi.
MoŜna określić cztery funkcje prawdziwościowe 1-argumentowe i szesnaście 2argumentowych. Tylko niektóre z nich są uŜywane w systemach logicznych. W logice zdań
stosujemy pięć spójników: ¬, ∧, ∨, →, ↔.
2.2.3. Definicja (reguły formowania). Zbiór formuł języka L0 logiki zdań określamy
następująco:
(i)
(ii)
(iii)
(iv)
Atom jest formułą.
JeŜeli p jest formułą to (¬p) jest formułą.
JeŜeli p i q są formułami, to formułami są takŜe (p ∧ q), (p ∨ q), (p → q), (p ↔ q).
Innych formuł nie ma.
2.2.4.Uwagi:
• Korzystając z tautologii logiki zdań (por. 2.4) warunek (iii) przyjmuje prostszą postać.
• Tworząc formuły logiczne moŜna obejść się bez nadmiarowych nawiasów porządkujemy
malejąco waŜność operatorów ↔, →, ∧, ∨, ¬ i wymagamy, aby spójnik o większej randze
miał większy zakres. Tak więc p → q ∧ r oznacza (p → (q ∧ r)) a p → q ∧ ¬r ∨ s oznacza
(p → (q ∧ ((¬r) ∨ s))).
• Niech p i q będą formułami i niech [p] i [q] oznaczają wartości logiczne tych formuł.
Wówczas:
(a)
(b)
(c)
(d)
(e)
[¬p] = 1 – [p],
[p∧q] = min([p],[q]),
[p∨q] = max([p],[q]),
[p→q] = [¬p ∨ q],
[p↔q] = [(p→q) ∧ (q→p)]
2.3. Interpretacja formuł logiki zdań.
2.3.1. Niech formuła p składa się z n zmiennych q1,..., qn. Interpretacją formuły p nazywamy
dowolne przyporządkowanie wartości logicznych występującym w niej zmiennym,
I = {[q1], ..., [qn]}
gdzie [qi] ∈ {0, 1}, i = 1,...,n. Oznacza to, Ŝe p ma 2n interpretacji.
4
Np. formuła
p ↔ (q∧r) → (s ↔(¬t))
składa się z czterech formuł atomowych q, r, s i t, co oznacza, Ŝe p ma 16 interpretacji.
2.3.2. Formuła p jest prawdziwa w interpretacji I wtw, gdy [p] = 1 w tej interpretacji, co
oznaczamy [p] =I 1. JeŜeli [p] =I 0 to p jest fałszywa w interpretacji I. Inaczej: interpretacja I
spełnia p, gdy p jest prawdziwa w I; równowaŜnie mówimy, Ŝe p jest spełnialna w I. Na
odwrót, interpretacja I falsyfikuje p, gdy p jest fałszywa w I; równowaŜnie mówimy, Ŝe p jest
falsyfikowalna w I. Np. formuła (p ∧ (¬q)) jest spełnialna w I1 = {p, ¬q} i falsyfikowalna w
I2 = {p, q}.
2.3.4. Zbiór interpretacji spełniających formułę p nazywamy modelem formuły p.
2.4 Tautologie
2.4.1 Formuła logiki zdań jest tautologią, jeŜeli ma wartość prawdy przy wszystkich
interpretacjach, lub inaczej: to te formuły, które są prawdziwe „we wszystkich moŜliwych
światach” (Leibniz). Dlatego moŜna powiedzieć, Ŝe tautologia nie przynosi Ŝadnej informacji
o rzeczywistym świecie, gdyŜ daje się pogodzić z kaŜdym moŜliwym stanem rzeczy.
Uwaga: JeŜeli formuła p ma wartość prawdy przy wszystkich interpretacjach języka L,
nazywamy ją logicznie poprawną formułą w L i oznaczamy symbolem |=L p. Np. |= (p → p),
ale |≠ (¬(p → p)); podobnie, gdy p jest zmienną zdaniową to |≠ p.
Przykład. RozwaŜmy formułę g ↔ ((p→q) ∧ p) → q. Matryca dla tej formuły ma postać
p
1
1
0
0
q
1
0
1
0
(p→q)
1
0
1
1
((p→q) ∧ p)
1
0
0
0
((p→q) ∧ p) → q
1
1
1
1
2.4.2. Formuła logiki zdań jest kontrtautologią, jeŜeli ma wartość fałszu przy wszystkich
interpretacjach. Przykładem jest tu sprzeczność p ∧ ¬p.
2.4.3. (Klasyfikacja formuł) Formuła p logiki zdań jest:
•
•
spełniona, jeŜeli istnieje taka interpretacja I, Ŝe p jest prawdziwa w I
falsyfikowalna, jeŜeli istnieje taka interpretacja I, Ŝe p jest fałszywa w I
2.4.4. Przykłady tautologii
modus ponendo ponens
modus tolendo tolens
prawa de Morgana
((p → q) ∧ p) → q
((p → q) ∧ ¬q) → ¬p
¬(p ∧ q) = ¬p ∨ ¬q
5
prawa kompozycji
prawa pochłaniania
prawa przemienności
prawa rozdzielności
prawa symplifikacji
¬(p ∨ q) = ¬p ∧ ¬q
((p ∨ q) → r) → (p → r)
((p ∨ q) → r) → (q → r)
p ∨ (p ∧ q) ↔ p
p ∧ (p ∨ q) ↔ p
p∧q↔q∧p
p∨q↔q∨p
(p ↔ q) ↔ (q ↔ p)
p ∧ (q ∨ r) ↔ (p ∧ q) ∨ (p ∧ r)
p ∨ (q ∧ r) ↔ (p ∨ q) ∧ (p ∨ r)
(p ∧ q) → p
q → (p ∨ q)
q → (p → q)
2.5 Postacie normalne
2.5.1. W świetle praw przemienności nawiasy w wyraŜeniach (p ∨ q) ∨ r lub (p ∧ q) ∧ r mogą
być opuszczone. Ogólnie, moŜna bez obawy popełnienie błędu pisać p1 ∨ p2 ∨ ... ∨ pn, gdzie
pi, i = 1,...,n są formułami. Formułę q ↔ p1 ∨ p2 ∨ ... ∨ pn nazywamy formułą dyzjunkcyjną
(w skrócie: dyzjunkcją), a formułę q ↔ p1 ∧ p2 ∧ ... ∧ pn nazywamy formułą koniunkcyjną
(w skrócie: koniunkcją). ZauwaŜmy, Ŝe porządek składników (czynników) formuły
dyzjunkcyjnej (koniunkcyjnej) nie wpływa na jej wartość logiczną.
2.5.2. Literą (literałem) nazywamy atom lub negację atomu.
2.5.3. Formuła q stanowi koniunkcyjną postać normalną (KPN), gdy jest koniunkcją p1 ∧ p2 ∧
... ∧ pn, gdzie kaŜdy czynnik pi ma kształt dyzjunkcji literałów.
2.5.3.1. Formułę będącą pojedynczą literą traktuje się jako alternatywę z jednym
członem, jako Ŝe jest ona równowaŜna dyzjunkcji p ∨ p. Formuła będąca pojedynczą
dyzjunkcją, np. p ∨ q uwaŜana jest za jednoczłonową koniunkcję, gdyŜ jest
równowaŜna z (p ∨ q) ∧ (p ∨ q).
2.5.3.2. Sprowadzenie formuły q do KPN pozwala rozstrzygnąć czy q jest, czy nie jest
tautologią dzięki następującemu twierdzeniu. JeŜeli q jest w KPN, to q jest tautologią
wtedy i tylko wtedy, gdy kaŜdy jej czynnik zawiera jednocześnie jakąś zmienną i jej
negację. Istotnie, koniunkcja p1 ∧ p2 ∧ ... ∧ pn jest tautologią wtw, gdy wszystkie jej
czynniki są tautologiami. Gdy czynnik pi zawiera zmienną i jej negację, to stanowi
prawdziwą alternatywę; jeŜeli natomiast Ŝadna taka para nie występuje w pi,
alternatywa ta będzie przy pewnych interpretacjach fałszywa.
2.5.3.3. Aby sprowadzić dowolna formułę do KPN korzystamy z reguł zastępowania i
reguł transformacji. Reguły zastępowania pozwalają wyeliminować symbole
implikacji i równowaŜności:
(Imp) p → q wolno zastąpić przez ¬p ∨ q,
6
(Rw) p ↔ q wolno zastąpić przez (¬p ∨ q) ∧ (¬q ∨ p)
Reguły transformacji to: prawa de Morgana, prawa podwójnej negacji, łączności,
przemienności, rozdzielności, itp.
2.5.3.4. Przykład. Sprowadzić do KPN formułę ((p → q) ∧ p) → q. KaŜdy wiersz w
poniŜszym ciągu powstaje z poprzedniego przez zastosowanie reguły wymienionej w
prawej kolumnie.
((p → q) ∧ p) → q
(Imp) zastosowana dwa razy
¬((¬p ∨ q) ∧ p) ∨ q
prawo de Morgana
(¬(¬p ∨ q) ∨ ¬p) ∨ q
prawo de Morgana i podwójne przeczenie
((p ∧ ¬q) ∨ ¬p) ∨ q
przemienność
q ∨ (¬p ∨ (p ∧ ¬q))
rozdzielność
q ∨ ((¬p ∨ p) ∧ (¬p ∨ ¬q))
rozdzielność
(q ∨ (¬p ∨ p)) ∧ (q ∨ (¬p ∨ ¬q))
przemienność, łączność
(q ∨ (¬p ∨ p)) ∧ ((q ∨ ¬q) ∨ ¬p)
2.5.4. Formuła q stanowi alternatywną postać normalną (APN), gdy jest dyzjunkcją p1 ∨ p2 ∨
... ∨ pn, gdzie kaŜdy składnik pi ma kształt koniunkcji literałów.
2.5.4.1. Formuła w APN jest logicznie fałszywa (jest kontrtautologią) wtw, gdy kaŜdy
składnik zawiera jednocześnie jakąś zmienną i jej negację. Zatem procedura
sprowadzania formuły do APN nadaje sie do wykazania fałszywości tej formuły. Tej
samej metody moŜna uŜyć do wykazania, Ŝe formuła jest tautologią; wystarczy
bowiem udowodnić fałszywość jej zaprzeczenia.
2.5.4.2. Przykład. RozwaŜmy formułę ¬(p ↔ ¬p). Jej zaprzeczenie ¬(¬(p ↔ ¬p)), a
więc p ↔ ¬p, jest równowaŜne następującym formułom
(Rw), przemienność
(p ∨ p) ∧ (¬p ∨ ¬p)
rozdzielność
((p ∨ p) ∧ ¬p) ∨ ((p ∨ p) ∧ ¬p)
rozdzielność
(p ∧ ¬p) ∨ (p ∧ ¬p) ∨(p ∧ ¬p) ∨(p ∧ ¬p)
Ostatnie z tych formuł jest oczywiście sprzeczna, a zatem formuła ¬(p ↔ ¬p) jest
tautologią.
2.6. Konsekwencja logiczna.
2.6.1. Przykład. ZałóŜmy, Ŝe kurs akcji spada, jeŜeli rosną stopy procentowe. JeŜeli kurs
akcji spada to większość ludzi jest niezadowolona. Ze stwierdzeń tych moŜna wywnioskować,
Ŝe jeŜeli rosną stopy procentowe to większość ludzi jest niezadowolona. Aby wykazać to
stwierdzenie wprowadźmy zmienne
p ↔ stawki procentowe rosną,
q ↔ kurs akcji spada,
r ↔ większość ludzi jest niezadowolona.
Wypowiedziane wyŜej zdania mają postać:
7
1.
2.
3.
4.
p→q
q→r
p
r
PokaŜmy, Ŝe (4) jest prawdziwe tylko wtedy, gdy (1) ∧ (2) ∧ (3) prawdziwe. W tym celu
przekształćmy (p → q) ∧ (q → r) ∧ (p) do KPN:
(p → q) ∧ (q → r) ∧ (p)
(¬p ∨ q) ∧ (¬q ∨ r) ∧ (p)
(p ∧ (¬p ∨ q) ∧ (¬q ∨ r))
(((p ∧ ¬p) ∨ (p ∧ q)) ∧ (¬q ∨ r))
(((p ∧ ¬p) ∨ (p ∧ q ∧ ¬q)) ∨ (p ∧ q ∧ r))
0 ∨ 0 ∨ (p ∧ q ∧ r)
(p ∧ q ∧ r)
(Imp)
przemienność
rozdzielność
rozdzielność
Oznacza to, Ŝe jeŜeli formuła (p → q) ∧ (q → r) ∧ p jest prawdziwa, to prawdziwa jest
formuła (p ∧ q ∧ r). Ta ostatnia formuła jest prawdziwa tylko wtedy gdy wszystkie jej
czynniki są jednocześnie prawdziwe. A zatem r jest prawdziwe, jeŜeli tylko prawdziwa jest
formuła (p → q) ∧ (q → r) ∧ p.
2.6.2. Definicja. Niech dane będą formuły p1 p2,..., pn, oraz formuła q. Mówimy, Ŝe q jest
semantyczną konsekwencją formuł p1 p2,..., pn (lub, Ŝe q wynika logicznie z p1 p2,..., pn) wtw,
gdy dla kaŜdej interpretacji I, w której koniunkcja p1 ∧ p2 ∧ ... ∧ pn jest prawdziwa,
prawdziwa jest formuła q. p1 p2,..., pn nazywamy aksjomatami (postulatami, lub
przesłankami) q.
JeŜeli przez A oznaczymy zbiór przesłanek, a przez q konkluzję, to q jest semantyczną
konsekwencją A, co oznaczamy A |= q, wtw, gdy nie ma takiej interpretacji, dla której kaŜda
formuła z A jest prawdziwa, a q jest fałszywa.
2.6.3. Twierdzenie. Niech dane będą formuły p1 p2,..., pn, oraz formuła q. Formuła q jest
logiczną konsekwencją formuł p1 p2,..., pn wtw, gdy formuła (p1 ∧ p2 ∧ ... ∧ pn) → q jest
tautologią.
UWAGA: JeŜeli q jest logiczną konsekwencją formuł p1 p2,..., pn, to ((p1 ∧ p2 ∧ ... ∧ pn) → q)
nazywamy twierdzeniem, a q – konkluzja twierdzenia.
2.6.4. Twierdzenie. Niech dane będą formuły p1 p2,..., pn, oraz formuła q. Formuła q jest
logiczną konsekwencją formuł p1 p2,..., pn wtw, gdy formuła (p1 ∧ p2 ∧ ... ∧ pn ∧ ¬q) jest
kontrtautologią2.
2.6.5. Przykład. Dane są formuły f1 ↔ (p → q), f2 ↔ ¬q, f3 ↔ ¬p. Pokazać, Ŝe f3 jest
konsekwencją logiczną f1 i f2.
2
GdyŜ negacją formuły (p1 ∧ p2 ∧ ... ∧ pn) → q jest (p1 ∧ p2 ∧ ... ∧ pn ∧ ¬q).
8
2.6.5.1. Metoda zero-jedynkowa. Konstruujemy matryce logiczna i sprawdzamy, czy
f3 jest prawdziwa w kaŜdym modelu formuły (p → q) ∧ ¬q. Z podanej niŜej tabeli
wynika, Ŝe posiada tylko jeden model: {¬p, ¬q}. Formuła ¬p jest prawdziwa w tym
modelu, a zatem f3 jest konsekwencją logiczną f1 i f2.
p
1
1
0
0
q
1
0
1
0
p→q
1
0
1
1
¬q
0
1
0
1
(p → q) ∧ ¬q
0
0
0
1
¬p
0
0
1
1
2.6.5.2. Druga metoda polega na wykorzystaniu twierdzenia 2.6.3, czyli na wykazaniu,
ze (p → q) ∧ ¬q → ¬p jest tautologią. MoŜna tu wykorzystać metodę zerojedynkową, albo przekształcić tę ostatnią formułę do KPN. Skorzystajmy z tej drugiej
metody.
(p → q) ∧ ¬q → ¬p
¬((p → q) ∧ ¬q) ∨ ¬p
¬((¬p ∨ q) ∧ ¬q) ∨ ¬p
¬((¬p ∧ ¬q) ∨ (q ∧ ¬q))∨ ¬p
¬((¬p ∧ ¬q) ∨ 0) ∨ ¬p
¬(¬p ∧ ¬q) ∨ ¬p
(p ∨ q) ∨ ¬p
q ∨ (p ∨ ¬p)
q∨1
1
(Imp)
(Imp)
rozdzielność
podwójna negacja
przemienność i łączność
2.6.5.3. Trzecia metoda polega na wykorzystaniu twierdzenia 2.6.4, czyli na
wykazaniu, ze formuła ((p → q) ∧ ¬q ∧ p) jest kontrtautologią. MoŜna tu wykorzystać
metodę zero-jedynkową, albo przekształcić tę ostatnią formułę do APN.
2.7. Aparat dedukcyjny dla logiki zdań
Uwaga: Punkt ten traktujemy tak, jakby następował bezpośrednio po 2.2, tzn. załóŜmy, Ŝe nie
wiemy niczego o jakiejkolwiek interpretacji języka L logiki zdań.
2.7.1 Aksjomaty logiki zdań
JeŜeli A,B i C są dowolnymi formułami w L to aksjomatami są
(A1) A → (B → A)
(A2) (A → (B → C)) → ((A → B) → (A → C))
(A3) (¬A → ¬B) → (B → A)
Nic poza tym nie jest aksjomatem.
Uwagi:
9
•
WyraŜenia „A → (B → A)” itp. naleŜą do metajęzyka („A” i „B” nie są symbolami L).
Tak więc (A1) – (A3) naleŜy traktować jako schematy aksjomatów: aksjomatem
będzie kaŜda formuła równokształtna z (A1), (A2) lub (A3). Np. na mocy (A1)
otrzymujemy następujące aksjomaty:
p → (q → p)
p → (p → p)
¬p → (p → ¬p)
•
O aksjomatach tych nie zakłada się, Ŝe są prawdami oczywistymi. Zostały one
zdefiniowane bez odwoływania się bez jakiejkolwiek interpretacji.
2.7.2 Reguła inferencji
Gdy A i B są dowolnymi formułami w L, to B jest bezpośrednią konsekwencją pary formuł A i
(A → B). Jest to reguła MP (modus ponens). Oznaczamy ją teŜ
A, A → B
B
2.7.3 Definicja. Dowodem jest skończony (lecz nie pusty) ciąg formuł języka L, z których
kaŜda jest albo aksjomatem, albo bezpośrednią konsekwencją pewnych dwóch formuł
poprzedzających ja w tym ciągu.
Przykład:
p → ((p → p) → p)
(p → ((p → p) → p)) → ((p → (p → p)) → (p → p))
(p → (p → p)) → (p → p)
p → (p → p)
p→p
(A1)
(A2)
MP formuł (1) i (2)
(A1)
MP formuł (3) i (4)
2.7.4 Definicja. Formuła p jest twierdzeniem, co oznaczamy | p, jeŜeli istnieje dowód,
którego ostatnią formułą jest p.
Uwaga: w ciągu, który jest dowodem, kaŜda formuła jest twierdzeniem.
2.7.5 Definicja. Ciąg formuł jest derywacją formuły p ze zbioru A wtw, gdy
(a) Jest on skończonym (lecz nie pustym) ciągiem formuł języka L, przy czym
(b) Ostatnią formułą w tym ciągu jest p, oraz
(c) KaŜda formuła w tym ciągu jest albo aksjomatem, albo bezpośrednią
konsekwencją pewnych dwu formuł poprzedzających ja w tym ciągu, albo
elementem zbioru A.
Z powyŜszego określenia wynika, Ŝe kaŜdy dowód jest derywacją ze zbioru pustego.
2.7.6 Definicja. Formuła p jest syntaktyczną konsekwencją zbioru formuł A, co oznaczamy
A| p, wtw, gdy istnieje derywacją p z A.
10
2.7.7 Definicja. Zbiór A jest teoriodowodowo niesprzecznym zbiorem formuł wtw gdy dla
Ŝadnej formuły p nie ma tak, Ŝe A| p, i zarazem A| ¬p.
2.7.8. Twierdzenie o dedukcji (Alfred Tarski, 1921): A, p | q to A | (p → q)
JeŜeli q jest syntaktyczną konsekwencją zbioru formuł {A, p} to p → q jest syntaktyczną
konsekwencją zbioru A}
2.8 Konsekwencja semantyczna a konsekwencja syntaktyczna.
KaŜde twierdzenie jest logicznie poprawne, tzn. jeŜeli | q to |= q.
JeŜeli q jest syntaktyczną konsekwencją zbioru formuł A to jest semantyczną konsekwencją
tego zbioru, A| q to A|= q.
3. Logika predykatów
3.1 Wprowadzenie
Logika predykatów wraz z logika zdań stanowi całość logiki formalnej. O ile logika zdań
dostarcza praw wnioskowania odwołujących się do struktury zdań złoŜonych (nie wnikając w
budowę zdań będących składnikami owych złoŜeń), to logika predykatów dostarcza praw
wnioskowania odwołujących się do wewnętrznej budowy zdań, w której wyróŜnia się
•
•
•
predykaty (odpowiednik orzeczenia w tradycyjnej gramatyce),
argumenty predykatów (odpowiednik podmiotu), oraz
kwantyfikatory wskazujące, do których (wszystkich lub wybranych) przedmiotów
odnoszą się predykaty
3.2 Język formalny dla logiki predykatów
3.2.1 Symbole języka
•
•
•
•
•
•
•
nieskończenie wiele zmiennych zdaniowych: p, q, r, ...
nieskończenie wiele stałych indywiduowych (słuŜą do nazywania obiektów): a, b, c, ...
nieskończenie wiele zmiennych indywiduowych: x, y, z,...
nieskończenie wiele symboli predykatowych: P, Q,...
nieskończenie wiele symboli funkcyjnych: f, g, h,...
stałe logiczne, tzn. spójniki logiki zdań oraz symbole specyficzne (kwantyfikatory)
znaki graficzne: nawiasy, myślnik, przecinek
3.2.1a) Dopuszcza się stosowanie ciągów liter na oznaczanie stałych indywiduowych,
symboli funkcyjnych oraz symboli predykatowych, ew. indeksowanie symboli.
11
3.2.1b) Symbole funkcyjne i predykatowe mają określoną liczbę argumentów, n. Dla symboli
predykatowych n > 0, a dla symboli funkcyjnych n ≥ 0 (symbol funkcyjny, dla którego n = 0
utoŜsamiamy ze stałą indywiduową).
3.2.1c) Symbole funkcyjne słuŜą do nazywania funkcji, tzn. odwzorowań uporządkowanych
n-tek stałych w określone stałe. Symbole predykatowe słuŜą do nazywania predykatów, tzn.
wyraŜeń zawierających pewne zmienne i opisujących pewną własność lub pewną relację.
Predykaty to odwzorowania przypisujące n-tkom stałych wartość logiczną 1 (prawda) lub 0
(fałsz).
3.2.2 Termy.
•
•
•
•
Stała jest termem.
Zmienna jest termem.
JeŜeli f jest n-argumentowym symbolem funkcyjnym i t1,...tn są termami to f(t1,...tn)
jest termem.
Innych termów nie ma.
Przykłady.
(a) Niech plus będzie dwuargumentowym symbolem funkcyjnym. plus(x, 1) jest
termem bo stała 1 i zmienna x są termami. Podobnie plus (plus (x,1),1) jest
termem.
(b) ojciec(Jan), ojciec (ojciec(Jan)) są termami
3.2.3 Atomy. JeŜeli P jest n-argumentowym symbolem predykatowym i t1,...tn są termami, to
P(t1,...tn) jest formułą atomową, w skrócie: atomem.
Przykład: Niech EQ będzie 2-argumentowym symbolem predykatowym. EQ(x,y),
EQ(plus(x, 1), plus(y, 1)) są atomami.
3.2.4. Niech Q będzie dowolnym, tzn. ogólnym (∀) lub egzystencjalnym (∃),
kwantyfikatorem. RozwaŜmy wyraŜenie postaci (Qx)A. A nazywamy zasiegiem
kwantyfikatora Q, natomiast x – zmienną objętą kwantyfikatorem.
Zmiennymi związanymi kwantyfikatorem Q są wszystkie symbole zmiennych równokształtne
ze zmienną objęta kwantyfikatorem i zawarte w jego zasięgu.
Pewna litera jest zmienną wolną w A gdy nie jest zmienną związaną w A.
Przykłady:
(a) (∀x) P(x,y)
(b) (∀x) P(x) ∨ (∃y)Q(x,y)
x jest zmienną związaną, y - swobodną
x jest zmienną swobodną i związaną, y - związaną
3.2.5. Formuły
(a)
(b)
(c)
(d)
Atom jest formułą
JeŜeli F i G są formułami, to: ¬F, F ∧ G, F ∨ G, F → G, F ↔ G są formułami
JeŜeli F jest formułą, a x jest zmienną wolną w F to (∀x)F i (∃x)F są formułami
Innych formuł nie ma.
12
3.2.6.
Formułę, w której nie występują zmienne wolne nazywamy formułą domkniętą (zdaniem).
Formułę, która nie jest domknięta nazywamy otwartą.
JeŜeli w F występują symbole zmiennych wolnych, x1,...,xn, to formułę (∀x1)...(∀xn)F
nazywamy uniwersalnym domknięciem formuły F i oznaczamy symbolem Fc.
3.3 Przykłady
3.3.1 Aksjomaty liczb naturalnych:
A1: Dla kaŜdej liczby istnieje jedna i tylko jedna liczba występująca bezpośrednio za nią
A2: Nie istnieje liczba, za którą bezpośrednio występuje 0
A3: Dla kaŜdej liczby róŜnej od zera istnieje dokładnie jedna liczba występująca przed nią.
Niech f(x) oznacza liczbę występującą bezpośrednio za x, a g(x) – liczbę występującą
bezpośrednio przed x. Niech E(x,y) oznacza „x = y”. PowyŜsze aksjomaty reprezentują
formuły:
S1: (∀x)(∃y)(E(y, f(x)) ∧ (∀z)(E(z, f(x)) → E(y,z))),
S2: ¬((∃x) E(0,f(x))
S3: (∀x)(¬E(0,x) → ((∃y) E(y,g(x)) ∧ (∀z)(E(z, g(x)) → E(y,z)) → E(y,z))).
3.3.2 (analiza scen) RozwaŜmy sytuację z rys. 1 przedstawiającą układ trzech klocków.
Określając predykaty NA(x,y), NA-STOLE(x), LUZEM(x), z których pierwszy wskazuje, Ŝe
na klocku x leŜy klocek y, drugi – Ŝe klocek x leŜy na stole, a trzeci, ze klocek x jest luzem,
powyŜszą sytuację opisuje formuła
S = S1 ∧ S2 ∧ S3 ∧ S4 ∧ S5 ∧ S6
gdzie:
S1: NA(A,C),
S2: NA-STOLE(A),
S3: NA-STOLE(B),
S4: LUZEM(B),
S5: LUZEM(C),
S6: (∀x)(LUZEM(z) → ¬(∃x)NA(z,x))
Ten sposób opisu scen wykorzystano w systemie STRIPS.
C
A
B
Rys. 1 Prosta scena
13
3.3.3 Niech PRACUJE-W(x,z) oznacza, Ŝe pracownik x zatrudniony jest w wydziale
produkcyjnym z i niech MAŁśEŃSTWO(x,y) oznacza, Ŝe x i y są małŜeństwem. Formuła
(∀x)(∀y)(∀z) (MAŁśEŃSTWO(x,y) → ¬(PRACUJE-W(x,z) ∧ PRACUJE-W(y,z)))
reprezentuje przepis, Ŝe małŜonkowie nie mogą być zatrudnieni w tym samym miejscu pracy.
3.4 Interpretacja formuł logiki predykatów
Niech L1 oznacza język logiki predykatów.
3.4.1 Interpretację dla L1 wyznacza uporządkowana para (D, F), gdzie D jest niepustym
zbiorem zwanym dziedziną interpretacji, natomiast F jest odwzorowaniem takim, Ŝe
(a) KaŜdej stałej indywiduowej przyporządkowany jest pewien element ze zbioru D,
(b) KaŜdemu n-argumentowemu symbolowi funkcyjnemu f przyporządkowana jest pewna
funkcja fI: Dn → D,
(c) KaŜdemu n-argumentowemu symbolowi predykatowemu P przyporządkowana jest
pewna funkcja PI: Dn → {0,1} będąca funkcją charakterystyczną pewnej nargumentowej relacji w D; stałe 0 i 1 odpowiadają stałym logicznym.
3.4.2 Dla kaŜdej interpretacji w dziedzinie D formuła przyjmuje wartość 1 lub 0 zgodnie z
następującymi regułami:
(a) JeŜeli znane są wartości formuł G i H to znaczenia formuł ¬G, H ∧ G, H ∨ G, H → G,
H ↔ G wyznaczane są przy uŜyciu tabel prawdziwościowych.
(b) (∀x) G otrzymuje wartość 1 tylko wtedy, gdy G ma wartość 1 dla kaŜdego elementu x
z D; w przeciwnym razie (∀x) G otrzymuje wartość 0
(c) (∃x) G otrzymuje wartość 1 tylko wtedy, gdy G ma wartość 1 dla przynajmniej
jednego elementu x z D; w przeciwnym razie (∃x) G otrzymuje wartość 0
3.4.3 Przykłady interpretacji
3.4.2.1 RozwaŜmy formuły (∀x) P(x), (∃x) ¬P(x). Przyjmujemy następującą interpretację: D
= {1,2}, PI(1) = 1, PI(2) = 0. Oczywiście (∀x) P(x) otrzymuje wartość 0, natomiast (∃x) ¬P(x)
wartość 1.
3.4.2.2 Dana jest formuła (∀x) (∃y) P(x,y). Niech D = {1,2}, a PI zadane jest następująco:
PI(1,1)
1
PI(1,2)
0
PI(2,1)
0
PI(2,2)
0
Dla x = 1 istnieje takie y (y=1) Ŝe PI(1,y) = 1, podobnie dla x = 2. Zatem formuła jest
prawdziwa w tej interpretacji.
3.4.2.3 Dana jest formuła (∀x) (P(x) → Q(f(x),a)). Określamy interpretację I:
D = {1,2},
14
a→1
fI(1) =2, fI(2) = 1.
PI(1)
1
PI(2)
0
QI(1,1)
1
QI(1,2)
1
QI(2,1)
0
QI(2,2)
1
Gdy x = 1 to P(x) → Q(f(x),a) = P(1) → Q(f(1),1) = P(1) → Q(2,1) = 0 → 0 = 1.
Gdy x = 2 to P(x) → Q(f(x),a) = P(2) → Q(f(2),1) = P(2) → Q(1,1) = 1 → 1 = 1.
Zatem formuła jest prawdziwa w interpretacji I.
3.4.2.4 (ćwiczenie) Przyjmijmy interpretację jak w 3.4.2.3 i sprawdźmy formuły
(a) (∃x) (P(f(x)) ∧ Q(x, f(a))),
(b) (∃x) (P(x) ∧ Q(x, a)),
(c) (∀x)(∃y) (P(x) ∧ Q(x, y)),
3.4.5 Klasyfikacja formuł
Formuła A jest:
•
•
•
•
formułą prawdziwą logicznie (prawda logiczną) jeŜeli jest prawdziwa przy kaŜdej
interpretacji
logicznie sprzeczna jeŜeli jest fałszywa przy kaŜdej interpretacji
spełnialna tylko wtedy gdy dla przynajmniej jednej interpretacji istnieje co najmniej
jeden ciąg indywiduów, który spełnia A (np. x < y jest formułą spełnialną gdyŜ istnieje
interpretacja <np. dziedzina liczb naturalnych> i wartościowanie <np. ciąg (3,4)>,
które spełnia tę formułę)
konsekwencją logiczną zbioru formuł X wtw przy kaŜdej interpretacji, kaŜdy ciąg,
który spełnia wszystkie formuły zbioru X, spełnia równieŜ A. Mówimy, Ŝe A wynika
logicznie z X, lub X implikuje logicznie A.
Jako przykład rozwaŜmy następujące
3.4.5.1 Twierdzenie: Niech AP będzie formułą opisującą program P (por. 3.2.6.4.3). AP jest
formułą spełnialną.
Dowód: Dla kaŜdej krawędzi a istnieje klauzula zawierająca pozytywna literę, mianowicie
Qj(x, fa(x, y)). Zatem w AP dowolna klauzula zawiera pozytywna literę. Niech v1,..., vm
oznaczają wszystkie węzły grafu z wyjątkiem węzła startowego. Niech I będzie interpretacją,
w której pewnej literze Qi(x, y), 1 ≤ i ≤ m, przypisano wartość logiczną 1. Oczywiście
odpowiednia klauzula przyjmuje wartość 1, a w konsekwencji AP jest spełnione w tej
interpretacji. //
3.5 Skolemowska postać normalna
Omówimy teraz metodę przekształcania formuł logiki predykatów pierwszego rzędu do
modelowo równowaŜnej postaci nazywanej skolemowską postacią normalną (SPN). Formuły
15
F1, F2 nazywamy modelowo równowaŜnymi jeŜeli jednocześnie kaŜda formuła posiada model
lub tez obie formuły nie maja modelu.
3.5.1 Preneksyjna (kwantyfikatorowa) postać normalna (PPN)
Formuła jest w PPN gdy ma postać
(Q1x1)...(Qnxn)M
gdzie Qi, 1 ≤ i ≤ n, jest albo kwantyfikatorem uniwersalnym albo egzystencjalnym, natomiast
M – tzw. matryca – jest formułą nie zawierającą kwantyfikatorów. Część formuły
poprzedzającą matrycę, tzn. (Q1x1)...(Qnxn), nazywamy prefiksem. Istotne jest, Ŝe Ŝaden
kwantyfikator nie jest poprzedzony znakiem negacji.
Sposób sprowadzania formuły do PPN podano w Tablicy 3.1.
3.5.1.1 Przykład (ilustracja kroku 3 – rozdzielanie zmiennych). Formuła
(∀x)[P(x) → (∃x)Q(x)]
jest równowaŜna formule (∀x)[P(x) → (∃y)Q(y)], a ta z kolei formule – por. Krok 1 (∀x)[¬P(x) ∨ (∃y)Q(y)]. Stosując (4) dostajemy (∀x)(∃y) [¬P(x) ∨ Q(y)].
3.5.1.2 Przykład. RozwaŜmy formułę (∀x) (P(x) ∧ ¬K(x) → (∃y)(S(x,y) ∧ C(y))).
Krok1: (∀x) (¬P(x) ∨ K(x) ∨ (∃y)(S(x,y) ∧ C(y))).
Krok4: (∀x)(∃y) (¬P(x) ∨ K(x) ∨ (S(x,y) ∧ C(y))).
1
2
3
4
Z formuły F eliminujemy spójniki → oraz ↔ posługując się skończoną ilość razy
prawami:
F → G = ¬F ∨ G
F ↔ G = (F → G ) ∧ (G → F )
Wprowadzamy negacje bezpośrednio przed symbole atomiczne:
¬(¬F) = F
¬(F ∨ G) = ¬F ∧ ¬G
¬(F ∧ G) = ¬F ∨ ¬G
¬[(∀x) G(x)] = (∃x)(¬ G(x))
¬[(∃x) G(x)] = (∀x)(¬ G(x))
Przemianowanie zmiennych związanych tak, aby w zasięgu kaŜdego kwantyfikatora
występowały zmienne o róŜnych symbolach.
Tworzymy prefiks korzystając skończoną ilość razy z praw:
(Qx) F(x) ∨ G ≡ (Qx) (F(x) ∨ G)
(Qx) F(x) ∧ G ≡ (Qx) (F(x) ∧ G)
(∀x) F(x) ∧ (∀x) G(x) ≡ (∀x) (F(x) ∧ G(x))
(∃x) F(x) ∨ (∃x) G(x) ≡ (∃x) (F(x) ∨ G(x))
(Q1 x) F(x) ∨ (Q2 x) G(x) ≡ (Q1 x) (Q2 y) [F(x) ∨ G(y)]
(Q1 x) F(x) ∧ (Q2 x) G(x) ≡ (Q1 x) (Q2 y) [F(x) ∧ G(y)]
Tablica 3.1 Sprowadzanie formuły do PPN
16
3.5.2 Skolemowska postać normalna stosowana jest w większości procedur automatycznego
dowodzenia twierdzeń. Powiemy, Ŝe formuła otwarta F jest w SPN jeŜeli przedstawia się jako
(P11 ∨ ... ∨ Pm11) ∧ ... ∧ (P1k ∨ ... ∨ Pmkk)
gdzie wszystkie Pij są atomami lub negacjami atomów. Czynnik (P11 ∨ ... ∨ Pm11) nazywamy
klauzulą.
Sposób sprowadzania formuły do SPN przedstawia tablica 3.2.
1
2
3
4
JeŜeli formuła zawiera zmienne wolne, tworzymy jej domkniecie uniwersalne (pkt. 3.2.6)
Sprowadzamy formułę do PPN (Tablica 3.1)
Korzystając z prawa rozdzielczości P ∧ Q ∨ R = (P ∨ R) ∧ (Q ∨ R) doprowadzamy
uzyskaną w p. 2 matrycę do koniunkcji alternatyw atomów bądź negacji atomów
Likwidujemy symbole kwantyfikatorów egzystencjalnych zastępując związane przez nie
symbole zmiennych funkcjami skolemowskimi (por. pkt. 3.5.2.1)
Tablica 3.2 Sprowadzanie formuły do SPN
3.5.2.1 Realizacja kroku 4. RozwaŜmy prefiks (Q1x1)...(Qnxn) formuły w PPN i przypuśćmy,
Ŝe (Qr xr), 1 ≤ r ≤ n, jest kwantyfikatorem egzystencjalnym i nie poprzedzają go
kwantyfikatory uniwersalne. Wybieramy stałą c, róŜną od stałych występujących w M, i w
miejsce zmiennej xr wstawiamy c wykreślając jednocześnie (Qr xr) z prefiksu. JeŜeli na lewo
od (Qr xr) występują kwantyfikatory uniwersalne (Qs1 xs1), ... (Qs_m xs_m), to wybieramy nowy
– róŜny od występujących w M – m-argumentowy symbol funkcyjny f, zamieniamy xr na f(xs1,
... xs_m) i usuwamy (Qr xr) z prefiksu.
3.5.2.2 Przykład. W formule (∃x)(∀y)(∀z)(∃u)(∀v)(∃w) P(x,y,z,u,v,w) na lewo od (∃x) nie
ma Ŝadnych kwantyfikatorów, na lewo od (∃u) występują kwantyfikatory (∀y)(∀z), a na lewo
od (∃w) – kwantyfikatory (∀y), (∀z) i (∀v). Zastępując x przez stałą a, u przez funkcję
skolemowską f(y, z), a zmienną w przez funkcję g(y, z, v) – otrzymujemy formułę
(∀y)(∀z)(∀v) P(a, y, z, f(y, z), v, g(y, z, v))
3.5.2.3 Przykład. Dana jest formuła
(∀x)(∃y) (¬P(x) ∨ K(x) ∨ (S(x,y) ∧ C(y)))
Korzystając z tautologii A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C) sprowadzamy te formułę do postaci,
w której matryca ma koniunkcyjną postać normalną:
(∀x)(∃y) {[¬P(x) ∨ K(x) ∨ S(x,y)] ∧ [¬P(x) ∨ K(x) ∨ C(y)]}
a następnie do postaci standardowej:
(∀x) {[¬P(x) ∨ K(x) ∨ S(x, f(x))] ∧ [¬P(x) ∨ K(x) ∨ C( f(x))]}
3.5.2.4 Przykład. Dana jest formuła
17
(∀x) { P(x) → [(∀y) (P(y) → P(f(x, y))) ∧ ¬(∀x)(Q(x, y) → P(y))]}
Sprowadzamy powyŜszą formułę do PPN:
Krok 1 (T3.1): (∀x) {¬P(x) ∨ [(∀y) (¬P(y) ∨ P(f(x, y))) ∧ ¬(∀x)(¬Q(x, y) ∨ P(y))]}
Krok 2 (T3.1): (∀x) {¬P(x) ∨ [(∀y) (¬P(y) ∨ P(f(x, y))) ∧ (∃x)(Q(x, y) ∧ ¬P(y))]}
Krok 3 (T3.1): (∀x) (∀y) (∃z) {¬P(x) ∨ [(¬P(y) ∨ P(f(x, y))) ∧(Q(x, z) ∧ ¬P(z))]}
Uzyskano formułę PPN. Sprowadzamy matrycę do koniunkcyjnej postaci normalnej
(∀x)(∀y)(∃z) {[¬P(x) ∨ ¬P(y) ∨ P(f(x, y))] ∧ [¬P(x) ∨ Q(x, z)] ∧ [¬P(x) ∨ ¬P(z)]}
Redukujemy kwantyfikator egzystencjalny:
(∀x)(∀y) {[¬P(x) ∨ ¬P(y) ∨ P(f(x, y))] ∧ [¬P(x) ∨ Q(x, h(x,y))] ∧ [¬P(x) ∨ ¬P(h(x,y))]}
3.5.3 Klauzule
3.5.3.1 Dyzjunkcję symboli atomicznych lub ich negacji (tzn. literałów) nazywamy klauzulą.
3.5.3.2 Koniunkcję klauzul K1 ∧ ... ∧ Kn zapisujemy w postaci { K1, ..., Kn }. Formuła z p.
3.5.2.4 zawiera trzy klauzule: {¬P(x) ∨ ¬P(y) ∨ P(f(x, y)), ¬P(x) ∨ Q(x, z), ¬P(x) ∨ ¬P(z)}.
3.5.3.3 JeŜeli L1, L2 są literami, przy czym L1= ¬L2 to mówimy, Ŝe (L1, L2) jest para kontrarną.
3.6 Procedura unifikacji
Przy dowodzeniu twierdzeń zachodzi konieczność sprowadzania róŜnych formuł do jednolitej
postaci. Np. chcąc wyprowadzić twierdzenie Q(a) z aksjomatów {(∀x) (P(x) → Q(x)), P(a)}
naleŜy zunifikować atomy P(x) i P(a) wprowadzając podstawienie „a w miejsce x”. Proces
zastępowania zmiennych termami nazywamy unifikacją.
3.6.1 Definicja. Podstawieniem nazywamy skończony zbiór postaci
θ = {t1/x1, ..., tn/xn}
gdzie xi oznacza zmienną, ti oznacza term, przy czym xi ≠ xj oraz ti ≠ tj. JeŜeli wszystkie termy
są podstawowe (nie zawierają zmiennych) to θ nazywamy podstawieniem podstawowym.
3.6.2 Nomenklatura.
a) Przez wyraŜenie rozumiemy term, zbiór termów, zbiór atomów, literę, klauzulę lub
zbiór klauzul.
b) Przez wyraŜenie podstawowe rozumiemy wyraŜenie, w którym nie występują
zmienne.
c) PodwyraŜeniem wyraŜenia E nazywamy wyraŜenie występujące w E.
3.6.3 Niech θ będzie podstawieniem, θ = {t1/x1, ..., tn/xn}, a E wyraŜeniem. WyraŜenie Eθ
otrzymane z E przez jednoczesne zastąpienie wszystkich zmiennych wskazanych w θ
odpowiadającymi im termami nazywamy przykładem (egzemplarzem) E.
18
3.6.3.1 Przykład. Niech E = {P(x, f(y), a}, θ = {g(z)/x, b/y}. Wówczas Eθ = {P(g(z), f(b), a}.
3.6.4 Niech θ będzie podstawieniem, θ = {t1/x1, ..., tn/xn}, a Σ = = {u1/y1, ..., um/ym}.
ZłoŜeniem θ i Σ nazywamy podstawienie
θ°Σ = {t1Σ/x1, ..., tnΣ/xn, u1/y1, ..., um/ym}
otrzymane przez zastąpienie termów z θ termami z Σ i dołączenie par z Σ zawierających
zmienne nie występujące w θ. Tzn. z uzyskanego zbioru θ°Σ wykreślamy te elementy, w
których tiΣ = xi, oraz elementy uj/yj takie, Ŝe yj ∈ {x1,...,xn}.
3.6.4.1 Przykład. Niech θ = {f(y)/x, z/y}, Σ = {a/x, b/y, y/z}.
θ°Σ = {f(b)/x, y/y, a/x, b/y, y/z}.
Zgodnie z konwencją z θ°Σ wykreślamy elementy postaci xi/xi oraz te zmienne z Σ, w których
występują zmienne identyczne ze zmiennymi w θ. Ostatecznie
θ°Σ = {f(b)/x, y/z}.
3.6.4.2 Przykład. Niech θ = {g(x,y)/z}, Σ = {a/x, b/y, c/w, d/z}. Tutaj θ°Σ ={g(a,b)/z, a/x, b/y,
c/w}, natomiast Σ°θ = Σ ≠ θ°Σ.
3.6.5 Składanie podstawień jest łączne, co m.in. oznacza, Ŝe (Eθ1)θ2 = E(θ1θ2). Ponadto
podstawienie puste, ε (nie zawierające Ŝadnego elementu) ma własność εθ = θε.
3.6.6 Podstawienie θ nazywamy unifikatorem zbioru wyraŜeń E = {E1,...,En} jeŜeli E1θ = ... =
Enθ. Zbiór E nazywamy wówczas unifikowalnym.
3.6.7 Unifikator σ zbioru wyraŜeń E nazywamy unifikatorem głównym wtw dla kaŜdego
unifikatora θ zbioru E istnieje takie podstawienie Σ, Ŝe θ = σ°Σ.
3.6.7.1 Przykład. Niech E = {P(x, f(y), a), P(x, f(a), a)}. Podstawienie θ = {b/x, a/y}
unifikuje wyraŜenia z E do postaci P(b, f(a), a). θ nie jest unifikatorem głównym. MoŜna
sprawdzić, ze σ = {a/y} jest unifikatorem głównym. Wówczas θ = σ°{b/x}.
3.6.8 Zbiór rozbieŜności (disagreement set) R niepustego zbioru wyraŜeń E otrzymujemy
wyszukując pierwszą od lewej pozycję, począwszy od której nie we wszystkich wyraŜeniach
z E występują te same symbole i wypisując z kaŜdego wyraŜenia z E podwyraŜenie
zaczynające się od symbolu zajmującego te pozycję.
3.6.8.1 Przykład. Niech E = {P(x), P(a)}. R = {x,a}.
3.6.9 Algorytm unifikacji podano w Tablicy 3.3. Posiada on następującą własność. JeŜeli E
jest skończonym, niepustym i unifikowalnym podzbiorem wyraŜeń, to algorytm kończy się
zawsze po realizacji kroku 2, a znaleziony unifikator sk jest unifikatorem głównym.
1
2
k = 0; Ek = E; sk = ε
JeŜeli Ek jest klauzulą jednostkową to STOP; sk jest unifikatorem głównym dla E. W
19
3
4
przeciwnym razie dla Ek określamy zbiór rozbieŜności Rk.
JeŜeli w Rk istnieją elementy xk, tk takie, Ŝe xk jest zmienną nie występującą w tk to
przechodzimy do kroku 4. W przeciwnym razie STOP – E nie jest unifikowalny.
sk+1 = sk•{tk/xk}
Ek+1 = Ek{tk/xk}= E sk+1
k = k+1 i powrót do (2)
Tabela 3.3 Algorytm unifikacji
3.6.9.1 Przykład. Niech E = {Q(f(a), g(x)), Q(y,y)}. Mamy kolejno:
1. k = 0; Ek = E; sk = ε
2. R0 = { f(a), y}
3. R0 zawiera zmienną y i term f(a), w którym ta zmienna nie występuje. Zatem:
4a) s1 = s0•{f(a)/x} = {f(a)/x}
4b) E1 = {Q(f(a), g(x)), Q(f(a), f(a))}.
…………………………………….
2. R1 = { g(x), f(a)}
3. R1 nie zawiera explicite zmiennej, co oznacza, Ŝe E nie jest unifikowalny. STOP.
4. Zasada rezolucji
4.1 Wprowadzenie
Zaproponowana w 1965 r. przez J. A. Robinsona zasada rezolucji stanowi z algorytmicznego
punktu widzenia jedną z najbardziej atrakcyjnych metod dowodzenia twierdzeń. Pod
pojęciem zasady rezolucji rozumiemy następującą regułę wnioskowania
α ∨ β, ¬α ∨ γ
β∨ γ
Wniosek β ∨ γ nazywamy rezolwentą przesłanek α ∨ β oraz ¬α ∨ γ.
4.1.1 JeŜeli dla dowolnych dwóch klauzul C1, C2 istnieje kontrarna para literałów L1, L2, to
usuwając tę parę otrzymujemy klauzulę złoŜoną z pozostałych liter w C1 i C2. Wynikowa
klauzula nazywana jest rezolwentą.
Przykład: Rezolwentą klauzul C1 = {P,R}, C2 = {¬P, Q} jest Res(C1, C2) = {R, Q}
4.1.2 Twierdzenie. Niech C1, C2 będą dwiema klauzulami. Ich rezolwenta, Res(C1, C2), jest
logiczną konsekwencją formuły (C1 ∧ C2).
4.1.3 Uwzględniając twierdzenie 4.1.2 oraz twierdzenie 2.6.4 celem udowodnienia C naleŜy
do S dodać klauzulę ¬C. Wówczas sprawdzenie, Ŝe C1 ∧ C2 ∧ ... ∧ Cn ∧ ¬C jest
kontrtautologią jest równowaŜne uzyskaniu rezolwenty równowaŜnej klauzuli pustej, .
Niedeterministyczny (gdyŜ nie określa strategii wybierania klauzul ze zbioru S) algorytm
automatycznego dowodzenia twierdzeń przedstawiono w Tablicy 4.1.
20
Dane:
Krok 1:
Krok 2:
Krok 3:
Aksjomaty A1, A2, ..., An oraz teza F
Utwórz zbiór klauzul S odpowiadających formule A1 ∧ A2 ∧ ... ∧ An ∧ ¬F
Wybierz dwie róŜne klauzule C1, C2 z S i utwórz ich rezolwentę C = Res(C1, C2)
JeŜeli C = to STOP (sukces). W przeciwnym razie dołącz C do S i przejdź do
kroku 2.
Tablica 4.1 Niedeterministyczny algorytm automatycznego dowodzenia twierdzeń
4.1.4 Niech S będzie zbiorem n klauzul. Dowodem rezolucyjnym klauzuli C z S jest taki
skończony ciąg klauzul C1, C2,..., Ck, Ŝe kaŜda klauzula Ci, i > 2, jest albo elementem S albo
rezolwentą klazul poprzedzających Ci, oraz Cn = C.
4.1.5 Dowód rezolucyjny moŜna przedstawiać w postaci tzw. drzewa semantycznego.
Przykład. Zbiór S składa się z 4 klauzul:
(1)
(2)
(3)
(4)
{P, Q}
{¬P, Q}
{P, ¬Q}
{¬P, ¬Q}
Otrzymujemy następujące rezolwenty:
(5) Q z (1) i (2)
(6) ¬Q z (3) i (4)
(7) z (5) i (6)
Drzewo semantyczne dowodu przedstawiono na poniŜszym rysunku.
{P,Q}
{-P,Q}
Q
{P,-Q}
{-P,-Q}
-Q
4.1.6 Przykład. RozwaŜmy ponownie Przykład 2.6.1, w którym występowały cztery formuły:
1. p → q
2. q → r
3. p
4. r
Celem pokazania, Ŝe (4) wynika z (1) – (3) zapiszmy te formuły w postaci standardowej
21
(1)
(2)
(3)
(4)
¬p ∨ q
¬q ∨ r
p
r
Dowód metodą falsyfikacji polega na negacji konkluzji, co prowadzi do następującego ciągu
klauzul:
(1) ¬p ∨ q
(2) ¬q ∨ r
(3) p
(4) ¬r
(5) q
(6) r
(7)
negacja konkluzji
rezolwenta (1) i (3)
rezolwenta (2) i (5)
rezolwenta (4) i (6)
4.2 Zasada rezolucji w logice predykatów
4.2.1 Niech C1, C2 będą klauzulami nie posiadającymi wspólnych zmiennych. JeŜeli istnieje
para literałów L1, L2 będących podwyraŜeniami odpowiednio C1, C2 oraz takich, Ŝe zbiór {L1,
L2} jest unifikowalny, a σ jest unifikatorem głównym, to klauzulę (C1σ - L1σ) ∪ (C1σ - L1σ)
nazywamy binarna rezolwentą klauzul C1 i C2.
4.2.1a Przykład: Niech C1 = {P(x), Q(f(x))}, C2 = {¬P(f(a)), Q(z)}. PołóŜmy L1 = P(x), L2 =
¬P(f(a)). Unifikatorem głównym pary {L1, L2} jest σ = {f(a)/x}. Zgodnie z definicją 4.2.1
mamy
(C1σ - L1σ) = {P(f(a), Q(f(f(a)))} - P(f(a) = Q(f(f(a)))
(C2σ - L2σ) = Q(z)
Ostatecznie, binarną rezolwentą klauzul C1 i C2 jest {Q(f(f(a))), Q(z)}.
4.2.2 Niech C’ = {L1,...,Lk} będzie niepustym podzbiorem zbioru składników klauzuli C i
niech σ będzie unifikatorem głównym składników ze zbioru C’. Klauzulę C’σ nazywamy
faktorem klauzuli C’.
4.2.2.a Przykład: Niech C = {P(x), P(a), Q(f(x)), Q(f(a))}. Zbiór składników jest
unifikowalny, a jego unifikatorem głównym jest σ = {a/x}. Klauzula {P(a), Q(f(a)} jest
faktorem klauzuli C.
4.2.3 Rezolwentą klauzul C1, C2 nazywamy kaŜdą z następujących rezolwent binarnych (o ile
istnieją):
•
•
•
•
rezolwentę binarną klauzul C1, C2,
rezolwentę binarną faktora klauzuli C1 i klauzuli C2,
rezolwentę binarną klauzuli C1 oraz faktora klauzuli C2,
rezolwentę binarną faktora klauzuli C1 i faktora klauzuli C2.
22
4.2.4 Definicja (dowodu dostosowana do nowej operacji konsekwencji). Niech S będzie
zbiorem klauzul. Dowodem dla S nazywamy skończony ciąg klauzul C1,..., Cn taki, Ŝe
a) C1, C2 naleŜą do S;
b) Dla kaŜdego i > 2 klauzula Ci albo naleŜy do S albo jest rezolwentą pewnych klauzul
Cj, Ck, przy czym j < k < i;
c) Wszystkie Ci są semantycznie róŜne, tzn. nie istnieje podstawienie σ = {y1/x1, ...,
yn/xn} gdzie y1,...,yn są zmiennymi takimi, Ŝe dla pewnych Cj, Ck spełniony jest
warunek Cj = Ckσ;
d) Cn jest klauzulą pustą.
Ciąg klauzul spełniających warunki (a) – (c) nazywamy wywodem.
4.2.5 Pod pojęciem drzewa dowodu (wywodu) rozumiemy drzewo binarne takie, Ŝe
a) Korzeniowi odpowiada ostatnia klauzula dowodu (wywodu)
b) JeŜeli pewien węzeł posiada następniki, to odpowiadają im przesłanki wniosku
przypisanego danemu węzłowi
c) KaŜdej klauzuli występującej w dowodzie odpowiada pewien węzeł.
4.2.6 Przykłady
4.2.6.1 Dany jest zbiór formuł
F1: (∀x) {C(x) → [W(x) ∧ R(x)]}
F2: (∃x) [C(x) ∧ Q(x)]
G: (∃x) [O(x) ∧ R(x)]
Aby pokazać, Ŝe G jest logiczną konsekwencją F1 i F2, przekształcamy F1, F2 i ¬G do postaci
standardowej (skolemowskiej):
(1)
(2)
(3)
(4)
(5)
¬C(x) ∨ W(x)
¬C(x) ∨ R(x)
C(a)
Q(a)
¬O(x) ∨ ¬R(x)
1-sza klauzula formuły F1
2-ga klauzula formuły F1
1-sza klauzula formuły F2
2-ga klauzula formuły F1
negacja formuły G
Mamy dalej:
(6) R(a)
(7) ¬R(a)
(8)
rezolwenta (2) i (3)
rezolwenta (4) i (5)
rezolwenta (6) i (7)
Tzn. G jest logiczną konsekwencją F1 i F2.
4.2.6.2. Dany jest zbiór formuł
F1: (∃x) {P(x) ∧ (∀y) [D(y) → L(x,y)]}
F2: (∀x) {P(x) → (∀y) [Q(y) → ¬L(x,y)]}
23
G: (∀x) (D(x) → ¬Q(y)]
Pokazać, Ŝe G jest logiczną konsekwencją F1 i F2.
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
P(a)
¬D(y) ∨ L(a,y)
¬P(x) ∨ ¬Q(y) ∨ ¬L(x,y)
D(b)
Q(b)
L(a,b)
¬Q(y) ∨ ¬L(a,b)
¬L(a,b)
1-sza klauzula formuły F1
2-ga klauzula formuły F1
klauzula formuły F2
1-sza klauzula formuły ¬G
2-ga klauzula formuły ¬G
rezolwenta (2) i (4)
rezolwenta (1) i (3)
rezolwenta (5) i (7)
rezolwenta (6) i (8)
4.2.6.3 Pokazać, Ŝe w konkretnym trapezie kąty wewnętrzne między przekątną a
przeciwległymi podstawami są sobie równe.
Niech
•
•
•
T(x,y,u,v) oznacza trapez o lewym górnym wierzchołku x, prawym górnym
wierzchołku y, prawym dolnym wierzchołku u, lewym dolnym wierzchołku v.
P(x,y,u,v) oznacza, Ŝe odcinek xy jest równoległy do odcinka uv.
E(x,y,z,u,v,w) oznacza, Ŝe kąt xyz jest równy kątowi uvw.
a
b
d
c
Mamy następujące aksjomaty:
A1: (∀x) (∀y) (∀u) (∀v) T(x,y,u,v) → P(x,y,u,v)
określenie trapezu
A2: (∀x) (∀y) (∀u) (∀v) P(x,y,u,v) → E(x,y,z,u,v,w) określenie trapezu
A3: T(a,b,c,d) – trapez podany na rysunku
Z powyŜszych aksjomatów naleŜy wywnioskować, Ŝe E(a,b,d,c,d,b).
(1)
(2)
(3)
(4)
(5)
(6)
(7)
¬T(x,y,u,v) ∨ P(x,y,u,v)
¬P(x,y,u,v) ∨ E(x,y,z,u,v,w)
T(a,b,c,d)
¬E(a,b,d,c,d,b)
¬P(a,b,c,d) rezolwenta (2) i (4)
¬T(a,b,c,d) rezolwenta (1) i (5)
rezolwenta (3) i (6)
24
4.2.7 Twierdzenie: Niech T = (L1,A) będzie teoria formalną, w której zbiór aksjomatów A =
{A1,...,An} jest skończony. Formuła F jest twierdzeniem teorii T wtw gdy zbiór klauzul
odpowiadający formule A1 ∧ ... ∧ An ∧ ¬F posiada dowód.
Tzn. formuła F jest twierdzeniem teorii jeŜeli, stosując niedeterministyczny algorytm z
Tablicy 4.1, jako jedną z rezolwent moŜna uzyskać klauzulę pustą.
25

Podobne dokumenty