You are on page 1of 17

Logika dla inżynierów

(informatyków)
Kierunek Infromatyka, studia
niestacjonarne I stopnia
Wykład nr 2
dr Adam Marszałek
Katedra Informatyki

Politechnika Krakowska
System hilbertowski H

System H można zdefiniować używając zamiast implikacji alternatywy lub koniunkcji jako podstawowego
operatora logicznego.

Implikację można zdefiniować przez ¬(A ∧ ¬B) lub (¬A ∨ B)

Reguła modus ponens pozostaje jedyną regułą dowodzenia.

W przypadku wyboru alternatywy zbiór aksjomatów wygląda następująco:

(A1) ⊢ A ∨ A ⇒ A

(A2) ⊢ A ⇒ (A ∨ B)

(A3) ⊢ (A ∨ B) ⇒ (B ∨ A)

(A4) ⊢ (A ∨ C) ⇒ ((A ∨ B) ⇒ (A ∨ C))

Reguła:

⊢ A ⊢ A ⇒ B

⊢ B

Aksjomat Mereditha

Możliwe jest zdefiniowanie systemu hilbertowskiego za pomocą tylko jednego aksjomatu i reguły modus
ponens.
({[(A ⇒ B) ⇒ (¬C ⇒ ¬D)] ⇒ C} ⇒ E) ⇒ [(E ⇒ A) ⇒ (D ⇒ A)]

System gentzenowski G

System gentzenowski G jest systemem dowodzenia. Aksjomatami są zbiory formuł zawierające pary literałów
komplementarnych. Reguły dowodzenia są nastepujące:

⊢ U1 ∪ {α1 , α2 } ⊢ U1 ∪ {β1 } ⊢ {β2 }

⊢ U1 ∪ {α} ⊢ U1 ∪ U2 ∪ {β}

Przykład:

Wyprowadzenie formuły: (p ∨ q) ⇒ (q ∨ p)

Operujemy na aksjomatach w posatci zbiorów formuł. Zbiór formuł stanowi domyślną alternatywę tych formuł, a
zatem każdy aksjomat jest formułą prawdziwą (gdyż zawiera literały komplementarne).

1. ⊢ ¬p, q, p (Aksjomat, w zapisie pomijamy nawiasy)

1. ⊢ ¬q, q, p (Aksjomat)

1. ⊢ ¬(p ∨ q), q, p (β∨ : 1, 2)

1. ⊢ ¬(p ∨ q), (q ∨ p) (α∨ : 3)

1. ⊢ (p ∨ q) ⇒ (q ∨ p) (α →: 4)

Twierdzenie o poprawności i pełności w systemie G

⊨ A wtedy i tylko wtedy, gdy ⊢ A w systemie G

System naturalnej dedukcji (Gentzen, Jaśkowski)

System naturalnej dedukcji operuje wyrażeniami zwanymi sekwentami. Są to wyrażenia postaci Δ ⊢ ϕ (ϕ


wyprowadzalne z Δ), gdzie Δ jest pewnym skończonym zbiorem formuł, a ϕ jest formułą.

W odróżnieniu od systemu hilbertowskiego, w naturalnej dedukcji istotne są reguły dowodzenia, a aksjomat jest
bardzo prosty.

Napis Δ, ϕ 1, … , ϕn oznacza zbiór Δ ∪ {ϕ 1, … , ϕn } , przy czym nie zakładamy tu, że ϕ i ∈ Δ .


Aksjomat

(A0) Δ, ϕ ⊢ ϕ

Reguły dowodzenia

Δ, ϕ ⊢ ψ Δ ⊢ ϕ ⇒ ψ Δ ⊢ ϕ
(⇒ intro) (⇒ elim)
Δ ⊢ ϕ ⇒ ψ Δ ⊢ ψ

Δ ⊢ ϕ Δ ⊢ ψ Δ ⊢ ϕ ∧ ψ Δ ⊢ ϕ ∧ ψ
(∧ intro) (∧ elim) (∧ elim)
Δ ⊢ ϕ ∧ ψ Δ ⊢ ϕ Δ ⊢ ψ

Δ ⊢ ϕ Δ ⊢ ψ Δ ⊢ ϕ ∨ ψ Δ, ϕ ⊢ θ Δ, ψ ⊢ θ
(∨ intro) (∨ intro) (∨ elim)
Δ ⊢ ϕ ∨ ψ Δ ⊢ ϕ ∨ ψ Δ ⊢ θ

Δ, ¬ϕ ⊢ F
(P S)
Δ ⊢ ϕ

Charakterystyczną cechą naturalnej dedukcji jest to, że reguły dowodzenia (za wyjątkiem reguły (PS) ”przez
sprzeczność”) są podzielone na grupy, po jednej dla każdego spójnika. W ramach jednej takiej grupy mamy dwa
rodzaje reguł.

Reguły wprowadzania mówią o tym w jakiej sytuacji można wprowadzić dany spójnik na prawo od znaku ⊢ (tj.
wywnioskować formułę danego kształtu).

Reguły eliminacji mówią o tym w jakiej sytuacji można ten spójnik wyeliminować, tzn. jak można użyć formuły
zbudowanej z jego pomocą do wyprowadzenia innej formuły.

