2. Język klauzul: syntaktyka, semantyka, rezolucja 2.1 Funkcje i
Transkrypt
2. Język klauzul: syntaktyka, semantyka, rezolucja 2.1 Funkcje i
2. Język klauzul: syntaktyka, semantyka, rezolucja 2.1 Funkcje i termy Zapoznanie się z systemami reprezentacji wiedzy logicznej ograniczyliśmy jak dotąd do rachunku kwantyfikatorów i nie były rozwaŜane interpretacje formuł będących schematami zdań zawierających funktory nazwotwórcze, dla których jako reprezentacje przyjęliśmy w metodzie formalizacji symbole funkcyjne postaci fnk, gdzie n oznacza numer symbolu, a k oznacza liczbę nazw łączonych przez symbolizowany funktor nazwotwórczy, a zarazem liczbę przyłączanych przez ten symbol funkcyjny termów reprezentujących przyłączane nazwy. Nazwanie symboli reprezentujących funktory nazwotwórcze „symbolami funkcyjnymi” uzasadnione jest funkcją jaka spełniają te funktory w interpretacji wyraŜeń języka w danej dziedzinie wiedzy: nazywanym obiektom przyporządkowują inny obiekt naleŜących do klasy obiektów wskazywanych przez ten funktor wewnątrz pewnego pojęcia. Np. funktor „matka …” z zaimkiem imiennym „tej Ewy” tworzy zaimek imienny „matka tej Ewy”, co w interpretacji w dziedzinie wiedzy o rodzinie tej Ewy przyporządkowuje tej Ewie jedną tylko kobietę - jej matkę. Analogicznie rozumiemy uŜywanie symbolu funkcyjnego w matematyce. W tym kontekście, w pełni zasadne będzie wprowadzenie niŜej zdefiniowanych pojęć. Definicja 2.1.1 (opis termów w notacji BNF) Niech, jak poprzednio, zadany będzie język Form, a Fun={fnk: n,k∈N} jest zbiorem symboli funkcyjnych. Następująca gramatyka bezkontekstowa definiuje termy jako uogólnienie zmiennych i stałych. Zmieniono regułę produkcji definiującą formuły atomowe. Argumentem formuły atomowej jest teraz takŜe lista termów: <term>::= x dla dowolnej zmiennej x∈V; <term>::= c dla dowolnej stałej c∈C; <lista_termów>::= <term>|<lista_termów>,<term> ; <term>::= f(<lista_termów>) dla dowolnego f∈Fun; <atom>::= P(<lista_termów>) dla dowolnego predykatu P∈P. Zbiór termów oznaczamy przez Term. Uwaga: w metajęzyku dla oznaczenia termów będziemy stosować zmienne: t, t1, …tk, …. PoniewaŜ w systemie tabel semantycznych kaŜda linia dowodu niewprost kończy się literałem zawierającym formułę atomową bez wolnych zmiennych, waŜne jest określenie tego typu formuł. Definicja 2.1.2 (ustalanie formuł) Termy i formuly ustalone określone są następująco: <term_ustalony>::= c dla dowolnej stałej c∈C; <lista_termów_ustalonych>::= <term_ustalony> |<lista_termów_ustalonych>,<term_ustalony>; <term_ustalony>::= f(<lista_termów_lonych>) dla dowolnego f∈Fun; <atom_ustalony>::= P(<lista_termów_ustalonych>) dla dowolnego predykatu P∈P; <formula_ustalona>::= <formuła dająca się wyprowadzić z formuł_ustalonych za pomocą reguł produkcji przyjętych dla gramatyki języka rachunku kwantyfikatorów>. Zbiór wszystkich termów ustalonych będziemy oznaczać przez H(C,Fun) i nazywać przestrzenią Herbranda zbioru wszystkich formuł logiki pierwszego rzędu z termami, zbiór wszystkich formuł ustalonych B(C,Fun) będziemy nazywać bazą Hebranda zbioru formuł tej logiki. Metatwierdzenie 2.1.1 KaŜda formuła atomowa jest formułą ustaloną. Wprowadzone definicje wymagają uściślenia dotychczasowej definicji interpretacji. Przyjmijmy, Ŝe będziemy rozwaŜać dziedziny wiedzy jako struktury (systemy) relacyjne dające się precyzyjnie opisać teoriomnogościowo za pomocą układu D =<D, R, F, D0> = <D, {Ri: i∈ I}, {Fj: j∈ J}, {dk: k∈ K}>, gdzie 1) D jest uniwersum dziedziny D, 2) R={Ri: i∈ I} jest indeksowanym indeksami ze zbioru I zbiorem relacji określonych w zbiorze D, 3) F={Fj: j∈ J} jest indeksowanym indeksami ze zbioru J zbiorem funkcji określonych w zbiorze D, 4) zbiór D0={dk: k∈ K} jest indeksowanym indeksami ze zbioru K wyróŜnionym podzbiorem uniwersum D. W celu dokonania interpretacji wyraŜeń języka rachunku kwantyfikatorów w dziedzinie D, ze względu na przeliczalność zbioru wszystkich wyraŜeń, musimy ograniczyć rozwaŜane dziedziny wiedzy do przeliczalnych zbiorów: relacji, funkcji, wyróŜnionego zbioru obiektów, określając te zbiory jako ciągi skończone, a jeśli to niemoŜliwe, jako nieskończone ciągi (co w ramach teorii mnogości zawsze jest moŜliwe). Ponadto, powinniśmy dysponować wiedzą o ilości argumentów dowolnej n-tej relacji i n-tej funkcji. Tę wiedzę da nam znajomość sygnatury D, określonej przez trzy funkcje: s.1 τ1:I → N, τ1(i) = liczba argumentów w relacji Ri, s.2 τ2:J → N, τ2(j) = liczba argumentów w funkcji Fj, s.3 τ3:K → {0}, τ3(k) = 0, co formalnie wskazuje na istnienie k-tego elementu w indeksowanym zbiorze D0={dk: k∈ K}. Teraz natychmiast moŜemy określić funkcję reprezentacji wiedzy re: D ∪ R ∪ F → P ∪ F ∪ C, Re.1 re(dk) = ck∈C, dla dk∈D0, Re.2 re(Ri) = Pij , dla Ri ∈ R, gdy Pij∈P oraz j=τ1(i), Re.3 re(Fi) = fij , dla Fi ∈ F, gdy fij∈Fun oraz j=τ2(i). Funkcja reprezentacji wydziela ze zbioru symboli języka rachunku kwantyfikatorów (rozszerzonego o termy) zbiór P’ ∪ F’ ∪ C’ symboli reprezentujących podstawowe składniki struktury relacyjnej D. Wyznaczone reprezentanty generują przy uŜyciu reguł produkcji formuł: zbiór Atom’, zbiór predykatów P’, zbiór symboli funkcyjnych Fun’, zbiór Term’ termów oraz zbiór formuł zamkniętych Form*’. Zbudowany w ten sposób język nazywany jest językiem struktury relacyjnej D. Konstrukcja zbioru Atom’ umoŜliwia określenie funkcji interpretacji wyróŜnionych formuł atomowych Definicja 2.1.3 (interpretacji formuł zamkniętych) Określmy funkcję v interpretacji formuł atomowych języka struktury relacyjnej D w tej strukturze, następująco: In.0 v: P’ ∪ F’ ∪ Atom’ ∪ Term’ → D ∪ R ∪ F ∪ {0, 1}, In.1 v(ck)= dk∈D0, In.2 v(Pij) =Ri ∈ R, dla Pij∈P’, gdy j=τ1(i), In.3 v(fij ) = Fi ∈ F,dla fij∈Fun’, gdy j=τ2(i), In.4 v(fij(t1,t2,...,tj)) = d∈D wtw, gdy F(v(t1),v(t2),...,v(tj)) = d, dla fij∈Fun’, F= v(fij) oraz t1,t2,...,tj∈ Term’ In.5 v(Pij(t1,t2,...,tj)) =1 wtw, gdy (v(t1),v(t2),...,v(tj))∈ R=v(Pij), dla Pij∈P’ oraz t1,t2,...,tj∈ Term’, In.6 v(Pij(t1,t2,...,tj)) =0 wtw, gdy (v(t1),v(t2),...,v(tj))∉ R=v(Pij), dla Pij∈P’ oraz t1,t2,...,tj∈ Term’. Funkcję v moŜna rozszerzyć analogicznie jak dla rachunku kwantyfikatorów tak, aby interpretowała wszystkie formuły zamknięte języka struktury relacyjnej D, przy czym, w zasadach (ZALLX) oraz (ZNEX), oprócz wykorzystywania do podstawiania za zmienne dowolnych stałych naleŜy rozszerzyć podstawianie do dowolnych ustalonych termów (naleŜących do przestrzeni Herbranda formuł systemu logicznego), wtedy tę funkcję będziemy nazywać interpretacją formuł zamkniętych języka logiki pierwszego rzędu z termami. Gdy P’=F’=∅, to jest to interpretacja formuł rachunku zdań, gdyŜ Atom’={p1, p2, …..}. Uzupełniając język struktury relacyjnej D o predykat identyczności oraz dodając aksjomaty identyczności, moŜemy język zawierający termy przekształcić w zwykły język logiki pierwszego rzędu z identycznością. Jako aksjomaty identyczności przyjmuje się: Id.1 (zwrotność) t = t, dla dowolnego termu t, Id.2 (ekstensjonalność) t1 = t2 ⇒ (A(t1)⇔A(t2)), dla dowolnych termów t1, t2 oraz dowolnej formuły A(x). Wobec aksjomatów identyczności, dowolne wyraŜenie postaci: x = fij(t1,t2,...,tj) moŜna zapić w postaci Fij(x1,x2,...,xj,x), x1=t1,..., xj=tj, a pozostałe równości dotąd zapisywać w powyŜszej postaci, aŜ znikną symbole funkcyjne. PoniewaŜ w strukturze relacyjnej D wszelkie funkcje są relacjami jednoznacznymi względem jednego (np. ostatniego) z argumentów, tj. v(Fij)=R=Fi wtw, gdy Fi = {<d1,d,...,dj,d>: d=Fi(d1,d2,...,dj); d1,d2,...,dj ∈D}. Więc (v) predykaty Fij i symbole funkcyjne fij-1 są jednakowo interpretowane: v(Fij) = v(fij-1), a ponadto (fun) Fij(x1,x2,...,xj,x) ∧ Fij(x1,x2,...,xj,x’) ⇒ x = x’. Zatem Metatwierdzenie 2.1.1 Dowolnej formule logiki pierwszego rzędu z termami i identycznością moŜna wzajemnie jednoznacznie przyporządkować odpowiednią formułę języka logiki pierwszego rzędu z identycznością i rozszerzonym językiem o predykaty postaci Fij, spełniające powyŜszy warunek jednoznaczności (fun). Ponadto, spełniony jest warunek (v). Wymienione logiki posiadają interpretacje (zbiory tez mają modele) jedynie w tych samych strukturach relacyjnych. W tym sensie te logiki są równowaŜne. 2.2 Postać klauzulowa formuł Niech pewna formuła postaci Φ = ∀x1∀x2…∀xn∃xA(x1,x2,…,xn,x) posiada pewną interpretację v w dziedzinie D’ =<D, R, D0> = <D, {Ri: i∈ I}, {dk: k∈ K}>, wtedy dla dowolnych termów ustalonych t1, t2, …, tn istnieje pewna stała c taka, Ŝe v(A(t1,t2,…,tn,c)) = 1, a zbiór R ={<d1,d2,…,dn,d>∈Dn+1: t1,t2,…,tn∈C, d1= v(t1), d2= v(t2),…,dn= v(tn), istnieje c∈C takie, Ŝe d=v(c) i v(A(t1,t2,…,tn,c)) = 1} jest relacją, którą w tej interpretacji reprezentuje formuła Φ. PoniewaŜ kaŜdą relację, co najmniej dwuargumentową, moŜna rozbić na sumę funkcji, których wartościami są pewne wartości ostatniego argumentu relacji, a do dziedziny tej funkcji moŜna zaliczyć wszystkie krotki wartości argumentów poprzedzających ostatni argument, więc te funkcje moŜna dołoŜyć do dziedziny D’, jako zbiór funkcji. Otrzymamy w ten sposób pewną strukturę relacyjną D, której język będzie zawierał nie tylko formułę Φ, ale takŜe symbol funkcyjny fin taki, Ŝe dla interpretacji v’ określonej przy tej nowej dziedzinie zgodnie z def.2.1.3, otrzymamy równość v’(∀x1∀x2…∀xn∃xA(x1,x2,…,xn,x)⇔∀x1∀x2…∀xnA(x1,x2,…,xn,fin(x1,x2,...,xtn))))=1. ZauwaŜmy, Ŝe dla rozwaŜanej formuły nietrudno jest wyznaczyć jakąś interpretację w dziedzinę postaci D. Udowodniliśmy więc Metatwierdzenie 2.2.1 (skolemowska redukcja kwantyfikatora) Dla dowolnej formuły postaci ∀x1∀x2…∀xn∃xA(x1,x2,…,xn,x) istnieje interpretacja v formuł zamkniętych języka logiki pierwszego rzędu z termami taka, Ŝe v((∀x1∀x2…∀xn∃xA(x1,x2,…,xn,x)⇔∀x1∀x2…∀xnA(x1,x2,…,xn,fin(x1,x2,...,xn))))=1 Więcej, równość ta jest spełniona dla kaŜdej interpretacji v dla której v(∀x1∀x2…∀xnA(x1,x2,…,xn,fin(x1,x2,...,xn)))=1, ale wtedy takŜe jest v(∀x1∀x2…∀xn∃xA(x1,x2,…,xn,x))=1. Zatem, tautologią jest formuła (∀x1∀x2…∀xnA(x1,x2,…,xn,fin(x1,x2,...,xn)) ⇒ (∀x1∀x2…∀xn∃xA(x1,x2,…,xn,x)⇔∀x1∀x2…∀xnA(x1,x2,…,xn,fin(x1,x2,...,xn)))). Definicja 2.2.1 (postać normalna formuły) O dowolnej formule, w której wszystkie kwantyfikatory występują jedyni na początku formuły nazywamy formułą posiadającą postać normalną lub postać preneksową. Część formuły w postaci normalnej, która nie zawiera kwantyfikatorów, nazywamy matrycą, a pozostałą część prefiksem. Metatwierdzenie 2.2.2 (o postaci normalnej) Dowolną formułę zamkniętą w dowolnym systemie logicznym pierwszego rzędu (z regułą ekstensjonalności dla równowaŜności), moŜemy przekształcić w równowaŜną jej formułę posiadającą postać normalną. Dowód. Algorytm normalizacji 1. zastępujemy implikacje i równowaŜności występujące w formule wyraŜeniami zawierającymi jedynie negacje, koniunkcje lub alternatywy korzystając z następujących praw: N.1 (A ⇒ B) ⇔ (¬A ∨ B), N.2 (A ⇔ B) ⇔ ((¬A ∨ B) ∧ (A ∨ ¬B)), 2. likwidujemy negacje występujące przed alternatywami lub koniunkcjami oraz kwantyfikatorami korzystając z praw de Morgana: N.3 ¬(A ∨ B) ⇔ (¬A ∧ ¬B), N.4 ¬(A ∧ B) ⇔ (¬A ∨ ¬B), N.5 ¬∀xA ⇔ ∃x(¬A), N.6 ¬∃xA ⇔ ∀x(¬A), prawa te stosuje do momentu aŜ zastosowanie ich w danej fazie nie będzie moŜliwe, 3. korzystne jest w normalizowanej formule zamienić zmienne związane kwantyfikatorami na róŜne od siebie zmienne; następnie, przed koniunkcje lub alternatywy formuł, będące częścią przekształcanej formuły, wyciągamy najpierw kwantyfikatory egzystencjalne, a potem generalne, korzystając z następujących praw zadanych dla alternatyw oraz koniunkcji formuł, z których chociaŜ jedna formuła poprzedzona jest kwantyfikatorem; zmienne x’, y oznaczają zmienną zastępującą zmienną x, nie występujące po ich wyciągnięciu przed koniunkcję lub alternatywę bezpośrednio przed nimi lub niewystępujące dotąd w przekształcanej formule: N.7 (∀xA ∧ ∀xB ) ⇔ ∀x’(A ∧ B), N.8 (∀xA ∧ B ) ⇔ ∀x’(A ∧ B), N.9 (A ∧ ∀xB ) ⇔ ∀x’(A ∧ B), N.10 (∀xA ∨ B ) ⇔ ∀x’(A ∨ B), N.11 (A ∨ ∀xB ) ⇔ ∀x’(A ∨ B), N.12 (∃xA ∨ ∃xB ) ⇔ ∃x’(A ∨ B), N.13 (∃xA ∨ B ) ⇔ ∃x’(A ∨ B), N.14 (∃xA ∧ B ) ⇔ ∃x’(A ∧ B), N.15 (A ∨ ∃xB ) ⇔ ∃x’(A ∨ B), N.16 (A ∧ ∃xB ) ⇔ ∃x’(A ∧B), N.17 (∀xA ∨ ∀xB ) ⇔ ∀x’∀y(A ∨ B(y/x)), N.18 (∃xA ∧ ∃xB ) ⇔ ∃x’∃y(A ∧ B(y/x)), N.19 (∀xA ∨ ∃xB ) ⇔ ∃y ∀x’ (A ∨ B(y/x)), N.20 (∃xA ∨ ∀xB ) ⇔ ∃x’∀y(A ∨ B(y/x)), N.21 (∀xA ∧ ∃xB ) ⇔ ∃y ∀x’ (A ∧ B(y/x)), N.22 (∃xA ∧ ∀xB ) ⇔ ∃x’∀y(A ∧ B(y/x)), N.23 przemienność kwantyfikatorów generalnych, N.24 przemienność kwantyfikatorów egzystencjalnych, 4. punkty 2 i 3 wyczerpują wszystkie moŜliwe przypadki rozłoŜenia się kwantyfikatorów w koniunkcji lub alternatywie; stosujemy te punkty podczas równowaŜnościowych przekształceń do momentu otrzymania formuły w postaci kanonicznej, co ze względu na skończoną ilość znaków przekształcanej formuły musi nastąpić po pewnej ilości dokonanych przekształceń. Następnie, wykreślając powtarzające się formuły w koniunkcjach i alternatywach, oraz stosując rozdzielność alternatywy względem koniunkcji (prawo L12) otrzymujemy matrycę postaci normalnej jako koniunkcję alternatyw - opisany proces ze względu na skończoną złoŜoność budowy formuły musi się zakończyć takim rozstrzygnięciem Przykład 2.2.1 (sprowadzenie formuły zamkniętej do postaci normalnej) 1. ((∃x1 P11(x1) ⇒ ∃x1∃x2 P12(x1,x2)) ∧∀x2 (¬∃x1 P11(x1) ∨ ¬∃x1 P12(x1,x2))), 2. ((¬∃x1 P11(x1) ∨ ∃x1∃x2 P12(x1,x2)) ∧∀x2 (¬∃x1 P11(x1) ∨ ¬∃x1 P12(x1,x2))), (zastąpienie implikacji na podstawie prawa N.1) 1 3. ((∀x1 ¬P1 (x1) ∨ ∃x1∃x2 P12(x1,x2)) ∧∀x2 (∀x1 ¬P11(x1) ∨ ∀x1 ¬P12(x1,x2))), (zastosowanie praw de Morgana N.6 dla negacji kwantyfikatorów egzystencjalnych) 4. (∀x1∃x3 (¬P11(x1) ∨ ∃x2 P12(x3,x2)) ∧∀x2∀x1 ∀x4 (¬P11(x1) ∨ ¬P12(x4,x2))), (zastosowanie prawa N.19 do pierwszego członu koniunkcji, a prawa N.17 do drugiego członu) 5. (∀x1∃x3 (¬P11(x1) ∨ ∃x2 P12(x3,x2)) ∧∀x1 ∀x2 ∀x4 (¬P11(x1) ∨ ¬P12(x4,x2))), (z N. 23 przestawienie w drugim członie kwantyfikatorów: ∀x2 z ∀x1) 6. (∀x1∃x3 ∃x2 (¬P11(x1) ∨ P12(x3,x2)) ∧∀x1 ∀x2 ∀x4 (¬P11(x1) ∨ ¬P12(x4,x2))), (zastosowanie N.15 do alternatywy w pierwszym członie koniunkcji) 7. ∀x1 (∃x3 ∃x2 (¬P11(x1) ∨ P12(x3,x2)) ∧ ∀x2 ∀x4 (¬P11(x1) ∨ ¬P12(x4,x2))), (zastosowanie do koniunkcji prawa N.7 dla∀x1) 8. ∀x1∃x3 ∀x2 (∃x2 (¬P11(x1) ∨ P12(x3,x2)) ∧ ∀x4 (¬P11(x1) ∨ ¬P12(x4,x2))), (zastosowanie do koniunkcji najpierw prawa N.14 a następnie N.9) 9. ∀x1∃x3 ∀x2∃x5 ( (¬P11(x1) ∨ P12(x3,x5)) ∧ ∀x4 (¬P11(x1) ∨ ¬P12(x4,x2))), (zastosowanie N.14 do koniunkcji) 10.∀x1∃x3 ∀x2∃x5 ∀x4 ( (¬P11(x1) ∨ P12(x3,x5)) ∧ (¬P11(x1) ∨ ¬P12(x4,x2))), (zastosowanie N.9 do koniunkcji) Przykład wskazał na moŜliwość wystąpienia róŜnych postaci normalnych (preneksowych) otrzymanych z danej formuły (ze względu na moŜliwość zastępowania zmiennych przekształcanej formuły róŜnymi zmiennymi, nie stosowano takŜe Ŝadnych preferencji do wyciągania najpierw kwantyfikatora egzystencjalnego). PoniewaŜ matrycę (część bez kwantyfikatorów) formuły w postaci normalnej moŜemy sprowadzić do normalnej postaci dla rachunku zdań: koniunkcji alternatyw literałów lub alternatywy koniunkcji literałów, waŜna będzie definicja: Definicja 2.2.2 Dla dowolnie wybranej formuły zamkniętej, formułę o postaci normalnej, której matryca jest koniunkcją alternatyw literałów, otrzymaną z wybranej formuły przez zastosowanie reguły ekstensjonalności dla równowaŜności i praw N.1N.24, nazywamy postacią normalną wybranej formuły, a ich wywód normalizacją wybranej formuły. Prawa N.1-N.22, jako wykorzystane do normalizacji, nazywamy prawami normalizacyjnymi. Jeśli dla danej postaci normalnej wybranej formuły, zastosujemy redukcję kwantyfikatorów egzystencjalnych określoną w Metatwierdzeniu 2.2.1, tyle razy ile jest potrzebne do ich całkowitego usunięcia, pamiętając o tym, Ŝe kwantyfikatory egzystencjalne występujące na początku formuły redukujemy poprzez regułę ich opuszczania (EX): ∃x A(x) / A(c). Reguła (EX) nie wprowadza do formuły symboli funkcyjnych, w więc nie zwiększa jej złoŜoności pod względem budowy, a tym samym nie zawęŜa klasy interpretacji do struktur relacyjnych z odpowiednimi indeksowanymi zbiorami funkcji, tym samym nie wiedzy logicznej. Z tego powodu, aby nie wprowadzać zawęŜonej wiedzy logicznej o przekształcanej formule, naleŜy najpierw, korzystając z praw N.1-N.22, wyprowadzać przed formułę kwantyfikatory egzystencjalne informacji. A oto przykład wskazujący na pierwszeństwo dla kwantyfikatora egzystencjalnego: Oto pierwszy schemat rozumowania: 1. (∀xA(x) ∨ ∃yB(y) ), 2. ∀x (A(x) ∨ ∃y B(y)) (1, prawo N.10), 3. ∀x∃y (A(x) ∨ B(y)) (2, prawo N.15), 1 4. ∀x (A(x) ∨ B(f1 (x))) (3,redukcja kwantyfikatora∃y) . A oto drugi schemat rozumowania: 1. (∀xA(x) ∨ ∃yB(y) ), 2. ∃ y (∀x A(x) ∨ B(y)) (1, prawo N.15), 3. ∃y ∀x (A(x) ∨ B(y)) (2, prawo N.10), (3, reguła (EX)). 4. ∀x (A(x) ∨ B(c)) Jak widać drugi schemat rozumowania nie ogranicza doboru termu do zaleŜności od argumentu x1, nie powoduje więc zuboŜenia wiedzy logicznej. Do ograniczenia wiedzy logicznej prowadzą takŜe formuły: ∀x(A(x) ∧ B(x) ), ∃x(A(x) ∨ B(x) ), gdyŜ moŜemy je zastąpić bardziej bogatymi w wiedzę równowaŜnymi formułami: (∀xA(x) ∧∀yB(y) ), (∃xA(x) ∨ ∃yB(y) ). HIPOTEZA (o rozstrzygalności, heurystyczna) KaŜde rozumowanie, które nie ogranicza wiedzy logicznej jest rozstrzygalne – prowadzi do prawdy (tezy) lub do jej odrzucenia! Niestety, do dzisiaj nikt nie próbował podejść do problemu rozstrzygalności od strony dąŜenia do niezubaŜania wiedzy logicznej. Przykład 2.2.2 (redukcji kwantyfikatorów egzystencjalnych) Na podstawie Metatwierdzenia 2.2.1 istnieje interpretacja równowaŜności wszystkich poniŜej wypisanych formuł. ∃x1∃x2∀x3∀x4∃x5∃x6∀x7 A(x1,x2,x3,x4,x5,x6,x7), 1. 2. ∀x3∀x4∃x5∃x6∀x7 A(c1,c2,x3,x4,x5,x6,x7), 3. ∀x3∀x4 ∃x6∀x7 A(c1,c2,x3,x4,f12(x3 x4),x6,x7), 4. ∀x3∀x4 ∀x7 A(c1,c2,x3,x4,f12(x3 x4), f22(x3 x4),x7). Definicja 2.2.3 (formuły w postaci klauzulowej) Dla dowolnie wybranej formuły zamkniętej, formułę o postaci normalnej, której matryca jest koniunkcją alternatyw literałów i która moŜe zawierać tylko kwantyfikatory generalne, nazywamy postacią klauzulową wybranej formuły. Alternatywy literałów występujące w postaci klauzulowej nazywamy klauzulami. Algorytm sprowadzania do postaci klauzulowej 1. Sprowadzamy formułę do postaci normalnej zgodnie z podanym algorytmem normalizacji. 2. Wynikiem normalizacji jest formuła, w której kwantyfikatory egzystencjalne, o ile istnieją, oraz występują na początku postaci normalnej, to opuszczamy je zgodnie z regułą (EX). Pozostałe kwantyfikatory egzystencjalne redukujemy wykorzystując redukcję Skolema. PoniewaŜ matryca jest koniunkcją alternatyw literałów. Więc po skolemowskiej redukcji kwantyfikatorów otrzymujemy postać klauzulową, w której alternatywy koniunkcji są klauzulami. Podane algorytmy normalizacji i skolemowskiej redukcji kwantyfikatorów wskazują, Ŝe zachodzi Metatwierdzenie 2.2.3 (Skolema) Dla dowolnej formuły zamkniętej logiki pierwszego rzędu (z termami i identycznością) istnieje postać klauzulowa tej formuły. Więcej, Metatwierdzenie 2.2.4 Jeśli podczas normalizacji formuły zamkniętej, nie zawierającej na początku Ŝadnych kwantyfikatorów, kaŜdy kwantyfikator egzystencjalny za kaŜdym razem moŜna wyciągać przed koniunkcje lub alternatywę, która ten kwantyfikator zawiera, wcześniej niŜ wyciąga się kwantyfikator generalny tam zawarty, to istnieje postać normalna tej formuły, taka Ŝe kwantyfikatory egzystencjalne występują tylko na jej początku. A stąd wynika Metatwierdzenie 2.2.4 (Skolema dla rachunku kwantyfikatorów) Dla dowolnej formuły zamkniętej rachunku kwantyfikatorów, której normalizację charakteryzuje metatwierdzenie 2.2.3, istnieje postać klauzulowa tej formuły, będąca formułą rachunku kwantyfikatorów. Przykład 2.2.3 (sprowadzenie formuły do postaci klauzulowej) Z przykładu 2.2.1 wiemy, Ŝe postacią normalną formuły ((∃x1 P11(x1) ⇒ ∃x1∃x2 P12(x1,x2)) ∧∀x2 (¬∃x1 P11(x1) ∨ ¬∃x1 P12(x1,x2))), jest formuła ∀x1∃x3 ∀x2∃x5 ∀x4 ( (¬P11(x1) ∨ P12(x3,x5)) ∧ (¬P11(x1) ∨ ¬P12(x4,x2))). Stosując redukcję kwantyfikatorów egzystencjalnych otrzymujemy formułę w postaci klauzulowej ∀x1 ∀x2 ∀x4 ( (¬P11(x1) ∨ P12(f11( x1),f12(x1, x2))) ∧ (¬P11(x1) ∨ ¬P12(x4,x2))). Umowa notacyjna: 1) postać klauzulową zapisujemy jako rodzinę zbiorów literałów występujących w klauzulach. Np. zamiast powyŜszej formuły piszemy: { {¬P11(x1) , P12(f11( x1),f12(x1, x2))}, {¬P11(x1) , ¬P12(x4,x2)}}. 2)dowolna klauzula napisana w notacji 1) moŜe być zapisana w postaci {¬A1,¬A2,…, ¬Ak, B1, B2,…, Bm}. gdzie formuły Ai, Bj są atomowe, co w standardowym zapisie daje postać ( (¬A1 ∨ ¬A2 ∨ …∨ ¬Ak)∨ ( B1∨ B2∨ …∨ Bm)) lub postać jej równowaŜną (¬(A1 ∧ A2 ∧ …∧ Ak)∨ ( B1∨ B2∨ …∨ Bm)), a stosując znak implikacji ( (A1 ∧ A2 ∧ …∧ Ak)⇒ ( B1∨ B2∨ …∨ Bm)). 3) Gdy przyjmiemy, Ŝe będzieny oznaczać znak koniunkcji przecinkiem, znak alternatywy średnikiem, a implikacji A⇒B nadamy postać B :- A, to klauzulę będziemy modli zapisać w postaci B1 ; B2 ; …; Bm :- A1 , A2 , …, Ak . W przypadku, gdy nie początkowej postaci klauzuli nie wystąpią negacje (k=0), to klauzulę zapiszemy B1 ; B2 ; …; Bm :- . Gdy natomiast będą występowały same negacje atomów, to :- A1 , A2 , …, Ak . 4) W przypadku m=1 klauzulę będziemy nazywali klauzulą hornowską (klauzule hornowskie zostaną szerzej omówione w rozdziale 3). 2.3 Modele Herbranda PokaŜemy teraz, jak moŜna wykorzystać funkcję interpretacji formuł oraz postacie klauzulowe formuł do efektywnego sprawdzania tautologiczności formuł i dowodzenia formuł. Z definicji interpretacji formuł, definicji postaci klauzulowej oraz metatwierdzeń 2.2.1 i 2.2.3 wynika Metatwierdzenie 2.3.1 Niech A’ jest postacią klauzulową formuły A, a A’’ postacią klauzulową ¬A. Wtedy tautologiami są formuły: (A’ ⇒ (A ⇔ A’)). ((A”⇒ fałsz) ⇒ A). Formuły o pierwszej postaci będą słuŜyły do sprawdzania tautologiczności (dowodzenia) metodą wprost. PoniewaŜ przyjęliśmy, jako bardziej efektywną, metodę sprawdzania niewprost (dowodzenia niewprost), więc schemat drugi zakładający sprowadzenie do postaci klauzulowej negacji danej formuły A, a następnie sprawdzenie czy postać klauzulowa A’’ implikuje sprzeczność, odpowiada metodzie niewprost. Aby zastosować ten schemat rozumowania i z formuły A’’ otrzymać sprzeczność w metodzie sprawdzania (dowodzenie w systemie tabel decyzyjnych) musimy, jeśli A’’ nie jest koniunkcją formuł sprzecznych, skorzystać z zasady (ZALLX) opuszczania kwantyfikatorów generalnych, podstawiając za zmienne takie termy ustalone (argumenty tych termów są tylko stałymi), Ŝe w wyniku podstawienia formuła klauzulowa, wcześniej sprowadzona do postaci alternatywy koniunkcji literałów, uzyska postać taką, Ŝe kaŜdy człon alternatywy będzie zawierał sprzeczne literały. Dojście do sprzecznych literałów przez podstawianie ustalonych termów przy opuszczaniu kwantyfikatorów generalnych wymaga stosowania takich termów z przestrzeni Herbranda, Ŝe zbudowane są one jedynie z symboli funkcyjnych zawartych w postaci klauzulowej badanej formuły, ze stałych występujących w tej postaci klauzulowej, a jeŜeli tych stałych tam nie ma wystarczy dołączyć co najwyŜej jedną nową stałą, której nie ma w rozwaŜanej postaci klauzulowej. Dla rozwaŜanych formuł wystarcza takie ograniczenie przestrzeni Hebranda dla termów systemu logicznego oraz takie ograniczenie bazy Herbranda, Ŝe wszystkie wyraŜenia mogą być wyprodukowane za pomocą stosownych regół produkcji gramatyki języka logiki tylko ze znaków, z których zbudowane są rozwaŜane formuły. Zasadna jest więc następująca definicja: Definicja 2.3.1 (uniwersum i baza Herbranda zbioru formuł) Niech S będzie zbiorem klauzul, CS zbiorem symboli stałych ze zbioru C, które występują w klauzulach ze zbioru S, FS zbiorem symboli funkcyjnych występujących w tych klauzulach, a PS zbiorem predykatów występujących w rozwaŜanych klauzulach. Uniwersum Herbranda HS zbioru S definiujemy, jako pewne zbiory termów, indukcyjnie: dla c∈ CS, c ∈HS f(t1,…,tn) ∈ HS dla f∈FS, ti ∈ HS. JeŜeli w klauzulach z S nie występuje Ŝadna stała, indukcyjna definicja HS rozpoczyna się od wprowadzenia dowolnej stałej c. Bazą Herbranda BS zbioru S określa równość BS = {P(t1,…,tn): P∈ PS, ti ∈ HS}. Definicja 2.3.2 (interpretacja Herbranda) Interpretacją Herbranda v zbioru S klauzul nazywamy interpretację w dziedzinie D =<D, R, F, D0>, której dziedziną D jest uniwersum HS Herbranda zbiorów S, a stałym i symbolom funkcyjnym są przyporządkowane te same symbole: v(c) = c, v(f(t1,...,tn))= f(v(t1),...,v(tn)). A więc D = HS, F = FS, D0 = CS . Ponadto, R ={R: ∃P∈PS (R={< t1,...,tn>: v(P(t1,...,tn))=1}} . Oznacza to, Ŝe v(P) = R={< t1,...,tn>: v(P(t1,...,tn))=1}, dla P∈PS. Wprowadzone pojęcia metatwierdzeń: umoŜliwiają proste uzasadnienie poniŜszych Metatwierdzenie 2.3.2 Niech S jest zbiorem klauzul. Zbiór klauzul S ma interpretację wtw, gdy ma interpretację Herbranda. Metatwierdzenie 2.3.3 (pierwsze twierdzenie Herbranda o sprzeczności klauzul) Zbiór klauzul S jest sprzeczny wtw, gdy po sprowadzeniu tego zbioru (jako koniunkcji alternatyw literałów) do postaci alternatywy koniunkcji literałów w kaŜdym członie alternatywy występuje para sprzecznych literałów (para postaci A, ¬A). Zatem, wobec metawierdzenia 2.3.1 Metatwierdzenie 2.3.4 (twierdzenie Herbranda o dowodzeniu formuł) Dowód formuły zamkniętej A rachunku kwantyfikatorów istnieje wtw, gdy dla postaci klauzulowej formuły ¬A istnieje takie podstawienie zmiennych tej formuły termami ustalonymi (termami bez zmiennych), Ŝe powstała formuła w kaŜdej interpretacji Herbranda będzie fałszywa. Więcej, sprzeczność zbioru ustalonych klauzul moŜna wykazać korzystając tylko z praw i reguł wnioskowania rachunku zdań. Zgodnie z wprowadzoną wiedzą o dowodzeniu formuł w róŜnych systemach dowodzenia (dla róŜnych zbiorów reguł wnioskowania), efektywnie prowadzony dowód moŜe przebiegać według planu: • zaneguj formułę, • przekształć ja do postaci normalnej, wyciągając najpierw przed formułę kwantyfikatory egzystencjalne, a dopiero gdy wobec prze N.1-N.22 nie moŜna ich wyciągnąć naleŜy prawa te stosować do kwantyfikatorów generalnych, • zredukuj zmienne egzystencjalne, • uzyskana matrycę postaci normalnej doprowadź do klauzulowej, • przez stosowne podstawienie termów ustalonych za zmienne utwórz zbiór klauzul ustalonych, • sprawdź, czy zbiór klauzul ustalonych jest sprzeczny w kaŜdej interpretacji Herbranda. Aby usprawnić wykonanie dwu ostatnich punktów „planu dowodu”, w następnych podrozdziałach omówimy pewną metodę podstawiania ustalonych termów za zmienne oraz sformułujemy ogólną wersję reguły rezolucji, co będzie słuŜyło ustalaniu kiedy zbiór klauzul (głównie ustalonych) jest sprzeczny. 2.4 Podstawienia i ich uzgadnianie Rozpocznijmy poszukiwanie skutecznej metody podstawiania w dowodach formuły systemu tabel semantycznych, od przykładu dowodu formuły: Φ = (∀x1(P11(f12(x1,c1)) ⇒ P21(x1)) ⇒ (∃x1P11(x1) ⇒ ∃x1 P21(f12(x1,c1)))). Dowód. 1. ¬(∀x1(P11(f12(x1,c1)) ⇒ P21(x1)) ⇒ (∃x1P11(f12(x1,c1)) ⇒ ∃x1 P21(x1))) (zał. dow. nwp.) 1 2 1 2. ∀x1(P1 (f1 (x1,c1)) ⇒ P2 (x1)) (1, negacja implikacji (NC)) 1 2 1 3. ¬(∃x1P1 (f1 (x1,c1)) ⇒ ∃x1 P2 (x1)) (1, negacja implikacji (NC)) 1 2 4. ∃x1P1 (f1 (x1,c1)) (3, negacja implikacji (NC)) 1 5. ¬∃x1 P2 (x1) (3, negacja implikacji (NC)) 1 2 6. P1 (f1 (c2,c1)) (4, opuszczanie ∃ (EX)) 1 2 1 7. (P1 (f1 (c2,c1)) ⇒ P2 (c2)) (2, opuszczanie ∀ (ALLX), c2/x1 ) ¬P11(f12(c2,c1)) (7, zał, dod.) 8.1 8.2 sprz. 8.1 i 6 8. 9.1 9.2 9.3 9. ¬P11(f12(c2,c1)) ⇒ fałsz 1 (8.1->8.2) (7, zał. dod.) (5, reg. negacji ∃ = (NEX),(c2/x1), P2 (c2) ¬P21(c2) sprz. 9.1 i 9.2 P21(c2) ⇒ fałsz (9.1->9,3) sprz. na w kaŜdym rozgałęzieniu dowodu (7, 8, 9) Wykonajmy dowód formuły Φ sprowadzając ją najpierw do postaci klauzulowej: Dowód*: 1. ¬(∀x1(P11(f12(x1,c1)) ⇒ P21(x1)) ⇒ (∃x1P11(f12(x1,c1)) ⇒ ∃x1 P21(x1))) (zał. dow. nwp.) 1 2 1 1 2 2. (∀x1(¬P1 (f1 (x1,c1)) ∨ P2 (x1)) ∧ ¬(¬∃x1P1 (f1 (x1,c1)) ∨ ∃x1 P21(x1))) (1, reguła negacji implikacji (NC)) 1 2 1 3. (∀x1(¬P1 (f1 (x1,c1)) ∨ P2 (x1)) ∧ (¬¬∃x1P11(f12(x1,c1)) ∧ ¬∃x1 P21(x1))) (2, negacja implikacji w drugim członie koniunkcji) 1 2 4. (∀x1(¬P1 (f1 (x1,c1)) ∨ P21(x1)) ∧ (∃x1P11(f12(x1,c1)) ∧ ∀ x1¬ P21(x1))) (3, negacja negacji (NN) oraz prawo de Morgana N.6) 1 2 5. (∀x1(¬P1 (f1 (x1,c1)) ∨ P21(x1)) ∧ ∃x1∀x2 (P11(f12(x1,c1)) ∧ ¬ P21(x2)))(4, wyciąganie w drugim członie kwantyfikatora – prawo N.11) 6. ∃x3(∀x1(¬P11(f12(x1,c1)) ∨ P21(x1)) ∧ ∀x2 (P11(f12(x3c1)) ∧ ¬ P21(x2))) (5, wyciąganie z koniunkcji kwantyfikatora egzystencjalnego – prawo N.16) 7. ∃x3 ∀x1 ((¬P11(f12(x1,c1)) ∨ P21(x1)) ∧ ∀x2 (P11(f12(x3,c1)) ∧ ¬ P21(x2))) (6, wyciąganie z koniunkcji kwantyfikatora generalnego - N.8) 8. ∃x3 ∀x1∀x2 ((¬P11(f12(x1,c1)) ∨ P21(x1)) ∧ (P11(f12(x3,c1)) ∧ ¬ P21(x2))) (7, wyciąganie z koniunkcji kwantyfikatora generalnego - N.9) 9. ∀x1∀x2 ((¬P11(f12(x1,c1)) ∨ P21(x1)) ∧ (P11(f12(c2,c1)) ∧ ¬ P21(x2))) (8, opuszczanie kwantyfikatora egzystencjalnego – reguła (EX)) 10. ∀x1∀x2 ((¬P11(f12(x1,c1)) ∧ (P11(f12(c2,c1)) ∧ ¬ P21(x2)) ∨ (P21(x1)) ∧ (P11(f12(c2,c1)) ∧ ¬ P21(x2)))(9, rozdzielenie alternatywy względem koniunkcji) 11. ((¬P11(f12(c2,c1)) ∧ (P11(f12(c2,c1)) ∧ ¬ P21(c2)) ∨ (P21(c2)) ∧ (P11(f12(c2,c1)) ∧ ¬ P21(c2))) (10, opuszczenie kwantyfikatorów generalnych – podstawienia c2/x1, c2/x2) 12.1 (¬P11(f12(c2,c1)) ∧ (P11(f12(c2,c1)) ∧ ¬ P21(c2)) (11, zał.dod.) 1 2 12.2 ¬P1 (f1 (c2,c1)) (12.1, (K)) 1 2 12.3 P1 (f1 (c2,c1)) (12.1, (K)) 1 12.4 ¬ P2 (c2) (12.1, (K)) 12.5 sprz. 12.2 z 12.3 (12.1->12.5) 13. (¬P11(f12(c2,c1)) ∧ (P11(f12(c2,c1)) ∧ ¬ P21(c2))⇒ fałsz 13.1 13.2 13.3 13.4 13.5 13. (P21(c2) ∧ (P11(f12(c2,c1)) ∧ ¬ P21(c2)) P21(c2) P11(f12(c2,c1)) ¬ P21(c2) sprz. 13.2 z 13.4 (P21(c2) ∧ (P11(f12(c2,c1)) ∧ ¬ P21(c2)) ⇒ fałsz sprz. (11, zał.dod.) (13.1 (K)) (13.1 (K)) (13.1 (K)) (13.1->13.5) W obu metodach dowodzenia otrzymujemy te same sprzeczne literały postaci A, ¬A, a więc dokonano tych samych ustaleń termów i formuł prowadzących do sprzeczności. WaŜne okazało się wybranie właściwego podstawienia termów ustalonych za zmienne tak, aby uzyskać sprzeczność właściwych literałów za zmienne. Umowa notacyjna 2.4.1 Podstawianie termu za zmienne pojawiało się, jak dotąd, w wywodach logicznych w czterech przypadkach: przy zastosowaniu skolemowskiej redukcji kwantyfikatorów egzystencjalnych, przy wykorzystaniu reguł wnioskowania (EX) oraz (NALLX), przy korzystaniu z praw normalizacyjnych N.1-N.22. Do opisu elementarnego w wywodzie podstawienia termu t za zmienną x stosowaliśmy skrótowy zapis (t/x), dlatego tę notację zastosujemy jako wyjściową w określeniu podstawienia złoŜonego (t1/x1, t2/x2,…,tn/xn) rozumianego jako ciąg kolejno wykonywanych podstawień (t1/x1), (t2/x2),…,(tn/xn). Zgodnie z teoriomnogościowym opisem wiedzy logicznej, naturalne będzie opisanie podstawienia jako funkcji przyporządkowującej termom, formułom, oraz podstawieniom pewne termy, formuły lub podstawienia. W celu wyraŜenia wartości tej funkcji, w zapisie wykonania podstawienia, dogodnie będzie zamiast zapisu standardowego: (t1/x1, t2/x2,…,tn/xn)(t), (t1/x1, t2/x2,…,tn/xn)(A), (t1/x1, t2/x2,…,tn/xn)(θ), gdzie t jest dowolnym termem, A formułą, θ dowolnym podstawieniem, pisać t(t1/x1, t2/x2,…,tn/xn), A(t1/x1, t2/x2,…,tn/xn), θ(t1/x1, t2/x2,…,tn/xn). Zmiennymi oznaczającymi podstawienia będę symbole: θ,θ1,θ2,…,θi,…. Definicja 2.4.1 (podstawienia) Niech zbiór Pds określony jest rekurencyjnie: (P1) ε∈Pds (P2) (t/x)∈ Pds, dla dowolnych t∈Term, x∈V, (P3) θ:Term ∪ Form ∪ Pds → Term ∪ Form ∪ Pds, dla dowolnego θ∈Pds, (P4) eε =e, dla dowolnego e∈ Term ∪ Form ∪ Pds, (P5) t1(t2/x) = t1, gdy w termie t1 nie ma zmiennej x, dla t1,t2∈Term, x∈V, (P6) t1(t2/x)∈Term, dla t1,t2∈Term, x∈V, (P7) A(t/x) = A, gdy w termie t1 nie ma wolnej zmiennej x, dla A∈Form, t∈Term, x∈V, (P8) A(t/x)∈Form, dla t1,t2∈Term, x∈V, (P9) jeśli (t1/x1, t2/x2,…,tn/xn)∈Pds, to (t1/x1, t2/x2,…,tn/xn, t/x)∈Pds, dla t1, t2,…,tn, t∈Term, x1, x2,…,xn, x∈V, (P10) jeśli θ1 = (t1/x1, t2/x2,…,tn/xn)∈Pds i θ2 = (t’1/x’1, t’2/x’2,…,t’k/x’k)∈Pds, to θ1θ2 = (t1θ2/x1, t2θ2/x2,…,tnθ1/xn, t’1/x’1, t’2/x’2,…,t’k/x’k)∈Pds (P8) zbiór Pds składa się tylko z elementów wyznaczonych przez (P1)-(P7). Elementy zbioru Term ∪ Form ∪ Pds nazywamy wraŜeniami podstawialnymi, krótko wyraŜeniami. Zbiór Pds nazywamy zbiorem wszystkich podstawień, a jego elementy podstawieniami. Dla dowolnego zbioru wyraŜeń {e1,e2,…,en} i podstawienia θ przyjmujemy umowny zapis: {e1,e2,…,en}θ = {e1θ,e2θ,…,enθ}. Podstawienia, których wartości dla termów i formuł są termami i formułami ustalonymi (tj. takimi w których nie występują zmienne), nazywamy ustalającymi. O wartości eθ dla ustalającego podstawienia θ oraz danego wyraŜenia e mówimy, Ŝe jest instancją wyraŜenia e. Unifikatorem zbioru wyraŜeń {e1,e2,…,en} nazywamy podstawienie θ takie, Ŝe e1θ = e2θ = …= enθ, a więc zbiór {e1,e2,…,en}θ jest jednoelementowy. Najbardziej ogólnym unifikatorem lub podstawieniem uzgadniającym zbioru wyraŜeń {e1,e2,…,en} nazywamy podstawienie σ takie, Ŝe dla kaŜdego unifikatora θ istnieje podstawienie θ’ spełniające równość: θ = σθ’. Proces znajdowania podstawienia uzgadniającego zbioru wyraŜeń nazywamy uzgodnienie tych wyraŜeń. Łatwo pokazać, Ŝe Metatwierdzenie 2.4.1 (o złoŜeniu podstawień) PoniewaŜ podstawienia są funkcjami określonymi na zbiorze wyraŜeń, więc utrzymujemy analogiczną własność jak dla składania funkcji: dla dowolnych podstawień θ1, θ2, θ3 oraz dowolnego wyraŜenia e (*) (θ1θ2)θ3 = θ1(θ2θ3), (**) e(θ1θ2) = (eθ1)θ2, dla dowolnego podstawienia (t1/x1, t2/x2,…,tn/xn) oraz dowolnego wyraŜenia e (***) e(t1/x1, t2/x2,…,tn/xn) =(…((e(t1/x1)) (t2/x2))…)(tn/xn)) . Metatwierdzenie 2.4.2 (algorytm Robinsona znajdowania podstawienia uzgadniającego) Następujący algorytm pozwala dla dowolnego zbioru W formuł atomowych, zbudowanych z tego samego predykatu i niekoniecznie jednakowych argumentów, rozstrzygnąć istnienie podstawienia uzgadniającego wyraŜenia tego zbioru: 1. Dla k=0, Wk =W i σk = ε. Przechodzimy do kroku 2. 2. Jeśli Wk nie jest jednoelementowy, to przechodzimy do kroku 3. W przeciwnym wypadku uzgadniające podstawienie σ = σk i kończymy realizację algorytmu. 3. KaŜdą formułę atomową ze zbioru Wk rozwaŜamy jako łańcuch symboli predykatu i argumentów, szukając odpowiadających sobie argumentów, które moŜemy uzgodnić, tzn. szukając dla dwóch róŜnych formuł numeru argumentu, dla którego w argumencie o tym numerze w pierwszej formule znajduje się inny term niŜ w tym samym miejscu w drugiej formule, a ponadto z wybranych termów jeden jest zmienną, a drugi termem lub jeden z termów zawiera zmienne których podstawienie pewnymi termami daje drugi term; naleŜy wyznaczyć te róŜne zmienne x1, x2, …,xn oraz termy t1, t2, …,tn, które podstawione za te zmienne dadzą w wyniku drugi term; w ten sposób znajdziemy podstawienie θ :=(t1/x1, t2/x2,…,tn/xn) i przechodzimy do kroku k=4. W przeciwnym wypadku kończymy poszukiwania. 4. Dla wyznaczonego w kruku 4 podstawienia θ obliczamy σk+1=σkθ, oraz Wk+1= Wkθ. Przyjmujemy k:= k+1 i przechodzimy dok roku 2. Uwaga: powyŜszy algorytm moŜna stosować takŜe do podstawienia uzgadniającego dla zbioru termów. znajdowania Przykład 2.4.1 (unifikatory i podstawienie uzgadniające) Niech W = {P13(x1, c1,f11(f21(c1))), P13(x2, x3, f11(x4))}. ZauwaŜmy, Ŝe pierwszy argument pierwszej formuły moŜemy uzgodnić z pierwszym argumentem drugiej formuły przez podstawienie (x2/x1), w przypadku drugich argumentów uŜyjemy podstawienia (c1/x3), a trzecich argumentów podstawienia (f21(c1)/x4). Wtedy podstawieniem uzgadniającym jest σ = (x2/x1, c1/x3, f21(c1)/x4), a podstawienie θ = (c2/x1, c1/x3, f21(c1)/x4) jest unifikatorem. Podstawienie σ ma dla podstawienia θ własność najogólniejszym unifikatora zbioru W θ = (c2/x1, c1/x3, f21(c1)/x4) = (x2/x1,c1/x3, f11(c1)/x4)(c2/x2) = σ(c2/x2). PokaŜemy, Ŝe θ jest unifikatorem W. Wθ ={P13(x1, c1,f11(f21(c1))), P13(x2, x3, f11(x4))}θ = {P13(x1, c1,f11(f21(c1)))θ, P13(x2, x3, f11(x4))θ}. P13(x1, c1,f11(f21(c1)))θ = P13(x1, c1,f11(f21(c1))) (c2/x1, c1/x3, f21(c1)/x4)= =( ((P13(x1, c1,f11(f21(c1))) (c2/x1))(c1/x3))( f21(c1)/x4)) = =( (P13(c2, c1,f11(f21(c1)))(c1/x3))( f21(c1)/x4)) =P13(c2, c1,f11(f21(c1)). P13(x2, x3, f11(x4))θ = P13(x2, x3, f11(x4)) (c2/x1, c1/x3, f21(c1)/x4)= =( ((P13(x2, x3, f11(x4)) (c2/x1))(c1/x3))( f21(c1)/x4)) = =( (P13(x2, x3, f11(x4)) (c1/x3))( f21(c1)/x4)) = =( P13(x2, c1, f11(x4)) ( f21(c1)/x4)) = P13(c2, c1,f11(f21(c1)). Stąd zbiór Wθ ={ P13(c2, c1,f11(f21(c1))} jest jednoelementowy, a więc θ jest unifikatorem zbioru formuł W. Przykład 2.4.1 (zastosowanie algorytmu Robinsona) Niech W = {P13(x2, f21(x3), f11(x1), P13(c1, x1, f11(f21(x2)))}. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. σ0 = ε, W0 = W. W0 nie jest jednoelementowy. θ := (c1/x2) σ1 = σ0θ =εθ = θ =(c1/x2), W1 = W0θ = {P13(x2, f21(x3), f11(x1), P13(c1, x1, f11(f21(x2)))} (c1/x2) = = {P13(c1, f21(x3), f11(x1), P13(c1, x1, f11(f21(c1)))}. W1 nie jest jednoelementowy. θ := (f21( x3)/x1) σ2 = σ1θ =(x2/c1) (f21( x3)/x1) =(x2/c1, f21( x3)/x1 ), W2 = W1θ ={P13(c1, f21(x3), f11(x1), P13(c1, x1, f11(f21(c1)))} (f21( x3)/x1) = = {P13(c1, f21(x3), f11(f21( x3)), P13(c1, f21( x3), f11(f21(c1)))}. W2 nie jest jednoelementowy. θ := (c1/x3) σ3 = σ2θ =(x2/c1, f21( x3)/x1 ) (c1/x3) = (x2/c1, f21( x3)/x1 , c1/x3 ), W3 = W21θ = = {P13(c1, f21(x3), f11(f21( x3)), P13(c1, f21( x3), f11(f21(c1)))} (c1/x3)= = {P13(c1, f21(c1), f11(f21(c1)), P13(c1, f21(c1), f11(f21(c1)))} = = {P13(c1, f21(c1), f11(f21(c1)) }. W3 jest jednoelementowy, a więc podstawieniem uzgadniającym jest σ = (x2/c1, f21( x3)/x1 , c1/x3 ). W dowodzeniu formuł metodą rezolucji poŜyteczne przy szukaniu podstawienie uzgadniającego są proste do wykazania stwierdzenia Metatwierdzenie 2.4.3 a) Dla zbioru dowolnego C literałów ustalonych (bez zmiennych) jedynym podstawieniem uzgadniającym jest podstawienie identycznościowe ε, takie Ŝe Cε=C. b) Niech literał B powstaje z literału A przez podstawienie do literału A w miejsce zmiennej x termu t. Wtedy (t/x) jest podstawieniem uzgadniającym zbioru {A,B}. Metatwierdzenie 2.4.4 Dla dowolnej tezy A w postaci klauzulowej i dowolnego podstawienia θ, wynik Aθ podstawienia θ klauzuli jest tezą. 2.5 Metoda rezolucji Algorytm Robinsona uzgadniania zbioru formuł umoŜliwia wprowadzenie metody dowodzenia zwanej metodą rezolucji. Metoda ta stosowana jest w komputerowej automatyzacji dowodów. W niniejszym podrozdziale zaprezentujemy podstawy tej metody. Definicja 2.5.1 (kolidowania zbiorów literałów. Niech zbiór L = {l1, l2, …, ln } jest zbiorem literałów (formuł atomowych lub ich negacji), wtedy zbiór literałów L* = {(l1)*, (l2)*, …, (ln)* }, gdzie operacja (*) określona jest wzorem: ¬a, dla l=a, a∈Atom (l)* = a, dla l=¬a, a∈Atom nazywamy zbiorem całościowo kolidującym ze zbiorem L. Dwa zbiory literałów C1, C2 nazywamy kolidującymi względem zbiorów literałów L1⊆C1, L2⊆C2 , jeśli dla zbioru L1∪(L2)* istnieje podstawienie uzgadniające σ. Mając w dowodzie dwie klauzule o schematach C1 = A∨ L1, C2 =B ∨ L2 takie, Ŝe istnieje podstawienie uzgadniające σ zbioru formuł atomowych zawartych w L1 lub L2 oraz L1σ ⇔ ¬L2σ, moŜemy do dowodu dołączyć nową formułę w postaci klauzulowej: (C1σ ∧ C2σ). Formuła ta jest wtedy równowaŜna formule: (Aσ ∨ L1σ) ∧ (Bσ ∨ ¬L1σ). PoniewaŜ, wobec praw logicznych zachodzi ((Aσ ∨ L1σ) ∧ (Bσ ∨ ¬L1σ)) ⇒ (Aσ ∨ Bσ), więc jako wniosek do dowodu moŜemy dołączyć (Aσ ∨ Bσ). Na podstawie powyŜszego schematu wnioskowania moŜemy wprowadzić następującą definicję Definicja 2.5.2 (rezolucji ) Niech C1, C2 będą klauzulami określonymi jako zbiory literałów i niech L1⊆C1, L2⊆C2 są zbiorami literałów takimi, Ŝe istnieje dla zbioru L1∪(L2)* podstawienie uzgadniające σ. Wtedy, klauzulę Rez(C1,C2) = (C1σ - L1σ) ∪ (C2σ - L2σ), nazywamy rezolwentą klauzul C1,C2. Regułę rezolucji określa następujący schemat C1, C2 (C1σ − L1σ ) ∪ (C2σ − L2σ ) Metatwierdzenie 2.5.1 Dla dowolnej formuły atomowej L, sprzeczność L ∧ ¬L wtw, gdy Rez({L},{¬L}) = ∅. Metatwierdzenie 2.5.2 JeŜeli w dowodzie niewprost dowolnej formuły zamknięte,j z postaci klauzulowej negacji tej formuły, stosując, jako jedyną regułę wnioskowania regułę rezolucji, pewien podzbiór zbioru klauzul postaci klauzulowej przekształcimy w zbiór pusty, to dowodzona formuła jest tezą. Z powyŜszych definicji i metatwierdzeń oraz wcześniej wprowadzonych metod dowodzenia otrzymujemy: Algorytm: ogólna metoda rezolucji 1. zaneguj formułę, 2. przekształć ja do postaci normalnej, wyciągając najpierw przed formułę kwantyfikatory egzystencjalne, a dopiero gdy wobec prze N.1-N.22 nie moŜna ich wyciągnąć naleŜy prawa te stosować do kwantyfikatorów generalnych, 3. zredukuj zmienne egzystencjalne, 4. uzyskana matrycę postaci normalnej doprowadź do klauzulowej, 5. sprawdź, czy istniej podzbiór W zbioru wszystkich klauzul w uzyskanej postaci klauzulowej negacji badanej formuły, który jest sprzeczny, tj. czy moŜna przekształcając ten zbiór za pomocą reguły rezolucji otrzymać ciąg zbiorów klauzul: W=W1, W2,...,Wk = ∅ ; jeśli tak jest to zbiór klauzul jest sprzeczny, a więc na podstawie metatwierdzenia 2.5.1 z analizowanej postaci klauzulowej negacji dowodzonej formuły wynika sprzeczność, zatem dowodzona formuła jest tezą. Przekształcenie zbiorów z ciągu klauzul Wi dokonujemy w następujący sposób: wybieramy ze zbioru dwie klauzule C1, C2, dla których moŜemy zastosować regułę rezolucji, a więc uzyskujemy nową klauzulę C=Rez(C1,C2), a następnie wyznaczamy Wi+1 =(Wi – {C1, C2}) ∪ {C}. Przykład 2.5.1 (metoda rezolucji dla schematów rachunku zdań) Sprowadzając do postaci klauzulowej i korzystając z reguły rezolucji udowodnij formułę (((P11(c1) ⇒ P22(c1, c2)) ∧ (P22(c1, c2) ⇒ P31(c2))) ⇒ (P11(c1) ⇒ P31( c2))). Dowód. (algorytm ogólnej metody rezolucji) 1. ¬(((P11(c1) ⇒ P22(c1, c2)) ∧ (P22(c1, c2) ⇒ P31(c2))) ⇒ (P11(c1) ⇒ P31( c2))) (zał. dow. nwp) 1 2 2 1 2. ((¬P1 (c1) ∨ P2 (c1, c2)) ∧ (¬P2 (c1, c2) ∨ P3 (c2)) ∧ P11(c1) ∧ ¬P31( c2)) (1, prawa normalizacji N.1-N6, reguła ekstensjonalności dla równowaŜności), jest to postać klauzulowa) 3. Realizujemy punkt 5 algorytmu ogólnej metody rezolucji: W = W1 = ={{¬P11(c1), P22(c1, c2)}, {¬P22(c1, c2), P31(c2)},{ P11(c1)},{ ¬P31( c2))}}, C1 := {¬P11(c1), P22(c1, c2)}, C2 := { P11(c1)} są kolidujące względem zbiorów L1 = {¬P11(c1)}, L2 = {P11(c1)}, σ := ε (dla literałów ustalonych jedynym podstawieniem uzgadniającym jest podstawienie identycznościowe ε, takie Ŝe Cε=C), C:= Rez(C1, C2) = (C1σ - L1σ) ∪ (C2σ - L2σ) = (C1ε - L1ε) ∪ (C2ε - L2ε) = (C1 - L1) ∪ (C2 - L2) = 1 = ({¬P1 (c1), P22(c1, c2)} - {¬P11(c1)}) ∪ ({P11(c1)} - {P11(c1)}) = = {P22(c1, c2)}. 4. W2 = (W1 – {C1,C2}) ∪ {C} = = {{P22(c1, c2)}, {¬P22(c1, c2), P31(c2)},{ ¬P31( c2))}, C1:= {¬P22(c1, c2), P31(c2)}, C2 :={ ¬P31( c2))} są kolidujące względem zbiorów L1 = {P31(c2)}, L2 = {¬P31(c2)}, σ: = ε, C:= Rez(C1, C2) = (C1σ - L1σ) ∪ (C2σ - L2σ) = (C1ε - L1ε) ∪ (C2ε - L2ε) = (C1 - L1) ∪ (C2 - L2) = 2 = ({¬P2 (c1, c2), P31(c2)} - {P3(c2) ∪ ({¬P3(c2} - {¬P3(c2}) = = {¬P22(c1, c2)}. 5. W3= (W2– {C1,C2}) ∪ {C}= {{P22(c1, c2)}, {¬P22(c1, c2)}}, C1 := L1 = { P22(c1, c2)}, C2 := L2 = {¬ P22(c1, c2)}, σ := ε, C:= Rez(C1, C2) = (C1σ - L1σ) ∪ (C2σ - L2σ) = (C1ε - L1ε) ∪ (C2ε - L2ε) = (C1 - L1) ∪ (C2 - L2) = ∅. 6. W4 = (W3 – {C1,C2}) ∪ {C} =∅. 7. sprzeczność Przykład 2.5.1 (metoda rezolucji dla schematów rachunku kwantyfikatorów) Sprowadzając do postaci klauzulowej i korzystając z reguły rezolucji udowodnij formułę (∀x1(P11(x1) ⇒ P21(x1)) ⇒ (∃x1P11(x1) ⇒ ∃x1P21(x1))). Dowód. 1. ¬(∀x1(P11(x1) ⇒ P21(x1)) ⇒ (∃x1P11(x1) ⇒ ∃x1P21(x1))) (zał.dow.nwp) 2. (∀x1(¬P11(x1) ∨ P21(x1)) ∧ (∃x1P11(x1) ∧ ∀x1¬P21(x1))) (1, prawa normalizacji N.1-N6, reguła ekstensjonalności dla równowaŜności) 3. (∀x1(¬P11(x1) ∨ P21(x1)) ∧ ∃x2∀x3 (P11(x2) ∧ ¬P21(x3))) (2, prawo normalizacji N.22 dla drugiego członu koniunkcji) 4. ∃x2 (∀x1(¬P11(x1) ∨ P21(x1)) ∧ ∀x3 (P11(x2) ∧ ¬P21(x3))) (3, prawo normalizacji N.14 dla głównej koniunkcji) 5. ∃x2∀x1∀x3 ( (¬P11(x1) ∨ P21(x1)) ∧ P11(x2) ∧ ¬P21(x3)) (4, prawa normalizacji N.8, N.9 dla głównej koniunkcji) 6. ∀x1∀x3 ( (¬P11(x1) ∨ P21(x1)) ∧ (P11(c2) ∧ ¬P21(x3))) (5, reguła (EX, otrzymujemy postać klauzulową) 7. Realizujemy punkt 5 algorytmu ogólnej metody rezolucji z uwzględnieniem metatwierdzeń 2.4.3, 2.4.4: W = W1 = {{¬P11(x1) , P21(x1)}, { P11(c2)} ,{¬P21(x3)}}, 8. 9. C1 := {¬P11(x1) , P21(x1)}, C2 := { P11(c2) } są kolidujące względem zbiorów L1={¬P11(x1)}, L2 = { P11(c2)}, podstawieniem uzgadniającym dla L1 ∪ (L2)* = { ¬P11(x1) ¬P11(c2)} jest podstawienie σ :=(c2/x1), C:= Rez(C1, C2) = (C1σ - L1σ) ∪ (C2σ - L2σ) = = (C1(c2/x1) - L1(c2/x1)) ∪ (C2(c2/x1)- L2(c2/x1)) = =({¬P11(c2) , P21(c2)} - {¬P11(c2)}) ∪ ({ P11(c2)} - { P11(c2)}) = = {P21(c2)}}. W2 = (W1 – {C1,C2}) ∪ {C} ={{P21(c2)} , {¬P21(x3)}}, C1 := L1 := {P21(c2)} , C2 := L2 := {¬P21(x3)}}, a σ := (c2/x3), C:= Rez(C1, C2) = (C1σ - L1σ) ∪ (C2σ - L2σ) = = (C1(c2/x3) - L1(c2/x3)) ∪ (C2(c2/x3)- L2(c2/x3)) = = ({P21(c2)} - {P21(c2)}) ∪ ({¬P21(c2)} - {¬P21(c2)} = ∅. sprzeczność. c.n.d.