1.2 Logika pierwszego rzędu 1.2.1 Język rachunku kwantyfikatorów
Transkrypt
1.2 Logika pierwszego rzędu 1.2.1 Język rachunku kwantyfikatorów
1.2 Logika pierwszego rzędu 1.2.1 Język rachunku kwantyfikatorów Dokonując formalizacji języka dowolnej dziedziny wiedzy, jak zostało to pokazane w stosownym podrozdziale, dla wszystkich wyraŜeń równokształtnych, reprezentujących tę sama wiedzę, stosujemy równokształtne schematy tych wyraŜeń: reprezentacjami wyraŜeń zdaniowych są formuły, a reprezentacjami nazw są termy, natomiast reprezentacjami klas równokształtnych funktorów nazwotwórczych i zdaniotwórczych są odpowiednio symbole funkcyjne oraz symbole predykatywne i symbole spójników. Gwoli ścisłości, naleŜy dodać, Ŝe mówiąc o klasach równokształtnych wyraŜeń mówimy o wiedzy dotyczącej budowy tych wyraŜeń, a więc o pojęciach oraz związkach pomiędzy tymi pojęciami. Czy otrzymany na drodze formalizacji język moŜemy określić jako język bezkontekstowy stosując notację BNF? PokaŜemy najpierw dla rachunku kwantyfikatorów, Ŝe tak: Definicja 1.2.1 Niech zbiór symboli terminalnych języka rachunku predykatów stanowi suma zbiorów: symboli zdań prostych S, symboli predykatywnych P, symboli stałych C oraz zmiennych V, dodatkowo Clog jest zbiorem symboli spójników i kwantyfikatorów, a M zbiorem symboli pomocniczych. Przyjmujemy, Ŝe S = {true, false, p1, p2, … }, P = {P11, P21, …, P12, P22, … }, gdzie indeks dolny oznacza numer danego predykatu, indeks górny oznacza liczbę przyłączanych argumentów, C = {c1, c2, c3, … }, V = {x1, x2, x3, …,}, Clog = {¬, ∧, ∨, ⇒, ⇔}, M = {nawiasy (, ), przecinek}. Jako symbole niedeklaratywne wprowadzamy: <argument>, <argumenty>, <atom>, <form>. Regułami produkcji języka są: <argument>::= x| c <argumenty>::= <argument>|<argumenty>,<argument> <atom>::= p|P(<argumenty>) <literał>::= <atom>|¬<atom> <form>::= <literał>|¬<form>|(<form> ∧ < form>)|(<form> ∨ < form>) |(<form> ⇒ < form>)|(<form> ⇔ < form>) |∀x<form>|∃x<form>, gdzie x∈V, c∈C, p∈S, P∈P. Słowa języka określone przez symbol <form> nazywamy formułami rachunku kwantyfikatorów. Zbiór wszystkich formuł oznaczamy przez Form. Przykład 1.2.1 Stosując zapis strzałkowy dla wywodu formuły pokaŜemy, Ŝe wyraŜenie (∃x1∀x2 P12(x1,x2) ⇒ P12(c1,x2)) jest formułą rachunku kwantyfikatorów: <form> → (<form> ⇒ < form>) → (∃x1<form> ⇒ <form>) → (∃x1∀x2<form> ⇒ <form>) → (∃x1∀x2<atom> ⇒ <atom>) → (∃x1∀x2P12(<argumenty>) ⇒ P12(<argumenty>))→ (∃x1∀x2P12(x1,x2) ⇒ P12(c1,x2)) . 1.2.2 Semantyka kwantyfikatorów i operacje konsekwencji – pełność rachunku Dotąd rozwaŜaliśmy schematy zdań będące reprezentacjami wiedzy o tym, w jaki sposób zdania złoŜone są zbudowane ze zdań prostych. Schematy zdań są formułami języka rachunku kwantyfikatorów naleŜącymi do zbioru Form, a więc zbudowane są zgodnie z regułami produkcji określającymi symbol <form>. Nie interesowało nas, czy zdanie reprezentuje wiedzę o pewnym stanie rzeczy, określonym w ramach rozwaŜanej dziedziny wiedzy, czy nie, tj. czy podstawowe składniki budowy zdania moŜemy zinterpretować w danej dziedzinie wiedzy, czy nie. Zinterpretowanie poszczególnych składników zdania nie oznacza, Ŝe cale zdanie reprezentuje wiedzę w danej dziedzinie. Np. zdanie „człowiek jest kamieniem” nie reprezentuje tego, Ŝe ludzi moŜna uznać za kamienie, bo taki związek nie zachodzi, chociaŜ kaŜdy ze składników wymienionego zdania moŜna zinterpretować w sposób właściwy w dziedzinie wiedzy o otaczającym nas świecie: są ludzie, są kamienie oraz jedne pojęcia zawierają się w drugich. Gdy moŜemy rozstrzygnąć, czy zdanie reprezentuje wiedzę w danej dziedzinie wiedzy, to mówimy, Ŝe ma wartość logiczną prawdy, a gdy moŜemy rozstrzygnąć, Ŝe zdanie nie reprezentuje wiedzy, to mówimy, Ŝe ma wartość logiczną fałszu w rozpatrywanej dziedzinie wiedzy. Formułom reprezentującym zdania prawdziwe przypisujemy wartość prawdy, a formułom reprezentującym zdania fałszywe przypisujemy wartość fałszu. Polski logik Alfred Tarski w latach trzydziestych XX w. opracował metodę przypisywania wartości logicznej formułom reprezentującym zdania opisujące wiedzę określoną przez wielosortowe struktury relacyjne. Dla formuł atomowych postaci <predykat>(<argumenty>) określił funkcję spełniania, która predykatowi przyporządkowywała pewną nazwę relacji z danej struktury relacyjnej a argumentum przyporządkowywała nazwy elementów naleŜące do określonych uniwersów. Otrzymany przy takim podstawieniu formuły napis, albo reprezentował wiedzę o zachodzeniu relacji, albo tej wiedzy nie reprezentował. Gdy dla formuł atomowych zachodzi w tym sensie rozumiana reprezentacja wiedzy, logicy mówią, Ŝe formuły przy danym podstawieniu są spełnione w danej strukturze relacyjnej lub Ŝe struktura ta jest modelem tych formuł. Funkcja spełniania moŜe być rozszerzona dla dowolnych formuł rachunku kwantyfikatorów, a następnie dla formuł logiki pierwszego rzędu, zawierających termy. W tym celu stosuje się pewne poniŜej opisane zasady interpretacji wartości dla złoŜonych formuł przy załoŜeniu, Ŝe znamy jak wartości logiczne przypisane są formułom atomowym. Zdolność człowieka (ogólniej agenta) do rozstrzygania czy pewne zdania są prawdziwe w rozwaŜanej dziedzinie wiedzy nazywana jest asertywnością tej dziedziny wiedzy przez danego człowieka (agenta). Z tego powodu, proste zdania uznane przez człowieka (agenta) za prawdziwe nazywane są asercjami. Nie moŜe więc dochodzić pomiędzy ludźmi do przekazywania sobie wiedzy logicznej o komunikatach dotyczących rozwaŜanej przez nich dziedziny wiedzy bez asertywności tych ludzi wobec rozwaŜanej dziedziny wiedzy. W tym kontekście istotna dopiero staje się wiedza o tym, jaka jest zaleŜność pomiędzy wartością logiczną zdania złoŜonego utworzonego przy pomocy spójników ze zdań prostych, a wartościami logicznymi tych zdań prostych. Aby móc reprezentować tego rodzaju wiedzę, wartości prawdy i fałszu oznaczymy odpowiednio symbolami 1 i 0. Niech Form* oznacza zbiór formuł zamkniętych, tj. takich które mogą być schematami pewnych asercji, a więc takimi formułami, w których wszystkie zmienne powiązane są jakimiś kwantyfikatorami, zgodnie z zasadami tworzenia schematów zdań. Określimy teraz funkcję v: Form*→{0,1} poprzez podanie tablic wartości logicznych dla formuł będących schematami zdań złoŜonych oraz sformułowanie stosownych zasad prawdziwościowych dla formuł poprzedzonych kwantyfikatorami lub dla negacji tych formuł. Funkcję v: Form*→{0,1} nazywamy interpretacją formuł. Stosując metajęzyk budowany jako język formalny składający się ze schematów formuł rachunku kwantyfikatorów, w którym symbole: A, B, C,… oznaczają dowolne formuły, a symbole A(x), B(x), … oznaczają Ŝe zmienna x jest w formułach A, B, … zmienną wolną (nie związaną kwantyfikatorem), określimy funkcję interpretacji w następujący sposób. W reprezentacji standardowej, będącej wynikiem formalizacji, wiedza o zasadach określania wartości logicznej zdań złoŜonych jest zazwyczaj przedstawiana za pomocą tabel prawdziwościowych, budowanych dla schematów tych zdań. Tabele prawdziwościowe dla formuł są wzorami, według których określamy wartość logiczną zdania złoŜonego w zaleŜności od wartości zdań składowych: A 0 0 1 1 B 0 1 0 1 ¬A 1 1 0 0 A∨B 0 1 1 1 A∧B 0 0 0 1 A⇒B 1 1 0 1 A⇔B 1 0 0 1 Tab. 1.2.1 Formuły, które są schematami tylko zadań prawdziwych nazywamy tautologiami, a takie, które są schematami tylko zdań fałszywych nazywamy kontrtautologiami. To czy formuła jest tautologią czy nie moŜemy sprawdzić korzystając z tabel prawdziwościowych. Np. kaŜda formuła postaci (A ∧ (B ∨ C)) ⇒ (¬C ⇒ A) jest tautologią, gdyŜ na podstawie tabel prawdziwościowych moŜna wykazać, Ŝe przy dowolnych wartościach logicznych składowych A, B, C formuła reprezentuje zadanie prawdziwe (Tab. 1.2.2) ZauwaŜmy, Ŝe na podstawie tabel prawdziwościowych dla spójników zdaniowych dysponujemy następującą wiedzą: • formuła ¬A jest tautologią, gdy dowolne zdanie o schemacie A jest fałszywe, co oznacza, Ŝe A jest kontrtautologią, • formuła A ∨ B jest tautologią, gdy w dowolnym zdaniu o schemacie A ∨ B co najmniej jedno ze zdań o schematach A, B jest prawdziwe, w szczególności, gdy jedna z formuł A lub B jest tautologią, • formuła A ∧ B jest tautologią, gdy w dowolnym zdaniu o schemacie A ∧ B oba zdania schematach A, B są prawdziwe, w szczególności, gdy obie formuły A i B są tautologiami, • formuła A ⇒ B jest tautologią, gdy w dowolnym zdaniu o schemacie A ⇒ B, jeŜeli zdanie o schemacie A jest prawdziwe, to zdanie o schemacie B jest prawdziwe, w szczególności, jeŜeli formuła A jest tautologią, to B jest teŜ tautologią, • formuła A ⇔ B jest tautologią, gdy w dowolnym zdaniu o schemacie A ⇔ B oba zdania o schematach A, B mają tę samą wartość logiczną, w szczególności, gdy obie formuły A i B są tautologiami lub kontrtautologiami, A B C B∨C 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 ¬C A ∧ (B ∨ C 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 ¬C ⇒ (A ∧ (B ∨ C))⇒(¬C ⇒ A) A 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 Tab. 1.2.2 RozwaŜmy teraz formuły poprzedzone kwantyfikatorami. Niech A(x) jest dowolną formułą, w której x jest jedyną zmienną wolną. Oznaczmy zbiór wszystkich zdań, których schematem jest ta formuła przez P, gdy wszystkie zdania tego zbioru są prawdziwe, przez F, gdy są fałszywe, a przez T, gdy niektóre zdania tego zbioru są prawdziwe, a niektóre fałszywe. Wiedzę o wartościach logicznych zdań, których schematem jest formuła ∀xA(x) lub formuła ∃xA(x) reprezentuje tabela A(x) P F T ∀xA(x) 1 0 0 ∃xA(x) 1 0 1 Tab. 1.2.3 Wiedzę reprezentowaną przez powyŜszą tabelę, dla dowolnych funkcji interpretacji, moŜemy teŜ sformułować następująco: • jeŜeli formuła ∀xA(x) jest schematem zdania prawdziwego, to formuła A(x) jest schematem zdań wśród których kaŜde zdanie jest prawdzie, np. zdanie o schemacie A(c), gdzie wybór termu c nie zaleŜy od formuły A(x), a jedynie od dziedziny argumentu x, jest więc dowolny, • jeŜeli formuła ∃xA(x) jest schematem zdania prawdziwego, to formuła A(x) jest schematem zdań wśród których co najmniej jedno zdanie jest prawdzie, np. zdanie o schemacie A(c), gdzie wybór termu c zaleŜy od formuły A(x) i od dziedziny argumentu x, a więc moŜe być dokonany tylko raz podczas formalizacji tekstu, • jeŜeli formuła ¬∀xA(x) jest schematem zdania prawdziwego, to formuła ¬A(x) jest schematem zdań wśród których co najmniej jedno zdanie jest prawdzie, np. zdanie o schemacie ¬A(c), gdzie wybór termu c zaleŜy od formuły A(x) i od dziedziny argumentu x, a więc moŜe być dokonany tylko raz podczas formalizacji tekstu, • jeŜeli formuła ¬∃xA(x) jest schematem zdania prawdziwego, to formuła ¬A(x) jest schematem zdań wśród których kaŜde zdanie jest prawdzie, np. zdanie o schemacie ¬A(c), gdzie wybór termu c nie zaleŜy od formuły A(x), a jedynie od dziedziny argumentu x, jest więc dowolny, Definicja 1.2.2.1 Niech dla wyróŜnionego zbioru Atom atomów (formuł atomowych) języka rachunku kwantyfikatorów określona jest funkcja v:Atom→{0,1}. Rozszerzamy tę funkcję do zbioru Form* formuł wyprowadzonych z wyróŜnionych atomów za pomocą reguł produkcji gramatyki języka Form, w sposób następujący: (ZN) v(¬A)=1 wttw nieprawda, Ŝe v(A)=1, (ZNN) v(¬¬A)=1 wttw v(A)=1, (ZK) v(A∧B)=1 wttw v(A)=1 i v(B)=1, (ZNK) v(¬(A∧B))=1 wttw nieprawda, Ŝe v(A)=1 lub nieprawda, Ŝe v(B)=1, (ZA) v(A∨B)=1 wttw v(A)=1 lub v(B)=1, (ZNK) v(¬(A∨B))=1 wttw nieprawda, Ŝe v(A)=1 i nieprawda, Ŝe v(B)=1, (ZC) v(A⇒B)=1 wttw nieprawda, ze v(A)=1 lub v(B)=1, (ZNK) v(¬(A⇒B))=1 wttw v(A)=1 i nieprawda, Ŝe v(B)=1, (ZE) v(A⇔B)=1 wttw v(A)=1 i v(B)=1 lub nieprawda, Ŝe v(A)=1 i nieprawda, Ŝe v(B)=1, (ZNE) v(¬(A⇔B))=1 wttw nieprawda, Ŝe v(A)=1 i v(B)=1 lub v(A)=1 i nieprawda, Ŝe v(B)=1, (ZEX) v(∃xA(x))=1 wttw istnieje taka stała c dotąd niewystępująca nigdzie w sprawdzaniu formuł, Ŝe v(A(c))=1, (ZNEX) v(¬∃xA(x))=1 wttw dla dowolnej stałej c v(¬A(c))=1, (ZALLX) v(∀xA(x))=1 wttw dla dowolnej stałej c v(A(c))=1, (ZNALLX) v(¬∀xA(x))=1 wttw istnieje taka stała c dotąd niewystępująca nigdzie w sprawdzaniu formuł, Ŝe v(¬A(c))=1, to tak określoną funkcję v: Form*→{1} nazywamy interpretacją rachunku kwantyfikatorów. formuł Wykorzystując powyŜszą wiedzę, sprawdzanie czy schemat danego zdania jest tautologią moŜna dokonywać na dwa sposoby: 1. zbadać, czy wartość logiczna prawdziwego zdania złoŜonego o danym schemacie nie zaleŜy od wartości logicznej zdań składowych – jest to sprawdzanie wprost, 2. zbadać, czy załoŜenie, Ŝe zdanie złoŜone o danym schemacie ma wartość logiczną fałszu, moŜe prowadzić do sytuacji, w której zdanie przyjmuje dwie róŜne wartości logiczne czy teŜ, w której pewne zdanie i jego negacja są jednocześnie prawdziwe lub jednocześnie fałszywe, tzn. zachodzi sprzeczność – jest to sprawdzanie nie wprost. Zastosowanie definicji 1.2.2 do sprawdzenia tautologiczności formuły rachunku kwantyfikatorów moŜemy prowadzić dla dowolnych funkcji interpretacji w dwóch typach notacji: drzewowej i linearnego zapisu poszczególnych kroków sprawdzenia. W notacji drzewowej, kaŜdy wierzchołek drzewa jest zapisem formuły uzyskanej z formuły w poprzednim wierzchołku po zastosowaniu jednej z zasad sprawdzania wymienionych w definicji. W linearnej notacji sprawdzenia formuły, kaŜdy nowy wiersz sprawdzenia jest numerowany (etykietowany) numerem kolejnym, a zastosowanie rozwidlenia, jak w przypadku alternatywy, prowadzi do kolejnego numerowania kaŜdej z dróg, a dla kaŜdej drogi alternatywy po dopisaniu kropce, kolejnym numerowaniu następnych kroków sprawdzenia. Np. a.2 v(A ∨ B)=1, b.1 v(A)=1, ………. c.1 v(B)=1, ………. lub 2.3 v(A ∨ B)=1, 2.4.1 v(A)=1, …………. 2.5.1 v(B)=1, ………….. Przedstawmy schematy notacji zasad sprawdzania tautologiczności formuł wystarczających w metodzie niewprost. Te zasady wymienione są w definicji 1.2.2 . Zaprezentujemy je po lewej stronie w notacji linearnej, a z prawej strony w notacji drzewowej: Zasada negacji formuły (ZN) a: v(¬A)=1, …………………... b: v(A)=0 v(¬A)=1 ……………….. v(A)=0 Zasada podwójnej negacji formuły (ZNN) v(¬¬A)=1 a: v(¬¬A)=1, ………………….. b: v(A)=1 …………… ….. v(A)=1 Zasada koniunkcji (ZK) a: v(A∧B)=1, …………………. b: v(A)=1 ………………… c: v(B)=1 v(A∧B)=1 z a:, ……………….. z b: v(A)=1 ……………….. v(B)=1 Zasada wywodu rozgałęzionego dla alternatywy (ZA) a: v(A ∨ B)=1, ……….. b: v(A)=1 ………. c: v(B)=1 ………. v(A∨B)=1 (zał. dod.), ……………….. (zał. dod.), v(A)=1 Zasada negacji alternatywy (ZNA) a: v(¬(A∨B))=1, …………………. b: v(¬A)=1 ………………… c: v(¬B)=1 z a:, z b: v(¬(A∨B)) =1 ……………….. v(¬A)=1 ……………….. v(¬B)=1 v(B)=1 Zasada wywodu rozgałęzionego dla negacji koniunkcji (ZNK) a: v(¬(A ∧ B))=1, …………… b: v(¬A)=1 ………. c: v(¬B)=1 ………. v(¬(A ∧ B))=1 (zał. dod.), ……………….. (zał. dod.), v(¬A)=1 v(¬B)=1 Zasada negacji implikacji (ZNC) a: v(¬(A⇒B))=1, …………………. b: v(A)=1 ………………… c: v(¬B)=1 v(¬(A⇒B))=1 z a:, ……………….. z b: v(A)=1 ……………….. v(¬B)=1 Zasada wywodu rozgałęzionego dla implikacji (ZC) a: v(A ⇒ B)=1, ………… b: v(¬A)=1 ………. c: v(B)=1 ………. v(A⇒B)=1 (zał. dod.), ……………….. (zał. dod.), v(¬A)=1 v(B)=1 Zasada wywodu rozgałęzionego dla równowaŜności (ZE) a: v(A ⇔ B)=1, b: v(A∧B)=1 ………. c: v(¬A∧¬B)=1 ………. v(A⇔B)=1 (zał. dod.), ……………….. (zał. dod.), v(A∧B)=1 v(¬A∧¬B)=1 Zasada wywodu rozgałęzionego dla negacji równowaŜności (ZNE) a: v(¬(A ⇔ B))=1, b: v(¬A∧B)=1 (zał. dod.), ………. (zał. dod.), c: v(A∧¬B)=1 ………. v(¬(A ⇔ B))=1 ……………….. v(¬A∧B)=1 Zasada kwantyfikatora egzystencjalnego (ZEX) a: v(∃xA(x))=1, …………….. b: v(A(c))=1 z a:, …………… v(∃xA(x))=1 ……………….. v(A(c))=1 dla stałej c nie uŜywanej dotąd we sprawdzaniu Zasada kwantyfikatora generalnego (ZALLX) a: v(∀xA(x))=1, …………….. b: v(A(c))=1 z a:, …………… v(∀xA(x))=1 ……………….. v(A(c))=1 dla dowolnej stałej c v(A∧¬B)=1 Zasada negacji kwantyfikatora egzystencjalnego (ZNEX) a: v(¬∃xA(x))=1, …………….. b: v(¬A(c))=1 z a:, …………… v(¬∃xA(x))= 1 ……………….. v(¬A(c))=1 dla dowolnej stałej c Zasada negacji kwantyfikatora generalnego (ZNALLX) a: v(¬∀xA(x))=1, …………….. b: v(¬A(c))=1 z a:, …………… v(¬∀xA(x)) =1 ……………….. v(¬A(c))=1 dla stałej c nie uŜywanej dotąd we sprawdzaniu Algorytm sprawdzania tautologiczności formuł 1. RozwaŜamy negację sprawdzanej formuły. 2. Stosujemy zasady sprawdzania wartości logicznej wychodząc od negacji sprawdzanej formuły, a zasady (ZALLX), (ZNEX), pozwalające wstawić dowolne stałe stosujemy, gdy juŜ nie moŜemy zastosować zasad (NALLX), (ZEX), podstawiając juŜ wcześniej uŜyte stałe tak aby w dalszym ciągu moŜna było uzyskać wartościowania sprzeczne. 3. Sprawdzenie kończymy w danej linii sprawdzania (na drodze drzewa sprawdzania), gdy natkniemy się na sprzeczność lub otrzymamy sprawdzenie literału (atomu lub negacji atomu), a dalsze zastosowanie zasad sprawdzanie nie moŜe prowadzić do uzyskania nowych literałów. 4. Napotkanie zakończenia według pkt. 3, oraz wykazanie, Ŝe nie daje się rozstrzygnąć czy uzyskamy sprzeczność końcowego literału z jakimś członem na danej drodze dowodu - sprzeczności nie ma lub poszukiwanie jej musi prowadzić do zapętlenia rozumowania; gdy sprzeczności nie ma to sprawdzanie badanej formuły kończy się wynikiem: formuła nie jest tautologią, w przypadku zapętlenia sprawdzania zakończenie jest nierozstrzygalne. 5. Napotkanie sprzeczności w kaŜdej linii sprawdzania (drogi drzewa sprawdzania) kończy sprawdzanie tautologiczności badanej formuły wynikiem: formuła jest tautologią. Przykład 1.2.2.1 (((p1⇒p2)∨¬p1)⇒p2) Sprawdzenie linearne 1 v(¬(((p1⇒p2)∨¬p1)⇒p2))=1 zał. nwp, 2 v(((p1⇒p2)∨¬p1))=1 z 1, (NC), 3 v(¬p2)=1 z 1, (NC), 4.1 v((p1⇒p2))=1 2, zał. dod., 4.2.1 v(¬p1)=1 4.1, zał. dod. W 4.2.1 literał ¬p1 nie pozostaje w sprzeczności z p1, gdyŜ ta formuła nie występuje przed zał. 4.2.1, zatem badana formuła nie jest tautologią Sprawdzenie drzewowe v(¬(((p1⇒p2)∨¬p1)⇒p2))=1 v(((p1⇒p2)∨¬p1))=1 v(¬p2)=1 v(p1⇒p2)=1 v(¬p1)=1 Literał ¬p1 nie pozostaje w sprzeczności z literałem p1 na drodze drzewa zaznaczonej przerywana kreską: badana formuła nie jest tautologią. Przykład 1.2.2.2 (¬(p1⇒p2)⇔(p1∧¬p2)) Sprawdzenie linearne 1 v(¬(¬(p1⇒p2)⇔(p1∧¬p2)))=1 zał.nwp, 2.1 v((¬¬(p1⇒p2)∧(p1∧¬p2))=1 1, (ZNE), zał.dod., 2.2 v((p1⇒p2))=1 2.1, (ZNN),(ZK), 2.3 v((p1∧¬p2))=1 2.1, (ZK), 2.4 v(p1)=1 2.3, (ZK), 2.5 v(¬p2)=1 2.3,(ZK), 2.6.1 v(¬p1)=1 2.6 2.2, (ZK), zał. dod., sprzeczność 2.4 z 2.6.1, 2.7.1 v(p2)=1 2.2, (ZK), zał. dod., 2.7 sprzeczność 2.5 z 2.7.1, 3.1 v((¬(p1⇒p2)∧¬(p1∧¬p2))=1 1, (ZNE), zał.dod., 3.2 v((¬(p1⇒p2))=1 3.1, (ZK), 3.3 v(¬(p1∧¬p2))=1 3.1, (ZK), 3.4 v(p1)=1 3.2, (ZNC), 3.5 v(¬p2)=1 3.2, (ZNC), 3.6.1 v(¬p1)=1 3.6 3.3, (ZNK), zał.dod., sprzeczność 3.4 z 3.6.1, 3.7.1 v(¬¬p2)=1 3.3, (ZNK), zał.dod., 3.7.2 v(p2)=1 3.7.1, (ZNN), 3.7 sprzeczność 3.5 z 3.7.2. PoniewaŜ sprzeczności wystąpiły we wszystkich określonych przez kolejne załoŜenia dodatkowe liniach sprawdzania negacji formuły, więc badana formuła jest tautologią. Sprawdzenie w notacji drzewowej v(¬(¬(p1⇒p2)⇔(p1∧¬p2)))=1 v((¬¬(p1⇒p2)∧(p1∧¬p2))=1 v((¬(p1⇒p2)∧¬(p1∧¬p2))=1 v((p1⇒p2))=1 v(¬(p1⇒p2))=1 v((p1∧¬p2))=1 v(¬(p1∧¬p2))=1 v(p1)=1 v(p1)=1 v(¬p2)=1 v(¬p2)=1 v(¬p1)=1 v(p2)=1 v(¬p1)=1 v(¬¬p2)=1 v(p2)=1 Idąc od wartości literałów umieszczonych na końcach drzewa do wierzchołka wszędzie napotykamy na sprzeczności, a więc: badana formuła jest tautologią. Przykład 1.2.2.3 Prawo przenoszenia kwantyfikatora generalnego do jednego ze składników alternatywy: (∀x(A ∨ B(x)) ⇔ (A ∨ ∀xB(x))). Sprawdzenie w notacji linearnej 1 v(¬(∀x(A ∨ B(x)) ⇔ (A ∨ ∀xB(x))))=1 zał.nwp, 2.1 v((¬∀x(A ∨ B(x)) ∧ (A ∨ ∀xB(x))))=1 1, (ZNE), zał. dod., 2.2 v(¬∀x(A ∨ B(x)))=1 2.1,(ZK), 2.3 v((A ∨ ∀xB(x)))=1 2.1, (ZK), 2.4 v(¬(A ∨ B(c1)))=1 2.2,(ZNALLX), 2.5 v(¬A)=1 2.4, (ZNA), 2.6 v(¬B(c1))=1 2.4, (ZNA), 2.7.1 v(A)=1 2.7 2.3, (ZA), zał.dod., sprzeczność 2.5 z 2.7.1, 2.8.1 v(∀xB(x))=1 2.3, (ZA), zał.dod., 2.8.2 v(B(c1))=1 2.8.1, (ZALLX), 2.8 sprzeczność 2.6 z 2.8.2, 3.1 v((∀x(A ∨ B(x)) ∧ ¬ (A ∨ ∀xB(x))))=1 1, (ZNE), zał. dod., 3.2 v(∀x(A ∨ B(x)))=1 3.1, (ZK), 3.3 v(¬ (A ∨ ∀xB(x)))=1 3.1, (ZK), 3.4 v(¬ A)=1 3.3, (ZNA), 3.5 v(¬B(c2))=1 3.3, (ZNA), 3.6 v((A ∨ B(c2)))=1 3.2, (ZALLX), 3.7.1 v(A)=1 3.7 sprzeczność 3.4 z 3.7.1, 3.8.1 v(B(c2))=1 3.8 3.6, (ZA),zał.dod., 3.6, (ZA), zał.dod., sprzeczność 3.5 z 3.8.1. We wszystkich liniach rozgałęzień sprawdzania formuły wystąpiły sprzeczności, a więc: badana formuła jest tautologią dla dowolnych podstawień innych formuł za formułę zamkniętą A i formułę B(x). Sprawdzenie w notacji drzewowej v(¬(∀x(A ∨ B(x)) ⇔ (A ∨ ∀xB(x))))=1 v((¬∀x(A ∨ B(x)) ∧ (A ∨ ∀xB(x))))=1 v( (∀x(A ∨ B(x)) ∧ ¬ (A ∨ ∀xB(x))))=1 v(¬∀x(A ∨ B(x)))=1 v(∀x(A ∨ B(x)))=1 v((A ∨ ∀xB(x)))=1 v(¬ (A ∨ ∀xB(x)))=1 v(¬(A ∨ B(c1))=1 v(¬ A)=1 v(¬A))=1 v(¬∀xB(x))=1 v(¬B(c1))=1 v(¬B(c2))=1 v(A)=1 v(∀xB(x))=1 v(B(c1))=1 v(A ∨ B(c2))=1 v(A)=1 v(B(c2))=1 Idąc od wartości literałów umieszczonych na końcach drzewa do wierzchołka wszędzie napotykamy na sprzeczności, a więc: badana formuła jest tautologią dla dowolnych podstawień innych formuł za formułę zamkniętą A i formułę B(x). ZauwaŜmy, Ŝe sprawdzanie tautologiczności bazuje na wnioskowaniu, tak więc opisane zasady sprawdzania moŜna precyzyjniej przedstawić w postaci następujących schematów – reguł wnioskowania (wywodu, derywacji): (NN) ¬¬A A A∧ B A (K) (NK) ¬( A ∧ B) ¬A | ¬B B (A) A∨ B A| B ¬( A ∨ B) ¬A ¬B ¬( A ⇒ B) (NC) A ¬B ¬( A ⇔ B) (NE) (¬A ∧ B ) | ( A ∧ ¬B ) (NA) (C) A⇒ B ¬A | B (E) A⇔ B ( A ∧ B ) | (¬A ∧ ¬B ) (EX) ∃xA( x) A(c) (NEX) (ALL) ∀xA( x) A(c) (NALL) ¬∃xA( x) ¬A( x) ¬∀x( Ax) ¬A(c) Gdzie znak „|” oznacza rozgałęzienie wywodu, a ograniczenia nałoŜone na term są takie jak poprzednio. Dla stałych c w regułach , EX, NEX, ALL, NALL stosujemy te same warunki co dla odpowiednich zasad sprawdzania. Schemat formuły na poziomą kreską oznacza, Ŝe formuła ta występuje jako wiersz dowodu, a schemat formuły napisany pod kreską poziomą, oznacza, ze formułę taka moŜemy dopisać do tekstu dowodu jako nowy jego wiersz. Logicy w XX w. system dowodzenie wykorzystujący powyŜsze reguły nazwali dla zapisu linearnego systemem tabel semantycznych, a dla notacji drzewowej metodą tabel semantycznych. Przyjmijmy, Ŝe zamiast pisać wyraŜenie mówiące o prawdziwości formuły, w tekstach sprawdzania tautologiczności formuł będziemy pisali tylko samą formułę, a nazwy zasad sprawdzania zastąpimy odpowiadającymi tym zasadom nazwami reguł wnioskowania. Wtedy tekst sprawdzania tautologiczności formuły metodą niewprost przekształcony zostanie w tekst dowodu niewprost z uŜyciem reguł wnioskowania systemu tabel semantycznych, a drzewa sprawdzania staną się tabelami semantycznymi. Otrzymamy dowód badanej formuły, tak więc ta formuła będzie tezą rachunku kwantyfikatorów w systemie tabel semantycznych. Dokonując proponowane przekształcenie linearnego tekstu sprawdzania formuły rachunku kwantyfikatorów w Przykładzie 1.2.2.3 otrzymamy następujący tekst dowodu tej formuły Przykład 1.2.2.4 (∀x(A ∨ B(x)) ⇔ (A ∨ ∀xB(x))). Dowód: 1 ¬(∀x(A ∨ B(x)) ⇔ (A ∨ ∀xB(x))) zał.nwp, 2.1 (¬∀x(A ∨ B(x)) ∧ (A ∨ ∀xB(x))) 1, (NE), zał. dod., 2.2 ¬∀x(A ∨ B(x)) 2.1,(K), 2.3 (A ∨ ∀xB(x)) 2.1, (K), 2.4 ¬(A ∨ B(c1)) 2.2,(NALLX), 2.5 ¬A 2.4, (NA), 2.6 ¬B(c1) 2.4, (NA), 2.7.1 A 2.7 2.3, (A), zał.dod., sprzeczność 2.5 z 2.7.1, 2.8.1 ∀xB(x) 2.3, (A), zał.dod., 2.8.2 B(c1) 2.8.1, (ALLX), 2.8 sprzeczność 2.6 z 2.8.2, 3.1 (∀x(A ∨ B(x)) ∧ ¬ (A ∨ ∀xB(x))) 1, (NE), zał. dod., 3.2 ∀x(A ∨ B(x)) 3.1, (K), 3.3 ¬ (A ∨ ∀xB(x)) 3.1, (K), 3.4 ¬A 3.3, (NA), 3.5 ¬B(c2) 3.3, (NA), 3.6 (A ∨ B(c2)) 3.2, (ALLX), 3.7.1 A 3.7 sprzeczność 3.4 z 3.7.1, 3.8.1 B(c2) 3.8 3.6, (A),zał.dod., sprzeczność 3.5 z 3.8.1. 3.6, (A), zał.dod., Nietrudno zauwaŜyć, Ŝe zaprezentowane wyŜej reguły wywodu formuł w rachunku kwantyfikatorów pozwalają budować dowody niewprost dla tych formuł w sposób równokształtny do pokazanego sprawdzania tautologiczności tych formuł. Tak więc zachodzi Metatwierdzenie 1.2.2.1 (o pełności) Formuły dowodzone w systemie tabel semantycznych są tezami systemu wttw gdy interpretowane są jako tautologie. W powyŜszym kontekście, o system tabel semantycznych nazywamy systemem pełnym. We sprawdzaniu tautologiczności dowolnej formuły zamkniętej A stosujemy pojęcie wynikania logicznego formuła A z pewnego zbioru X formuł poprzedzających ja tym sprawdzaniu, co zapisujemy: X |= A. Definicja 1.2.2.2 (wynikania logicznego) 1. |= A =df v(A) = 1, 2. X |= A =df istnieją formuły A1, A2,…,An ∈ X takie, Ŝe v((A1∧ A2 ∧…∧ An) ⇒ A) = 1. Odpowiednikiem wynikania w dowodach tez jest ich wyprowadzanie, co zapisujemy: X |- A. Definicja 1.2.2.3 (wyprowadzania, wywodu formuł) 3. |- A =df A jest tezą, 4. X |= A =df istnieją formuły A1, A2,…,An ∈ X takie, Ŝe formuła (A1∧ A2 ∧…∧ An) ⇒ A jest tezą. Metatwierdzenie 1.2.2.2 System tabel semantycznych jest systemem pełnym wttw gdy dla dowolnego zbioru X formuł zamkniętych oraz dowolnej formuły zamkniętej A: X |- A wttw gdy X|= A. Metoda tabel semantycznych jest takŜe skuteczna do badania poprawności rozumowań prezentowanych w tekstach wyraŜających wiedzę z dowolnych dziedzin oraz do określenia szerokiej klasy formuł (tzw. klauzul hornowskich), dla których moŜliwa jest automatyzacja rozumowań przez komputery. Tak rozumiana automatyzacja jest przedmiotem programowania logicznego. Tabele praw rachunku zdań L1. (modus ponendo ponens) (((A⇒B)∧ A) ⇒ B) L2. (modus tollendo tollens) (((A⇒B)∧ ¬B) ⇒ ¬A) L3. (modus tollendo ponens) (((A∨B)∧ ¬B) ⇒ A) L4. (prawo transpozycji) ((A ⇒ B) ⇔ (¬B ⇒ ¬A)) L5. (prawo redukcji do absurdu) (((A ⇒ B) ∧ (A ⇒ ¬B)) ⇒ ¬A) L6. (prawo negacji implikacji) (¬(A ⇒ B) ⇔ (A ∧ ¬B)) L7. (prawo de Morgana dla koniunkcji) (¬(A ∧ B) ⇔ (¬A ∨ ¬B)) L8. (prawo de Morgana dla alternatywy) (¬(A ∨ B) ⇔ (¬A ∧ ¬B)) L9. (sylogizm hipotetyczny) (((A ⇒ B) ∧ (B ⇒ C)) ⇒ (A ⇒ C)) L10. (dylemat konstrukcyjny prosty) ((((A ⇒ C) ∧ (B ⇒ C)) ∧ (A ∨ B)) ⇒ C) L11. (dylemat konstrukcyjny złoŜony) ((((A ⇒ C) ∧ (B ⇒ D)) ∧ (A ∨ B)) ⇒ (C∨ D)) Tablice praw rachunku kwantyfikatorów L12. (prawo de Morgana dla kwantyfikatora generalnego) (¬∀xA(x) ⇔ ∃x(¬A(x))) L13. (prawo de Morgana dla kwantyfikatora egzystencjalnego) (¬∃xA(x) ⇔ ∀x(¬A(x))) (prawa de Morgana dla kwantyfikatorów o ograniczonym zasięgu) ∀(x|D(x)) A =df ∀x (D(x) ⇒ A), ∃(x|D(x)) A =df ∃x (D (x) ∧ A) L14. (¬∀(x|A(x))B(x) ⇔ ∃(x|A(x))(¬B(x))) L15. (¬∃(x|A(x))B(x) ⇔ ∀(x|A(x))(¬B(x))) L16. (pierwsze prawo rozkładu kwantyfikatora generalnego na implikację) (∀x(A(x) ⇒ B(x)) ⇒ (∀xA(x) ⇒ ∀xB(x))) L17. (drugie prawo rozkładu kwantyfikatora generalnego na implikację) (∀x(A(x) ⇒ B(x)) ⇒ (∃xA(x) ⇒ ∃xB(x))) L18. ( prawo rozkładu kwantyfikatora generalnego na koniunkcję) (∀x(A(x) ∧ B(x)) ⇔ (∀xA(x) ∧ ∀xB(x))) L19. ( prawo rozkładu kwantyfikatora egzystencjalnego na koniunkcję) (∃x(A(x) ∧ B(x)) ⇒ (∃xA(x) ∧ ∃xB(x))) L20. ( prawo rozkładu kwantyfikatora egzystencjalnego na koniunkcję) (∃x(A(x) ∧ B(x)) ⇒ (∃xA(x) ∧ ∃xB(x))) L21. ( prawo rozkładu kwantyfikatora egzystencjalnego na alternatywę) (∃x(A(x) ∨ B(x)) ⇔ (∃xA(x) ∨ ∃xB(x))) L22. ( prawo wyłączania kwantyfikatora egzystencjalnego przed alternatywę) ((∃xA(x) ∨ ∃xB(x))) ⇒ ∃x(A(x) ∨ B(x))) L23. (prawo przenoszenia kwantyfikatora generalnego do następnika implikacji) (∀x(A ⇒ B(x)) ⇔ (A ⇒ ∀xB(x))) L24. (prawo przenoszenia kwantyfikatora egzystencjalnego do następnika implikacji) (∃x(A ⇒ B(x)) ⇔ (A ⇒ ∃xB(x))) L25. (prawo przenoszenia kwantyfikatora generalnego do poprzednika implikacji) (∀x(A(x) ⇒ B) ⇒ (∀xA(x) ⇒ B)) L26. (prawo przenoszenia kwantyfikatora egzystencjalnego do poprzednika implikacji) (∃x(A(x) ⇒ B) ⇒ (∃xA(x) ⇒ B)) L27. (prawo przenoszenia kwantyfikatora generalnego do jednego ze składników alternatywy) (∀x(A ∨ B(x)) ⇔ (A ∨ ∀xB(x))) L28. (prawo przenoszenia kwantyfikatora generalnego do jednego ze składników koniunkcji) (∀x(A ∧ B(x)) ⇔ (A ∧ ∀xB(x))) L29. (prawo przenoszenia kwantyfikatora egzystencjalnego do jednego ze składników alternatywy) (∃x(A ∨ B(x)) ⇔ (A ∨ ∃xB(x))) L30. (prawo przenoszenia kwantyfikatora egzystencjalnego do jednego ze składników koniunkcji) (∃x(A ∧ B(x)) ⇔ (A ∧ ∃xB(x))) L31. (prawo przestawiania kwantyfikatora generalnego) (∀x∀yA(x,y) ⇔ ∀y∀xA(x,y)) L32. (prawo przestawiania kwantyfikatora egzystencjalnego) (∃x∃yA(x,y) ⇔ ∃y∃xA(x,y)) L33. (prawo przestawiania kwantyfikatora egzystencjalnego z generalnym) (∃x∀yA(x,y) ⇒ ∀y∃xA(x,y))