Regułę dowodzenia ”przez sprzeczność” można traktować jako ”silną” regułę eliminacji F . Pamiętajmy, że ¬ϕ
oznacza formułę ϕ ⇒ F .

Warto zauważyć też, że:

szczegółnym przypadkiem reguły (⇒ intro) jest następująca reguła (wyprowadzenia negacji)

Δ, ϕ ⊢ F

Δ ⊢ ¬ϕ

szczególnym przypadkiem reguły (⇒ elim) jest następująca reguła (eliminacji negacji)

Δ ⊢ ¬ϕ Δ ⊢ ϕ

Δ ⊢ F

Dowody w systemie naturalnej dedukcji w odróżnieniu do dowodyów w systemi hilbertowskim są drzewami.


Pozwala to znacznie lepiej wizualizować zależności pomiędzy przesłankami i konkluzją stosowanych reguł.

Dowodem sekwentu Δ ⊢ ϕ w systemie naturalnej dedukcji nazwiemy drzewo etykietowane sekwentami tak, że:

korzeń ma etykietę Δ ⊢ ϕ ,
liście są etykietowane wystąpieniami aksjomatu
oraz każdy wewnętrzny wierzchołek jest etykietowany sekwentem otrzymanym z etykiet potomków tego
wierzchołka przy zastosowaniu jednej z reguł.

Piszemy Δ ⊢N ϕ , gdy sekwent Δ ⊢ ϕ ma dowód w systemie naturalnej dedukcji.

Gdy Δ = ∅ , to mówimy też, że ϕ jest twierdzeniem systemu naturalnej dedukcji i zapisujemy to przez ⊢ N ϕ .
Jeśli Δ jest zbiorem nieskończonym, to Δ ⊢N ϕ oznacza, że istnieje dowód sekwentu Δ 0 ⊢ ϕ , dla pewnego
skończonego Δ 0 ⊆ Δ .

Przykład

Niech p będzie zmienną zdaniową. Pokażemy, że ⊢ N p ⇒ (q ⇒ p) .

1. p, q ⊢ p

p, q ⊢ p
1. (⇒ intro)
p ⊢ q ⇒ p

p, q ⊢ p
(⇒ intro)
p ⊢ q ⇒ p
1. (⇒ intro)
⊢ p ⇒ (q ⇒ p)

Twierdzenie: Dla dowolnego sekwentu Δ ⊢ ϕ mamy następującą równoważność:

Δ ⊢N ϕ wtedy i tylko wtedy, gdy Δ ⊢H ϕ

We wcześniejszym przykładzie wyprowadziliśmy aksjomat A1 systemu hilbertowskiego.

Wyprowadźmy dla przykładu aksjomat A2: (p ⇒ (q ⇒ r)) ⇒ ((p ⇒ q) ⇒ (p ⇒ r))

Niech Δ = {p ⇒ (q ⇒ r), p ⇒ q, p}

Δ ⊢ p ⇒ (q ⇒ r) Δ ⊢ p Δ ⊢ p ⇒ q Δ ⊢ p
(⇒ elim) (⇒ elim)
Δ ⊢ q ⇒ r Δ ⊢ q
(⇒ elim)
Δ ⊢ r

Stosując następnie trzy raz regułę (⇒ intro) do sekwentu Δ ⊢ r otrzymamy aksjomat A2.

Rachunek sekwentów

Rozszerzymy teraz nieco pojęcie sekwentu. Przez sekwent będziemy teraz rozumieć napis Δ ⊢ Γ , gdzie Δ oraz
Γ są skończonymi zbiorami formuł.

Intuicyjnie, wyprowadzalność sekwentu Δ ⊢ Γ w rachunku sekwentów będzie oznaczać, że alternatywa formuł z


Γ wynika z hipotez Δ.

Podobnie jak w poprzednio rozważamy formuły, zbudowane w oparciu o spójniki ⇒, ∨, ∧ oraz stałą zdaniową F
. Negację ¬ traktujemy jako spójnik zdefiniowany przez ⇒ i F .

Przypomnijmy, że napis Δ, ϕ 1, … , ϕn oznacza zbiór Δ ∪ {ϕ 1, … , ϕn } ,

Aksjomaty:

(A0) Δ, ϕ ⊢ Γ, ϕ

(AF) Δ, F ⊢ Γ

Aksjomat (AF) można traktować jako regułę (bez przesłanek) wprowadzenia F z lewej strony znaku ⊢.

Podobnie jak wcześniej charakterystyczną cechą rachunku sekwentów jest specyficzna postać reguł.

Reguły w tym systemie naturalnie dzielą się na dwie grupy: jedna grupa reguł opisuje sytuacje kiedy możemy
wprowadzić dany spójnik na lewo od znaku ⊢, a druga grupa jest odpowiedzialna za wprowadzanie spójnika na
prawo od ⊢.
Dla każdego spójnika mamy odpowiadającą parę reguł.

Reguły dowodzenia

