Professional Documents
Culture Documents
Logika NS Wykład 3
Logika NS Wykład 3
(informatyków)
Kierunek Infromatyka, studia
niestacjonarne I stopnia
Wykład nr 3
dr Adam Marszałek
Katedra Informatyki
Politechnika Krakowska
Formuła zamknięta A jest spełniona w interpretacji I , czyli interpretacja I jest modelem A, jeśli v I (A) = 1 , co
oznaczamy I ⊨ A .
I1 = {N, {≤}, {}, {0}}, I2 = {N, {≤}, {}, {1}}, I3 = {Z, {≤}, {}, {0}}
Formuła zamknięta A jest prawdziwa, jeśli dla wszystkich interpretacji I mamy I ⊨ A , co będziemy oznaczać
⊨ A .
Formuła A jest niespełnialna, jeśli nie jest spełnialna, a jest nieprawdziwa, gdy nie jest prawdziwa.
Uw: W dalszej części wykładu rozważając spełnialność lub prawdziwość formuły, będziemy zakładać, że jest to
formuła zamknięta.
Tw:
A ≡ B wtw, gdy ⊨ A ⇔ B .
Dualność:
Łączność:
∃x∀yA(x, y) ⇒ ∀y∃xA(x, y)
Rozdzielność:
System gentzenowski G jest sytsemem dowodzenia, którego aksjomatami są dowolne zbiory formuł
zawierające pary literałów komplementarnych, regułami dowodzenia są zaś reguły typu α i β (z rachunku zdań)
oraz nastepujące reguły typu δ oraz γ:
⊢ U ∪ {γ} ⊢ U ∪ {δ}
przy założeniu, dotyczącym reguły δ, że stała a nie występuje w żadnej formule należącej do zbioru U .
Reguły typu γ odczytujemy w następujący sposób: Jeśli formuła kwantyfikowana egzystencjonalnie oraz pewna
jej instancja są spełnione, to instancja jest zbędna.
Reguła typu δ wyraża w sposób formalny następującą, często stosowaną, metodę wnioskowania logicznego:
Nich a będzie dowolną stałą. Udownodnijmy, że zachodzi A(a). Skoro a było dowolne, to udowodniliśmy
∀xA(x) .
Uw: Warunek niewystępowania stałej a w formułach należących do badanego zbioru jest warunkiem
koniecznym, jego brak mógłby bowiem spowodować nałożenie pewnych ograniczeń na dopuszczalne
interpretacje tej stałej.
Przykład:
System hilbertowski H
Rozszerzenie hilbertowskiego systemu dowodzenia H dla rachunku zdań do systemu dowodzenia dla rachunku
predykatów polega na dodaniu dwóch aksjomatów oraz jednej reguły dowodzenia. System dowodzenia jest
zdefiniowany tylko dla formuł kwantyfikowanych uniwersalnie, kwantyfikator egzystencjalny jest wyprowadzany
przez zdefioniowanie ∃xA(x) jako ¬∀x¬A(x).
Aksjomaty:
Aksjomaty A1, A2, A3 z rachunku zdań (obejmują również instancje będące formułami rachunku
predykatów).
(A4) ⊢ ∀xA(x) ⇒ A(a)
(A5) ⊢ ∀x(A ⇒ B(x)) ⇒ (A ⇒ ∀xB(x)) , pod warunkiem, żę zmienna x nie jest zmienną wolną w A.
Reguły:
⊢ A(a)
⊢ ∀xA(x)
U ⊢ A(a)
U ⊢ ∀xA(x)
Reguła dedukcji:
U ∪ {A} ⊢ B
U ⊢ A ⇒ B
U ⊢ ∀xA(x)
U ⊢ A(a)
⊢ ∀xA(x) ⇒ ∀xB(x)
Reguła C: Niech U będzie zbiorem formuł, a zaś stałą niewystępującą w żądnej formule z formuł należących do
U ani w formule ∃xA(x)
U ⊢ ∃xA(x)
U ⊢ A(a)
Tw: Jeśli istnieje dowód U ⊢ A , w którym korzysta się z reguły C, to istnieje dowód U ⊢ A , w którym nie
korzysta się z reduły C, pod warunkiem, że reguła generalizacji nie została użyta do formuły zawierającej stałą
wyprowadzaną przez C.
Term oraz atom nazywamy ustalonym wtw, gdy nie zwiera zmiennych. Formuła jest ustalona wtw, gdy nie
zawiera ani kwantyfikatorów ani zmiennych. Formułę A nazywamy ustaloną instancją formuły A, która nie
′
zawiera kwantyfikatorów, jeśli A można otrzymać z formuły A przez podstawienie za zmienne (wolne) formuły
′
A termów ustalonych.
Formuła jest w przedrostkowej koniunkcyjnej postaci normalnej wtw, gdy jest postaci:
Q1 x 1 … Qn x n M
Formuła zamknięta jest w postaci klauzulowej wtw, gdy jest w przedrostkowej koniunkcyjnej postaci normalnej i
jej przedrostek zawiera wyłącznie kwantyfikatory uniwersalne.
Klauzula C jest klauzulą ustaloną wtw, gdy jest ustalnoną istancją klauzuli C , czyli można ją otrzymać z C
′
Notacja:
Tw (Skolem): Niech A będzie formułą zamkniętą. Wówczas istnieje formuła A w postaci klauzulowej taka, że
′
A ≈ A
′
.
Komentarz:
Krok 1: Przemianuj zmienne kwantyfikowane w taki sposób, aby żadna zmienna nie występowała w dwóch
kwantyfikatorach.
Krok 3: przesuń operatory negacji do środka, usuwając podwójną negację, tak, aby negacja występowała tylko
przy formułach atomowych. Skorzystaj z równoważności:
Krok 4: Wydobądź kwantyfikatory z matrycy formuły. Powtarzaj następującą operację: wybierz kwantyfikator
niebędący w zakresie innego kwantyfikatora i przenieś go na zewnątrz, korzystając z następujących
równoważnośći (możliwych do zastosowania gdyż żadna zmienna nie występuje w dwóch kwantyfikatorach):
Krok 5: Korzystając z praw rozdzielności przekształć matrycę formuły do koniunkcyjnej postaci normalnej.
Kolejność wyciągania kwantyfikatorów na zewnątrz (krok 4) może być dowolna, dlatego możemy otrzymać inną
postać klauzulową z innymi funkcjami Skolema.
−
C = Rez(C1 , C2 ) = (C1 − {l}) ∪ (C2 − {l })
Tw: Rezolwenta klauzul C i C jest spełnialna wtedy i tylko wtedy, gdy klauzule C i C są (wzajemnie)
1 2 1 2
spełnialne.
Metoda rezolucji dla klauzul ustalonych jest zdefiniowana podobnie jak dla rachunku zdań.
Dla danego zbioru klauzu ustalonych stosujemy wielokrotnie regułę rezolucji.
Zbiór klauzul ustalonych jest niespełnialny wtw, gdy pewna sekwencja zastosowań reguły rezolucji prowadzi
do uzyskania klauzuli pustej.
Metodę rezolucji dla klauzul ustalonych trudno uznać za użyteczną metodę dowodzenia w rachunku
predykatów, gdyż zbiór termów ustalonych jest nieograniczony jak i nie uporządkowany. Czyli nie ma
gwarancji, że po określonej liczbie kroków znajdziemy wyprowadzenie, nie ma też wskazówek dotyczących
sposobu wybierania klauzul.
Jednak w roku 1965 Robinson wykazał, że metoda rezolucji może być też często stosowana w praktyce w
przypadku klauzul nieustalonych.
Podstawienia
{x1 ← t1 , … , xn ← tn }
Podstawienia oznaczamy małymi literami alfabetu greckiego: λ, μ, δ, θ. Podstawienie puste oznaczamy prze ϵ.
termem t . i
Przykład:
(podstawiemy jednocześnie)
Przykład:
E = p(u, v, x, y, z)
Podstawienie uzgadniające
Dla dowolnego zbioru atomów podstawieniem uzgadniającym tego zbioru nazywamy podstawienie
spełniajace warunek: instancją wszystkich elementów tego zbioru uzyskaną przez zastosowanie tego
podstawienia jest ten sam atom.
Uw: Nie wszystkie atomy da się uzgodnić (nie istnieją podstawienia uzgadniające).
Algorytm uzgadniania
Aby można było uzgodnić atomy, muszą one być utworzone z symboli predykatów o tej samiej nazwie i
liczbie argumentów.
Zbiór termów do uzgodnienia będziemy zapisywać w postaci zbioru równań na termach.
Zbiór równań na termach jest w postaci rozwiązywalnej, jeśli spełnione są następujące warunki:
wszystkie równania są postaci x i
= ti , gdzie x jest zmienną, i
i
= 1, 2, … , n
jeżeli zmienna x , wystepuje po lewej stronie równania, to nie występuje w żadnym innym miejscu.
i
Jeśli główne symbole funkcyjne termów t oraz t są różne, to zakończ algorytm i udziel odpowiedzi:
′ ′′
Przykład:
z = y x = g(z) h(g(z)) = w y = z
Stosując regułę 4 do ostatniego równania, w pierwszym otrzymujemy z = z a wieć możemy to równanie usunąć
zgodnie z regułą 2:
x = g(z) h(g(z)) = w y = z
x = g(z) w = h(g(z)) y = z
{x ← g(z), w ← h(g(z)), y ← z}
Jeśli algorytm zakończy się udzieleniem odpowiedzi, że zbiór termów niej jest uzgadnialny, to dla danego zbioru
równań nie istnieje podstawienie uzgadniające.
Jeśli algorytm zakończy się sukcesem, to otrzymany zbiór równań jest w postaci rozwiązywalnej i definiuje
najbardziej ogólne podstawienie uzgadniające podany zbiór równań: μ = {x1 ← t1 , … , xn ← tn }
Algorytm Robinsona
atomów A i A . ′
Przykład:
′
A = p(a, x, f (g(y)) A = p(y, f (z), f (z))
′
k = 2, t = a, t = y
Niech {t, t } będzie zbiorem niezgodności atomów A i A . Jeśli jednym z termów należących do tego
′ ′
zbioru jest zmienna x i+1 , a drugim term t i+1 , w którym zmienna x i+1 nie występuje, to niech
σi+1 = {xi+1 ← ti+1 } oraz A i+1 = Ai σi+1 , A
′
i+1
= A σi+1
′
i
.
Jeśli nie można wykonać kolejnego kroku algorytmu, to atomów nie można uzgodnić.
Jeśli po wykonaniu kolejnego kroku algorytmu otrzymamy A n = An
′
to atomy A i A są uzgadnialne i
′
Przykład:
Początkowy zbiór niezgodności to {x, g(y)}. Jeden z termów jest zmienną, która nie występuje w drugim termie,
zatem mamy: σ 1 = {x ← g(y)} oraz:
′
Aσ1 = p(g(y), f (g(y), h(g(y)), y)) A σ1 = p(g(y), f (g(z), w, z))
′
Aσ1 σ2 = p(g(z), f (g(z), h(g(z)), z)) A σ1 σ2 = p(g(z), f (g(z), w, z))
′
Aσ1 σ2 σ3 = p(g(z), f (g(z), h(g(z)), z)) A σ1 σ2 σ3 = p(g(z), f (g(z), h(g(z)), z))
Konieczność sprawdzania, czy term podstawiany za zmienną nie zawiera tej zmiennej, powoduje, że
algorytm uzgadniania ma wykładniczą złożoność obliczeniową (względem wielkości uzgadnianych termów).
Algorytmy stosowane w praktyce zwykle nie stosują tego sprawdzenia. Istnieje zatem ryzyko
niepoprawnego uzgodnienia.
Niech S 0 = S .
Załóżmy, że utworzyliśmy zbiór S . i
Uw: Algorytm nie musi się zakończyć (w przypadku zbioru klauzul spełnialnych).
Przykład:
Przykład:
Lemat o podnoszeniu
Poprawność
Jeżeli na podstawie ogólnej metody rezolucji można wyprowadzić klauzulę pustą, to zbiór klauzul jest
niespełnialny.
Pełność
Jeśli zbiór klauzul jest niespełnialny, to stosując ogólną metodę rezolucji można wyprowadzić klauzulę pustą.