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