Δ ⊢ Γ, ϕ Δ, ψ ⊢ Γ Δ, ϕ ⊢ Γ, ψ
(⇒ lewa) (⇒ prawa)
Δ, ϕ ⇒ ψ ⊢ Γ Δ ⊢ Γ, ϕ ⇒ ψ

Δ, ϕ, ψ ⊢ Γ Δ ⊢ Γ, ϕ Δ ⊢ Γ, ψ
(∧ lewa) (∧ prawa)
Δ, ϕ ∧ ψ ⊢ Γ Δ ⊢ Γ, ϕ ∧ ψ

Δ, ϕ ⊢ Γ Δ, ψ ⊢ Γ Δ ⊢ Γ, ϕ, ψ
(∨ lewa) (∨ prawa)
Δ, ϕ ∨ ψ ⊢ Γ Δ ⊢ Γ, ϕ ∨ ψ

Dowodem sekwentu Δ ⊢ Γ , tak jak poprzednio, nazywamy drzewo etykietowane sekwentami tak, że:

korzeń jest etykietowany przez Δ ⊢ Γ ,


liście są etykietowane aksjomatami
wierzchołki wewnętrzne są etykietowane sekwentami otrzymanymi poprawnie przez zastosowanie reguł
dowodzenia.

Jeśli istnieje dowód sekwentu Δ ⊢ Γ w rachunku sekwentów to zapisujemy to tak: Δ ⊢G Γ (Litera G pochodzi
od nazwiska twórcy tego systemu, G. Gentzena)

Warto też zauważyć, że:

Jeśli mamy sekwent Δ ⊢ Γ, ϕ , to stosując aksjomat (AF), a następnie (⇒ lewa) dostajemy sekwent Δ, ¬ϕ ⊢ Γ .
Zatem natępująaca reguła jest dopuszczalna w systemie ⊢ (tj. jeśli dodamy ją do systemu, to zbiór
G

wyprowadzalnych sekwentów nie ulegnie zmianie):

Δ ⊢ Γ, ϕ
(¬ lewa)
Δ, ¬ϕ ⊢ Γ

Jeśli mamy dowód sekwentu δ ⊢ Γ , to dla każdej formuły ϕ możemy ją dodać do prawej strony każdego
sekwentu w tym dowodzie i otrzymamy dowód sekwentu Δ ⊢ Γ, ϕ . W szczególności, jeśli mamy udowodniony
sekwent Δ, ϕ ⊢ Γ , to możemy też udowodnić sekwent Δ, ϕ ⊢ Γ, F . Stosując do niego regułę (⇒ prawa)

otrzymujemy sekwent Δ ⊢ Γ, ¬ϕ . Tym samym pokazaliśmy, że następująca reguła jest dopuszczalna w systemie
⊢G :

Δ, ϕ ⊢ Γ
(¬ prawa)
Δ ⊢ Γ, ¬ϕ

Twierdzenie: Dla każdych Δ i ϕ mamy następującą równoważność:

Δ ⊢G ϕ wtedy i tylko wtedy, gdy Δ ⊢H ϕ

Dla dowodu implikacji odwrotnej rozszerza się system ⊢ przez dodanie nowej reguły zwanej cięciem.
G

Δ, ϕ ⊢ Γ Δ ⊢ ϕ, Γ
(ci cie)ę
Δ ⊢ Γ

Twierdzenie o eliminacji cięcia: Jeśli Δ ⊢GC Γ to Δ ⊢G Γ .

Główna zaleta dowodów w rachunku sekwentów (bez cięcia) wynika z następującej własności podformuł:

wszystkie formuły wystęepujące w przesłance dowolnej reguły są podformułami formuł występujących w


konkluzji.
Zatem np. w dowodzie sekwentu ⊢ ϕ mamy do czynienia tylko z podformułami formuły ϕ.

Dla danej formuły ϕ, łatwiej więc znaleźć dowód w sensie Gentzena niż np. dowód w sensie Hilberta.

Dlatego systemy zbliżone do rachunku sekwentów znajdują zastosowanie w automatycznym dowodzeniu


twierdzeń.

Z własności podformuł wynika też własność konserwatywności systemu nad swoimi fragmentami:

jeśli formuła, w której nie występuje jakiś spójnik jest tautologią, to jej wyprowadzenie nie wymaga reguł
związanych z tym spójnikiem.

Przykład:

Poszukamjmy dowodu sekwentu ⊢ ¬¬ϕ ⇒ ϕ w⊢ .


G

Ponieważ najbardziej zewnętrznym spójnikiem w rozważanej formule jest ⇒, to ostatnią regułą w poszukiwanym
Δ, ϕ ⊢ Γ, ψ
dowodzie musiała być reguła (⇒ prawa)
Δ ⊢ Γ, ϕ ⇒ ψ

Zatem wystarczy znaleźć dowód sekwentu ¬¬ϕ ⊢ ϕ .

Najbardziej zewnętrznym spójnikiem formuły po lewej stronie jest ¬, a zatem na mocy reguły (¬ lewa)
Δ ⊢ Γ, ϕ

Δ, ¬ϕ ⊢ Γ

Wystarczy zatem udowodnić sekwent ⊢ ϕ, ¬ϕ

