Początek Gramatyka Kwantyfikatory Poprawność Logika obliczeniowa Instytut Informatyki Początek Gramatyka Kwantyfikatory Poprawność Plan wykładu 1 Na (dobry) początek Zrozumieć słowa Oswoić znaki 2 Gramatyka rachunku predykatów Podstawowe symbole Gramatyka rachunku predykatów Termy i formuły 3 Wyrażenia z kwantyfikatorami Zmienne kwantyfikowane Domknięcie formuły 4 Badanie poprawności formuł Drzewo wywodu i struktury Indukcja strukturalna
Składnia rachunku predykatów pierwszego rzędu Składnia języka formalnego Składnia oznacza reguły tworzenia wyrażeń języka z elementarnych symboli (alfabetu). Język opisujemy za pomocą składni i semantyki. Składnia rachunku predykatów pierwszego rzędu Rachunek predykatów pierwszego rzędu Rachunek predykatów jest systemem (językiem) formalnym, który wprowadzimy w dalszej części tego wykładu.
Alfabet grecki Symbole z zakresu logiki Operatory rachunku zdań : NOT negacja nieprawda, że AND koniunkcja i OR alternatywa lub IMP implikacja jeżeli... to EQV równoważność wtedy i tylko wtedy XOR alternatywa wykluczająca albo (dysjunkcja) NAND negacja koniunkcji NOR negacja alternatywy
Kwantyfikatory Kwantyfikator uniwersalny Symbol to kwantyfikator uniwersalny, który odczytujemy dla każdego. Kwantyfikator egzystencjalny Symbol to kwantyfikator egzystencjalny, który odczytujemy istnieje. Symbole z zakresu teorii zbiorów x X X Y x jest elementem zbioru X zbiór X jest podzbiorem zbioru Y X Y ( x x X x Y ) X Y suma (unia) zbiorów X i Y x X Y (x X x Y ) X Y wspólna część (przekrój) zbiorów X i Y x X Y (x X x Y )
Symbole z zakresu teorii zbiorów koliber PTAKI PTAKI ZWIERZĘTA PTAKI ZWIERZĘTA PTAKI ZWIERZĘTA koliber jest elementem (należy do) zbioru PTAKI zbiór PTAKI jest podzbiorem zbioru ZWIERZĘTA suma (unia) zbiorów PTAKI i ZWIERZĘTA wspólna część (przekrój) zbiorów X i Y Zbiory symboli podstawowych W rachunku predykatów wyróżniamy cztery przeliczalne zbiory symboli podstawowych: A - zbiór stałych, V - zbiór zmiennych, P - zbiór symboli predykatywnych, F - zbiór symboli funkcyjnych. Zwykle: A = {a, b, c} V = {x, y, z} P = {p, q, r} F = {f, g, h}
Operatory W rachunku predykatów występują te same operatory, które znamy z rachunku zdań, czyli: oraz - negacja, - koniunkcja, - alternatywa (dysjunkcja), - implikacja, - równoważność, - alternatywa wykluczająca, - kwantyfikator uniwersalny, - kwantyfikator egzystencjalny. Wyrażenia rachunku predykatów Definicja Każdy skończony ciąg symboli podstawowych i operatorów rachunku predykatów nazywamy wyrażeniem języka rachunku predykatów. Przykłady x y a f (a; x) p p(x, f (a, x)) x y( p(x, y) p(y, x)) x y a f (a; x) p x y a f (a; x) p x y (p(x) p(y)) Uwaga! Nie każde wyrażenie jest formułą języka rachunku predykatów.
Reguły konstrukcji formuł rachunku predykatów Formułą rachunku predykatów nazywamy wyrażenie skonstruowane zgodnie z następującą gramatyką: term ::= x x V term ::= a a A term ::= f(lista termów) f F lista termów ::= term term,lista termów atom ::= p(lista termów) p P form ::= atom form ::= form form ::= form form podobnie dla,,... form ::= x form x V form ::= x form x V Termy Term Term jest to stała, zmienna lub symbol funkcyjny z listą termów w nawiasach. Termy f (x, y) a Term nie jest formułą rachunku predykatów! Term może być argumentem funkcji lub predykatu.
Szczególne formuły rachunku predykatów Atom Atom jest to symbol predykatywny, z listą termów w nawiasach. Literał Literał jest to atom lub negacja atomu. Klauzula Klauzula jest to alternatywa literałów. Atomy p(a, x) q(x) Literał q(a, b, c) Klauzula p(a, b) q(x, y) Więcej przykładów Termy a x f (g(x), y)) g(f (a, g(b))) Atomy (formuły proste) p(a, b) p(x, f (a, x)) q(f (a, a), f (g(x), g(x))) p(a, b, g(x, y)) Formuły złożone 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))
Inne języki formalne - Datalog Fakty Każdy fakt składa się z: predykatu, czyli nazwy relacji: jest rodzicem listy argumentów w nawiasach: (drogo, frodo) kropki na końcu jest rodzicem(drogo, frodo). Reguły Każda reguła składa się z: nagłówka: atomu symbolu :- zwykle czytanego jako słowo jeżeli treści: jednego lub więcej atomów połączonych spójnikami logicznymi i (przecinek) oraz lub ( ) jest przodkiem(x, Z):- jest rodzicem(x, Y), jest przodkiem(y, Z). Zmienne kwantyfikowane Zmienna x w kwantyfikowanej formule postaci xa 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(x 1,..., x n ) oznacza, że zbiór zmiennych wolnych formuły A jest podzbiorem zbioru {x 1,..., x n }. 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łady 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 czytelna postać A A = x p(x) q(y)
Formuła zamknięta Definicja Formuła niezawierająca zmiennych wolnych jest nazywana formułą zamkniętą. Domknięcie uniwersalne Definicja Jeśli {x 1,..., x n } są wszystkimi zmiennymi wolnymi formuły A, to domknięciem uniwersalnym formuły A jest formuła x 1... x n A, Przykład A = x p(x) q(y) y( x p(x) q(y))
Domknięcie egzystencjalne Definicja Jeżeli {x 1,..., x n } są wszystkimi zmiennymi wolnymi formuły A, to domknięciem egzystencjalnym formuły A jest formuła x 1... x n A. Przykład A = x p(x) q(y) y( x p(x) q(y)) Drzewo wywodu dla formuły Czy poniższe wyrażenie jest formułą rachunku predykatów? ((p(x) q(y)) p(x)) p(x) form p(x) form p(x) p(x) q(y)
Główny operator formuły Definicja Jezeli A nie jest formułą atomową, to operator wystepujący w korzeniu drzewa wywodu A jest nazywany głównym operatorem formuły A. Drzewo struktury Przykład ((p(x) q(y)) p(x)) p(x) p(x) q(y) p(x) p(x)
Odwrotna Notacja Polska (ONP) Przykład (p(x) ((q(y) r(z)) (s(u) p(x)))) ( s) Czy można się pozbyć nawiasów? Tak. Podajemy najpierw argumenty a potem operator. ONP p(x) q(y) r(z) s(u) p(x) s Odwrotna Notacja Polska Dlaczego Odwrotna Notacja Polska? Jan Łukasiewicz (ur. 21 grudnia 1878 we Lwowie, zm. 13 lutego 1956 w Dublinie) polski logik, matematyk, filozof, rektor Uniwersytetu Warszawskiego. Twórca notacji polskiej (1920), sposobu zapisu wyrażeń arytmetycznych, który pozwala na całkowitą rezygnację z użycia nawiasów w wyrażeniach, jako że jednoznacznie określa kolejność wykonywanych działań. Notacja polska jest notacją prefiksową (operator poprzedza argumenty): ab oznacza a b.
Odwrotna Notacja Polska (Reversed Polish Notation - RPN) Odwrotna Notacja Polska postfiksowa została opracowana przez australijskiego naukowca Charlesa Hamblina jako odwrócenie beznawiasowej notacji polskiej Jana Łukasiewicza na potrzeby zastosowań informatycznych. Hamblin sugerował, aby notację tę nazwać Azciweisakul notation (Notacja Azciweisakuł Łukasiewicza pisane od tyłu). ONP jest używana w niektórych językach programowania (Forth, PostScript), w realizacji programowej arkuszy kalkulacyjnych i kompilatorów języków programowania oraz w kalkulatorach firmy Hewlett-Packard. ab oznacza a b. Algorytm obliczenia wartości wyrażenia ONP 1 Dla wszystkich symboli z wyrażenia ONP wykonuj: jeśli i-ty symbol jest liczbą, to odłóż go na stos, jeśli i-ty symbol jest operatorem to: zdejmij ze stosu jeden element (ozn. a), zdejmij ze stosu kolejny element (ozn. b), odłóż na stos wartość b operator a. jeśli i-ty symbol jest funkcją to: zdejmij ze stosu oczekiwaną liczbę parametrów funkcji (ozn. a 1...a n ) odłóż na stos wynik funkcji dla parametrów a 1...a n 2 Zdejmij ze stosu wynik.
Algorytm obliczenia wartości wyrażenia ONP Przykład (p(x) ((q(y) r(z)) (s(u) p(x)))) ( s) Zamiana wyrażenia zapisanego w notacji infiksowej na postać postfiksową (ONP) Gdy wczytany element jest: stałą lub nazwą zmiennej, to przesyłamy go na wyjście; ( to dopisujemy go na stos; ) to odczytaj ze stosu i prześlij na wyjście wszystkie operatory aż do nawiasu (, który należy odczytać, ale nie wysyłać na wyjście;,,,, to jeżeli priorytet operatora wczytywanego jest wyższy od priorytetu operatora znajdującego się w wierzchołku stosu lub stos jest pusty, to dopisz do stosu operator, a w przeciwnym razie odczytaj i prześlij na wyjście kolejne operatory z wierzchołka stosu o priorytecie większym lub równym priorytetowi wczytanego operatora, po czym wpisz do stosu operator. Na koniec, gdy wszystkie elementy zostały wczytane należy zdjąć wszystkie operatory ze stosu i przesłać je na wyjście.
Zamiana wyrażenia zapisanego w notacji infiksowej na postać postfiksową (ONP) Przykład (p(x) ((q(y) r(z)) (s(u) p(x)))) ( s) operator priorytet ( 0 ) 1 2 3 Indukcja strukturalna Aby wykazać, że każda formuła A F spełnia właściwość(a), wystarczy wykazać, że właściwość(p) zachodzi dla wszystkich atomów p; z założenia, że zachodzi właściwość(a), wynika, że zachodzi właściwość( A); z założenia, że zachodzi właściwość(a 1 ) oraz właściwość(a 2 ), wynika, że dla każdego operatora op zachodzi właściwość(a 1 opa 2 ). przypadek podstawowy krok indukcyjny
Indukcja strukturalna - przykład Zadanie Udowodnij, że dla każdej formuły rachunku zdań drzewo struktury jest grafem acyklicznym i spójnym. A co to jest graf acykliczny i spójny? graf acykliczny Graf jest acykliczny, gdy nie istnieje ciąg wierzchołków połączonych krawędziami będący cyklem, czyli taki, którego początek i koniec są w tym samym wierzchołku. A B C D E F G Indukcja strukturalna - przykład Zadanie Udowodnij, że dla każdej formuły rachunku zdań drzewo struktury jest grafem acyklicznym i spójnym. A co to jest graf acykliczny i spójny? A graf spójny Graf jest spójny, gdy dla każdej pary wierzchołków istnieje ścieżka, która je łączy. B C D E F G
Indukcja strukturalna - przykład Zadanie Udowodnij, że dla każdej formuły rachunku zdań drzewo struktury jest grafem acyklicznym i spójnym. Aby wykazać, że każda formuła A F spełnia właściwość (A), wystarczy wykazać, że właściwość(p) zachodzi dla wszystkich atomów p; z założenia, że zachodzi właściwość (A), wynika, że zachodzi właściwość ( A); z założenia, że zachodzi właściwość (A 1 ) oraz właściwość (A 2 ), wynika, że dla każdego operatora op zachodzi właściwość (A 1 opa 2 ). Zadania W danej formule rachunku predykatów wskazać zmienne wolne i związane. Podać domknięcie uniwersalne (egzystencjalne) danej formuły.