Δ, ϕ ⊢ Γ
Podobnie, na mocy reguły (¬prawa)
Δ ⊢ Γ, ¬ϕ

Wystarczy udowodnić sekwent ϕ ⊢ ϕ , a on przecież jest aksjomatem.

Jeśli zastosujemy powyższą procedurę do formuły, która nie jest tautologią, to dostaniemy wskazówkę na to
gdzie należy szukać wartościowania falsyfikującego tę formułę (Wartościowanie falsyfikujące sekwent Δ ⊢ Γ to
takie, które spełnia wszystkie formuły z Δ oraz falsyfikuje wszystkie formuły z Γ.)

Dla zilustrowania tej tezy weżmy bardzo prosty sekwent ⊢ p ⇒ q . Postępując podobnie jak porzednio
dochodzimy do sekwentu p ⊢ q , który nie jest aksjomatem, i którego nie możemy już dalej rozłożyć.

Jako wartościowanie falsyfikujące wystarczy wziąć wartościowanie spełniające p i falsyfikujące q.

Klauzulowa postać formuł

Klauzulą nazywamy zbiór literałów, rozumiany domyślnie jako alternatywa tych literałów.

Klauzulę złożoną z jednego literału nazywamy klauzulą unarną.

Formułą w postaci klauzulowej nazywamy zbiór klauzul, rozumiany domyślnie jako koniunkcja tych klauzul.

Przykład:

Postać klauzulowa formuły

(¬q ∨ ¬p ∨ q) ∧ (p ∨ ¬p ∨ q ∨ p ∨ ¬p)

to

{{¬q, ¬p, q}, {p, ¬p, q}}


Wn: Dla każdej formuły rachunku zdań istnieje równoważna formuła w postaci klauzulowej.

Notacje

W skróconym zapisie postaci klauzulowej pomijamy wewnęrzne nawiasy, a negację atomu oznaczamy przez
umieszczenie kreski nad nazwą tego atomu.

Dla wcześniejszego przykładu, postać klauzulowa w skórconym zapisie wygląda naztępująco:

{q̄ p̄ q, pp̄ q}

W dalszej części S będzie oznaczać zbiór klauzul (czyli formułę w postaci klauzulowej), C - klauzulę, a l - literał.

Jeśli l jest literałem, to przez l będziemy oznaczać jego dopełnienie. Jeśli zatem l

= p to l −
= p̄ , a jeśli l = p̄ ,
to l −
= p .

Własności postaci klauzulowej

Niech S i S będą zbiorami klauzul. Zapis S



≈ S

oznacza, że S jest spełnialny wtedy i tylko wtedy, gdy S jest ′

spełnialny.

Następujące lematy przedstawiają różne sposoby przekształacania formuły, niezmieniając jej spełnialności.

Lemat: Załóżmy, że pewien literał l występuje w (klauzuli) S , a l nie występuje w (żadnej klauzuli) S . Niech S
− ′

oznacza zbiór uzyskany z S poprzez usunięcie wszystkich klauzul zawierających literał l. Wówczas S ≈ S

.

Przykład:

S = {pqr̄ , pq̄ , p̄ q} ,aS ′


= {pq̄ , p̄ q}

Lemat: Niech C = {l} ∈ S bęzie klauzulą unarną, a S zbiorem klauzul otrzymanych z S przez usunięcie

wszystkich klauzul zawierających l oraz usunięcie literału l z każdej pozostałej klauzuli. Wówczas S −
≈ S

.

Przykład:

S = {r, pqr̄ , pq̄ , q̄ p} ,aS ′


= {pq, pq̄ , q̄ p}

Lemat: Załóżmy, że zarówno l ∈ C , jak i l −


∈ C dla pewnej klauzuli C ∈ S . Niech S ′
= S − {C} . Wówczas
≈ S

.

Dowód: Każde wartościowanie spełnia klauzulę C

Będziemy odtąd zakładać, że formuła w postaci klauzulowej nie zawiera klauzul prawdziwych.

Jeśli C 1 ⊆ C2 , to mówimy, że C pociąga C .


1 2

Lemat: Niech C 1, C2 ∈ S będą klauzulami takimi, że C pociąga C . Niech S 1 2



= S − {C2 } . Wówczas S ≈ S

,
(czyli większą klauzulę można usunąć).

Dowód: Ponieważ klauzula jest alternatywą literałów, każde wartościowanie spełniające C spełnia również C . 1 2

Zbiór wartościowań spełniających mniejszą klauzulę jest zawary w zbiorze watościowań spełniających większą
klauzulę, a zatem znalezienie wartościowania spełniającego mniejszą klauzulę oznacza automatycznie znalezienie
wartościowania spełniającego większą.

Przykład:

Niech S = {pq, pqr̄ , pq̄ , p̄ q} ,aS ′


= {pq, pq̄ , p̄ q} .

Klauzulę pustą oznaczamy przez □. Pusty zbiór klauzul oznaczamy przez ∅.

Lemat: ∅ jest formułą prawdziwą. Klauzula □ jest niespełnialna.


Niech S będzie zbiorem klauzul, a U zbiorem atomów (zmiennych zdaniowych). Zbiór R U (S) , otrzymany z S
przez zastąpienie każdego literału l (utworzonego z atomu należącego do U ) literałem l , nazywamy −

przemianowaniem S względem U .

Lemat: S ≈ RU (S) .

Przykład:

Zbiór klauzul S = {pqr, p̄ q, q̄ r̄ , r} jest spełniony przez wartościowanie p = 0, q = 0, r = 1 .

Zbiór R {p,q}
(S) = {p̄ q̄ r, pq̄ , qr̄ , r} jest spełniony przez przez wartościowanie p = 1, q = 1, r = 1 .

Rezolucja

Rezolucja jest procedurą decyzyjną używaną do wykazania, że formuła w postaci klauzulowej jest niespełnialna.

Procedura ta składa się z ciągu zastosowań reguły rezolucji do zbioru klauzul.

Reguła rezolucji zachowuje spełnialność: jeżeli zbiór klauzul jest spełnialny, to zbiór klauzul uzyskany w wyniku
zastosowania reguły rezolucji też jest spełnialny.

Zatem jeśli uda się uzyskań niespełnialną klauzulę pustą, to będzie to oznaczać, że pierwotny zbiór klauzul jest
niespełnialny.

Reguła rezolucji

Niech C 1
, C2 będą klauzulami takimi, że l ∈ C1 , l

∈ C2 . Klauzule C 1
, C2 nazywamy klauzulami kolidującymi i
mówimy, że kolidują względem komplememntarnych literałów l, l . −

Rezolwentą klauzul C i C nazywamy klauzulę C postaci:


1 2


C = Rez(C1 , C2 ) = (C1 − {l}) ∪ (C2 − {l })

Klauzule C i C nazywamy klauzulami macierzystymi dla C .


1 2

Przykład:

Para klauzul C 1 = abc̄ iC 2 = bcē koliduje względem literałów c, c̄ .

Rezolwentą tych klauzul jest klauzula C = (abc̄ − {c̄ }) ∪ (bcē − {c}) = ab ∪ bē = abē

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 (algorytm)

Wejście: Zbiór klauzul S .

Wyjście: Odpowiedź czy S jest spełnialny czy niespełnialny.

1. Niech S będzie zbiorem klauzul. Przyjmijmy, że S i = S dla i = 0 .

1. Wybierz parę klauzul kolidujących C 1, C2 ∈ S i , które jeszcze nie były wybrane.

1. Utwórz klauzulę C będącą rezolwentą klauzul C i C zgodnie z definicją reguły rezolucji.


1 2

1. Utwórz zbiór klauzul S i+1 = Si ∪ {C}


1. Powtarzaj kroki 2,3 i 4 aż do wystąpienia jednego z warunków zatrzymania:
Jeśli C = □ , to zakończ stwierdzając, że S jest niespełnialny.
Jeśli S i+1 = Si dla wszystkich możliwych klauzul kolidujących, to zakończ stwierdzając, że S jest
spełnialny.

Przykład:

Niech S będzie zbiorem klauzul postaci {p, p̄ q, r̄ , p̄ q̄ r}.

1. Wybieramy C 1 ,
= {p}, C2 = {p̄ q} C = {q}, S1 = {p, p̄ q, r̄ , p̄ q̄ r, q}

1. Wybieramy C 1 ,
= {p}, C2 = {p̄ q̄ r} C = {q̄ r}, S2 = {p, p̄ q, r̄ , p̄ q̄ r, q, q̄ r}

1. Wybieramy C 1 ,
= {r̄ }, C2 = {q̄ r} C = {q̄ }, S3 = {p, p̄ q, r̄ , p̄ q̄ r, q, q̄ r, q̄ }

1. Wybieramy C 1 ,
= {q}, C2 = {q̄ } C = □, S jest niespełnialny

Drzewo rezolucji

Drzewo, w którym liście zwierają oryginalne klauzule, a rezolwenty znajdują się w wewnętrznych wierzchołkach,
których potomkami są wierzchołki zawierające klauzule użyte w kroku rezolucji.

Wyprowadzenie klauzuli □ ze zbioru S nazywamy dowodem S przez zaprzeczenie.

Tw: Jeśli zbiór klauzul umieszczonych w liściach drzewa rezolucji jest spełnialny, to klauzula znajdująca się w
korzeniu tego drzewa jest spełnialna.
Uw: Twierdzenie odwrotne nie musi zachodzić!.

Wn: (poprawność): Jeśli na podstawie metody rezolucji ze zbioru klauzul zostanie wyprowadzona klauzula
pusta, to zbiór klauzul jest niespełnialny.

Tw: (pełność): Jeśli zbiór klauzul jest niespełnialny, to za pomocą metody rezolucji można wyprowadzić klauzulę
pustą.

Klauzula rezolucji jest metodą dowodzenia przez zaprzeczenie, a zatem jej poprawność i pełność wyraża się w
odniesieniu do niespełnialności, a nie do prawdziwości.

Przykład:

Czy formuła: (p ⇒ (q ⇒ r)) ⇒ ((p ⇒ q) ⇒ (p ⇒ r)) jest tautologią?

Zaprzeczenie tej formuły sprowadzamy do koniunkcyjnej postaci normalnej a następnie do postaci klauzulowej.

Otrzymujemy: {p, p̄ q, r̄ , p̄ q̄ r}.

Jest to zbiór klauzul z wcześniej rozwiązanego przykładu, a więc jest on niespełnialny. Zatem zaprzeczenie
początokowej formuły jest niespełnialne, a zatem formuła jest tautologią.

Relacje (przypomnienie)

Relacją n-argumentową na zbiorze S nazywamy dowolny podzbiór iloczynu kartezjańskiego S × ⋯ × S




ł
n sk adnik ów

Przykłady:

N p(x) ⊂ N jest zbiorem liczb nieparzystych {1, 3, 5, 7, …}

Sq(x, y) ⊂ N
2
jest zbiorem par (x, y) takich, że y = x
2
: {(0, 0), (1, 1), (2, 4), (3, 9), …}

Relację R można reprezentować za pomocą funkcji R o wartościach logicznych


n
R: D → {0, 1}

odwzorowującej krotkę w wartość 1 wtedy i tylko wtedy, gdy należy ona do relacji, czyli

R(d1 , … , dn ) = 1 wtw (d1 , … , dn ) ∈ R

Rachunek predykatów

Zmienne

W rachunku predykatów wprowadzamy zmienne, które nie są zmiennymi logicznymi.


Mogą one przyjmować wartości z dziedziny interpretacji.
Nie mogą być samodzielnymi "bytami" gdyż nie posiadają wartości logicznej.
Mogą jednak być argumentami predykatów lub funkcji.

Funkcje

W rachunku predykatów wprowadza się również funkcje, które nie są funkcjami logicznymi, ale przyjmują
wartości z dziedziny interpretacji.
Argumentami funkcji mogą być zmienne lub inne funkcje.

Kwantyfikatory
Kwantyfikatory umożliwiają czysto składniowe wyrażanie stwierdzeń, że relacja zachodzi dla niektórych lub
wszystkich elementów dziedziny interpretacji.

Zbiory symboli podstawowych

W rachunku predykatów wyróżniamy cztery przeliczalne zbiory symboli podstawowych:

A - zbiór stałych, np. A = {a, b, c}

V - zbiór zmiennych, np. V = {x, y, z}

P - zbiór symboli predykatywnych, np. P = {p, q, r}

F - zbiór symboli funkcyjnych. np. F = {f , g, h}

W rachunku predykatów występują te same operatory, które znamy z rachunku zdań, czyli:

¬ - negacja,
∧ - koniunkcja,
∨ - alternatywa (dysjunkcja),
⇒ - implikacja,
⇔ - równoważność,
itd.

oraz

∀ - kwantyfikator uniwersalny,
∃ - kwantyfikator egzystencjalny.

Kwantyfikatory

Symbol ∀ to kwantyfikator uniwersalny, który odczytujemy "dla każdego".

Symbol ∃ to kwantyfikator egzystencjalny, który odczytujemy "istnieje".

Wyrażenia rachunku predykatów

Każdy skończony ciąg symboli podstawowych i operatorów rachunku predykatów nazywamy wyrażeniem języka
rachunku predykatów.

Przykłady:

∀∃xyaf (a, x)p

p(x, f (a, x))

∀x∀y(p(x, y) ⇒ p(y, x))

xya∀f (a, x)∃¬p

∃x∃y(p(x) ∧ ¬p(y))

Uw: Nie każde wyrażenie jest formułą języka rachunku predykatów.

Formuły rachunku predykatów

Formułą rachunku predykatów nazywamy wyrażenie skonstruowane zgodnie z następującą gramatyką:

term ::= x dla dowolnego x ∈ V

term ::= a dla dowolnego a ∈ A

term ::= f (lista term ów) dla dowolnego f ∈ F


atom ::= p(lista term ów) dla dowolnego p ∈ P

f orm ::= atom

f orm ::= ¬f orm

f orm ::= f orm ∨ f orm podobnie dla ∧, …

f orm ::= ∀xf orm dla dowolnego x ∈ V

f orm ::= ∃xf orm dla dowolnego x ∈ V

Uw: Przyjmujemy, że kawntyfikatory mają piorytet wyższy od priorytety operatorów logicznych.

Term jest to stała, zmienna lub symbol funkcyjny, z listą termów w nawiasach.

Term nie jest formułą rachunku predykatów!


Term nie ma wartości logicznej. Term przyjmuje wartości z dziedziny interpretacji.
Term może być argumentem funkcji lub predykatu.

Przykałdy:

f (g(x), y))

g(f (a, g(b)))

Atom jest to symbol predykatywny, z listą termów w nawiasach.

Przykłady:

p(a, b)

p(x, f (a, x))

q(f (a, a), f (g(x), g(x)))

p(a, b, g(x, y))

Atomy to inaczej formuły proste rachunku predykatów.

Literał jest to atom lub negacja atomu, np. ¬q(a, b, c).

Klauzula jest to dysjunkcja (alternatywa) literałów, np. p(a, b) ∨ q(x, y).

Formuły złożone rachunky predykatów:

∀x∀y p(x, y) → p(y, x)

∀x∃y p(x, y)

∃x∃y](p(x) ∧ ¬p(y))

∀x p(a, x)
∀x (p(x) ∧ q(x)) ⇔ (∀x p(x) ∧ ∀x q(x))

∃x (p(x) ∨ q(x)) ⇔ (∃x p(x) ∨ ∃x q(x))

Zmienne kwantyfikowane

Zmienna x w kwantyfikowanej formule postaci ∀x A jest nazywana zmienną kwantyfikowaną.


Formuła A tworzy zasięg zmiennej kwantyfikowanej.
Nie jest wymagane, aby zmienna x wystąpiła w zasięgu własnej kwantyfikacji.

Zmienne wolne i związane

Zmienna x występująca w formule A jest nazywana zmienną wolną wtw, gdy x nie leży w zasięgu zmiennej
kwantyfikowanej x.
A(x1 , … , xn ) oznacza, że zbiór zmiennych wolnych formuły A jest podzbiorem zbioru {x 1 … , xn } .
O zmiennej, która nie jest wolna mówimy, że jest związana.
Formuła niezawierająca zmiennych wolnych jest nazywana formułą zamkniętą.

Przykład

Formuła: A = ∀x p(x) ∧ q(x)

Zmienna x występująca w p(x) jest zmienną związaną.

Zmienna x występująca w q(x) jest zmienną wolną.

Bardziej czytelniej: A = ∀x p(x) ∧ q(y)

Formuła niezawierająca zmiennych wolnych jest nazywana formułą zamkniętą.

Wartość logiczna formuły zamkniętej nie zależy od wartości występującej w niej zmiennych.

Przykład:

Niech, x, y ∈ N . Czy zdanie x > y jest spełnione?

To zależy od wartości zmiennych x i y.

Czy zdanie ∃x∀y x > y jest spełnione?

NIE, niezależnie od wartości występującej w niej zmiennych.

Jeśli {x 1, … , xn } są wszystkimi zmiennymi wolnymi formuły A, to domknięciem uniwersalnym formuły A jest


formu ła ∀x 1 … ∀xn A

Przykład:

A = ∀x p(x) ∧ q(y)

A = ∀y (∀x p(x) ∧ q(y)) (domknięcie uniwersalne)

Jeśli {x 1, … , xn } są wszystkimi zmiennymi wolnymi formuły A, to domknięciem egzystencjalnym formuły A


jest formu ła ∃x 1 … ∃xn A

Przykład:

A = ∀x p(x) ∧ q(y)

A = ∃y (∀x p(x) ∧ q(y)) (domknięcie egzystencjalne)


Dziedzina interpretacji

Czy formuła rachunku predykatów A = ∃x, y p(x, y) jest spełnialna?

Nalezy podac intepretacje (znaczenie) predykatu p


oraz dziedzine interpretacji zmiennych, czyli okreslić jakie wartości moga przyjmować zmienne x, y.

Przykład:

Niech x ∈ X oraz y ∈ Y , gdzie X jest zbiorem osób posiadajacych prawo jazdy, a Y jest zbiorem samochodów,
natomiast p(x, y) oznacza relacje "x jest włascicielem y". Dalej, niech x = Kowalski oraz y = Fiat .

Dziedzina interpretacji jest to zbiór, do którego nalezą:

zmienne,
stałe,
wartosci funkcji

występujące w formule rachunku predykatów.

Predykaty reprezentują relacje określone na dziedzinie interpretacji.

Predykat n-argumentowy oznacza relację R ∈ D


n
.

Przykład:

Interpretacją predykatu p(x, y, z) może być relacja R określona na zbiorze kątów ostrych, taka, że kąty x, y, z są
w relacji R, gdy są kątami tego samego trójkąta.

(x, y, z) ∈ R wtw. x + y + z = 180



.

Aby określić wartość (logiczną) formuły rachunku predykatów należy podać:

dziedzinę interpretacji (zbiór wartości jakie mogą przyjmować stałe, zmienne i funkcje),
funkcje odpowiadające symbolom funkcyjnym,
relacje odpowiadające symbolom predykatywnym.

Niech U będzie zbiorem formuł, dla którego:

{p1 , … , pk } - zbiór wszystkich symboli predykatywnych w U ,


{f1 , … , fl } - zbiór wszystkich symboli funkcyjnych w U ,
{a1 , … , am } - zbiór wszystkich stałych w U .

Interpretacją I nazywamy czwórkę:

{D, {R1 , … , Rk }, {F1 , … , Fl }, {d1 , … , dm }}

gdzie:

D - niepusta dziedzina,
Ri - relacja przyporządkowana symbolowi predykatywnemu p , i

Fi - funkcja przyporządkowana symbolowi funkcyjnemu f , i

di - element dziedziny D, przyporządkowany stałej a . i

Przykład:

Formuła: p(a, f (x))


Interpretacja I 1
2
= {N, {≥}, {x }, {5}}, 5 ≥ x
2

Interpretacja I 2 = {N, {≥}, {2x}, {0}}, 0 ≥ 2x

Interpretacja I 3
2
= {Z, {≥}, {x }, {5}}, 5 ≥ x
2

Wartościowanie

Niech I będzie interpretacją.

Wartościowaniem σ I :V → D nazywamy funkcję przyporządkowującą każdej zmiennej element dziedziny


interpretacji I .

Zapis σ I [xi ←di ]


będzie oznaczał, że w wartościowaniu σ zmiennej x została przyporządkowana wartość d .
I i i

Przykład:

Formuła:

p(a, f (x))

Interpretacja I 2
= {N, {≥}, {x }, {5}} :
2
5 ≥ x

Wartościowanie σ I [x←3]
:

5 ≥ 9

Wartość termu należy do dziedziny interpretacji D i nie musi być wartością logiczną. Wartość termu zależy
zarówno od interpretacji, jak i od wartościowania.

Wartość termu t w interpretacji I i wartościowaniu σ oznaczamy przez v I σI (t) i definiujemy przez indukcję:

vσ (xi ) = σI (xi )
I

vσ (ai ) = di
I

vσ (fi (t1 , … , tn )) = Fi (vσ (t1 ), … , vσ (tn ))


I I I

gdzie:

di - element dziedziny przyporządkowany stałej a w interpretacji I , i

Fi - funkcja przyporządkowana w interpretacji I symbolowi funkcyjnemu f . i

Przykład:

Wartość termu: t = f (x) + g(f (a))

Interpretacja: I = {N , {}, {2x, y }, {0}}


2

Wartościowanie: σ I (x) = 1

Wartość termu: v σI (t) = vσ (f (x) + g(f (a))) = 2σI (x) + (2σI (a))
I
2
= 2 ⋅ 1 + (2 ⋅ 0)
2
= 2

Wartość atomu

Atom ma wartość logiczną (0 lub 1).

A = pk (t1 , … , tn )
k
vσI (A) = 1 wtw (vσ (t1 ), … , vσ (tn )) ∈ R
I I

Rk - relacja przyporządkowana w interpretacji I predykatowi p . k

Przykład: A = p(a, x)

Niech I = {N, {≥}, {}, {0}} iσ I


,
(x) = 1 (x, y) ∈ R wtw x ≥ y

(vσ (a), vσ (x)) = (0, 1)


I I

(0, 1) ∉ R , stąd v σI
(A) = 0

Wartość formuły złożonej

Wartość logiczną formuły A przy wartościowaniu σ oznaczamy przez v I σI


(A) i definiujemy przez indukcję ze
względu na budowę formuły:

vσ (¬A) = 1 wtw vσ I (A) = 0


I I

vσ (A1 ∨ A2 ) = 1
I
wtw vσ (A1 ) = 1 lub vσ (A2 ) = 1
I I
(podobnie dla pozostałych operatorów
logicznych)
vσ (∀x A) = 1
I
wtw v
σI [x←d]
ż
(A) = 1 dla ka dego d ∈ D

vσ (∃x A) = 1 wtw vσ [x←d]


(A) = 1 dla pewnego d ∈ D
I I

Przykład:

A = p(x, a), B = ¬A

I = {N, {≥}, {}, {2}}

Formuła A w interpretacji I oznacza: x ∈ N ix ≥ 2

Wartość formuły A zależy od wartościowania σ . I

σI (x) = 3

vσ (A) = 1
I
, a zatem v σI
(B) = 0

Wartość formuły zamkniętej

Niech A będzie formuła zamkniętą. Wówczas v σI


(A) nie zależy od wartościowania σ . I

A = ∃y ∀x p(x, y)

+
I = {Z , {≥}, {}, {0}}

+ +
∃y ∈ Z ∀x ∈ Z x ≥ y

v
σI [y←1,x←d]
(p(x, y)) = 1 ż
dla ka dego d ∈ Z
+

vσ (∃y ∀x p(x, y)) = 1


I

Wartość domknięcia uniwersalnego formuły

Niech A ′
= A(x1 , … , xn ) nie będzie formułą zamknięta, a I niech będzie interpretacją. Wówczas:

vσ (Ai )
I
= 1 dla wszystkich wartościowań σ wtw, gdy I σI (∀x1 , … , ∀xn A ) = 1

.

Przykład: A = p(x, y)
Domkniecie uniwersalne A: A = ∀x ∀y p(x, y)

I = {N, {≥}, {}, {}}

∀x ∈ N ∀y ∈ N x ≥ y

vσ [x←0,y←1]
(p(x, y)) = 0
I

vσ (∀x ∀y p(x, y)) = 0


I

Wartość domknięcia egzystencjalnego formuły

Niech A ′
= A(x1 , … , xn ) nie będzie formułą zamknięta, a I niech będzie interpretacją. Wówczas:

vσ (Ai )
I
= 1 dla pewnego wartościowania σ wtw, gdy
I σI

(∃x1 , … , ∃xn A ) = 1 .

Przykład: A = p(x, y)

Domkniecie egzystencjalne A: A = ∃x ∃y p(x, y)

I = {N, {≥}, {}, {}}

∃x ∈ N ∃y ∈ N x ≥ y

v (p(x, y)) = 1
σI [x←0,y←1]

vσ (∃x ∃y p(x, y)) = 1


I

You might also like