Wykład 7 Rachunek predykatów 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 1 Funkcje zdaniowe Niech X.Funkcją zdaniową jednej zmiennej x, której zakresem zmienności jest przestrzeń X, nazywamy wyrażenie f(x), w którym występuje zmienna x i które staje się zdaniem prawdziwym lub fałszywym, gdy w miejsce zmiennej x wstawimy dowolny obiekt ze zbioru X. Przykład x+x2>0 , x Z n+1 < 2, n N |x| 3 , x R x2 + y2 >0, (x,y) R2 Przestrzeń X może sama być produktem Każda funkcja zdaniowa kartezjańskim Wtedy zmienna x wyznaczaX1... pewienXn. podzbiór przyjmuje (pewna jako wartości elementy tego własność) produktu. Mówimy że mamy do przestrzeni, w wówczas, której została czynienia z funkcją zdaniową n argumentową. określona. Uwaga Funkcja zdaniowa f(x),jednej zmiennej x, jest po prostu funkcją f : X --> {0,1} taką, że dla dowolnego xX, f(x) jest zdaniem w sensie rachunku zdań. 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 2 Predykaty złożone Funkcje zdaniowe (inaczej predykaty) można łączyć spójnikami logicznymi. Powstają w ten sposób nowe, złożone funkcje zdaniowe. Przykłady złożonych predykatów: (a(x) b(x)) , (a(x) b(x)) , (a(x) b(x)), b(x) ((x-3=0) (x+y <4)) (y <1) Jeśli po wstawieniu w miejsce zmiennej x elementu a X w predykacie a(x) określonym w pewnym zbiorze X otrzymujemy zdanie prawdziwe, to mówimy, że a spełnia funkcję zdaniową a(x). Ogół tych wartości x X dla których funkcja zdaniowa a(x) jest spełniona oznaczamy przez {xX: a(x) }. 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 3 Spełnianie Element a X spełnia funkcję zdaniową (a(x) b(x)) wttw a spełnia a(x) lub a spełnia b(x). Fakt 1 {x X : (a(x) b(x))} = {x X : a(x)} {x X : b(x)} Element a X spełnia funkcję zdaniową (a(x) b(x)) wttw a spełnia a(x) i a spełnia b(x). Fakt 2 {x X : (a(x) b(x))} = {x X : a(x)} {x X : b(x)} Element a X spełnia funkcję zdaniową a(x) wttw a nie spełnia a(x). 14 listopada 2001 Fakt 3 {x X : a(x)} = X \{x X : a(x)} Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 4 Kwantyfikatory (x)a(x) Kwantyfikator egzystencjalny (szczegółowy) istnieje x takie, że a(x) a(x)jest zakresem kwantyfikatora szczegółowego lub ogólnego. Zmienna x będąca w zakresie kwantyfikatora wiążącego tę zmienną jest zmienną związaną (x)a(x) 14 listopada 2001 Kwantyfikator wiąże wymienioną zmienną Przykład (x)( x+y<6 x*y>0) (x) (y)(a(x) b(y)) (x) a(x,y) (y) b(y) Kwantyfikator uniwersalny (ogólny) dla każdego x, a(x) Wolne wystąpienie y związane wystąpienie y Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 5 Spełnianie Niech a(x) będzie predykatem określonym w pewnym zbiorze X. Zdanie (x)a(x) jest prawdziwe w X wttw istnieje element a X , który spełnia funkcję zdaniową a(x). Zdanie (x)a(x)jest prawdziwe w X wttw każdy element a spełnia funkcje zdaniową a(x). 14 listopada 2001 Zdanie (x)a(x) jest prawdziwe w X wttw {xX : a(x)} . Zdanie ( x)a(x) jest prawdziwe w X wttw {xX : a(x)}= X. (x)a(x) jest zdaniem fałszywym wttw {xX : a(x)}=. ( x)a(x) jest zdaniem fałszywym wttw {xX : a(x)} X. Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 6 Przykład Przykład Rozważmy funkcję zdaniową (x+2)*(x-3)<0 w zbiorze liczb rzeczywistych R. Ponieważ 2 spełnia tę funkcję a liczba 3 nie spełnia tej funkcji, to (x) ((x+2)*(x-3)<0) jest zdaniem prawdziwym, a ( x) ( (x+2)*(x-3)<0) jest zdaniem fałszywym. Uogólnienie Niech (x)a(x,y) będzie funkcją zdaniową o zmiennych wolnych x X, yY. Wtedy (x)a(x,y) oraz (x)a(x,y) są funkcjami zdaniowymi zmiennych wolnych yY. Element y Y spełnia funkcję zdaniową (x)a(x,y)wttw istnieje takie a X, że a(a,y)jest zdaniem prawdziwym. 14 listopada 2001 Element y Y spełnia funkcję zdaniową ( x)a(x,y)wttw dla dowolnego a X, a(a,y)jest zdaniem prawdziwym. Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 7 Operacje logiczne a kwantyfikatory Jeśli X jest zb. skończonym o Kwantyfikator szczegółowy elementach a1,a2,...an, a a(x) predykatem określonym w zbiorze X, można uważać za to prawdziwa jest następująca uogólnienie alternatywy. równoważność ( x)a(x) (a(a1)a(a2)... a(an)) Kwantyfikator ogólny można uważać za uogólnienie koniunkcji. 14 listopada 2001 Jeśli X ={a1,a2,...an}, a a(x)predykatem określonym w zbiorze X, to prawdziwa jest następująca równoważność (x)a(x) (a(a1)a(a2)... a(an)) Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 8 Działania uogólnione a kwantyfikatory Niech A={ Ai }iI będzie indeksowaną rodziną podzbiorów pewnej przestrzeni X. iI Ai = {x: x Aj dla pewnego j I} iI Ai = {x: x Aj dla każdego j I} Suma uogólniona Iloczyn uogólniony Rozważmy funkcję zdaniową 2 zmiennych a(x,y), x X, y Y. yY {x X : a(x,y)} = {x X : (y) a (x,y)} yY {x X : a(x,y)} = {x X : (y) a (x,y)} 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 9 Kwantyfikatory ograniczone Przykład Warunek Cauchy’ego ciąg (an) jest zbieżny do liczby a wttw dla każdego e>0 istnieje liczba naturalna n0 taka, że dla każdego n>n0 |an -a | < e. Kwantyfikator o zakresie ograniczonym przez funkcję zdaniową Notacja : (b(x)) a(x)( b(x)) a(x) ciąg (an) jest zbieżny do a wttw ( e>0 ) ( n0N) ( n>n0) |an -a | < e (b(x)) a(x)jest prawdziwe wttw (x)(b(x) a(x))jest prawdziwe. ( b(x)) a(x)jest prawdziwe wttw ( x)(b(x) a(x))jest prawdziwe. ciąg (an) jest zbieżny do a wttw (e)(e>0 ( n0)(n0N (n)(n>n0 |an -a | < e))) 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 10 Język rachunku predykatów Niech V0 będzie zbiorem zmiennych zdaniowych, V- zbiorem zmiennych indywiduowych, P-zbiorem nazw relacji, F-zbiorem nazw funkcji. Zbiór termów jest to najmniejszy zbiór zawierający V i taki, że jeśli f jest nazwą funkcji n argumentowej a t1,...,tn termami, to f(t1,...,tn) jest termem. 14 listopada 2001 Zbiór formuł jest to najmniejszy zbiór wyrażeń zawierających V0 i taki, że - jeśli r jest nazwą relacji n argum., a t1,...,tn są termami, to r(t1,...,tn) jest formułą, - jeśli a i b są formułami, to a, (ab ), (ab ), (ab ), (ab ), są formułami, - jeśli a(x) jest formułą ze zmienną wolną x, to (x)a(x) i (x)a(x) są formułami. Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 11 Semantyka x + y = s(x,y) Jak policzyć wartość tego wyrażenia? Aby określić sens formuły rachunku funkcyjnego potrzeba: Czyli ustalić Ustalić interpretację symboli funkcyjnych i strukturę predykatywnych danych STR i oraz wybrać wartości dla zmiennych. wartościowanie v STR, v |= a(x)b(x)wttw STR, v |= a(x) lub STR, v |= b(x) STR, v |= a(x)b(x)wttw STR, v |= a(x) i STR, v |= b(x) STR, v |= (x)a(x)wttw STR, v(x/a) |= a(x)dla wszystkich a STR STR, v |= ( x)a(x)wttw STR, v(x/a) |= a(x)dla pewnego a STR 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 12 Przykład * (x+y) * z + (1) N, (x/1,y/3) |= (x + y >2 ) x/ 3 z/ 3 y/5 Zatem mamy też N |= ( x) ( y) (x + y >2 ) oraz N |= (z) ( x) ( y) (x + y >z ) (2) Stosy |= (e) (s) top(pop(push(e, s))) = top(s) 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 13 Tautologie Definicja Formułę rachunku funkcyjnego nazywamy tautologią(lub prawem rachunku funkcyjnego), jeżeli jej wartością jest prawda, niezależnie od wartości zmiennych oraz interpretacji symboli relacyjnych i funkcyjnych w niej występujących. Przykłady. (x)a(x) a(y )(x)a(x) (y)a(y) a (x) a (x) (*)(x)a(x) (x)a(x) Dowód (*) Gdyby ta implikacja była fałszywa przy pewnej Jeśli a jest prawem rachunku zdań, to podstawiając za zmienne zdaniowe interpretacji formuły a(x)w występujące w a, dowolne formuły niepustym uniwersum X, wtedy rachunku funkcyjnego otrzymujemy byłoby {xX: a(x)}=X oraz tautologię rachunku predykatów. {xX: a(x)}= . Czyli X= , sprzeczność. 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 14 Przykłady tautologii Oznaczenie Zamiast „a jest tautologią rachunku funkcyjnego” piszemy krótko |=a . Następujące formuły są prawami rachunku predykatów (są tautologiami) (1) ((x) a(x)) ((x) a (x) ) prawa de Morgana (2) (( x) a(x)) (( x) a (x) ) (3) (x)(a(x) b(x)) ((x) a(x) (x) b(x)) (4) ( x) ( y) a(x,y) ( y) ( x) a(x,y) (5) ( x)(a(x) b) (( x)a(x) b ) o ile zmienna x nie występuje w b prawo włączania i wyłączania kwantyfikatorów Np.: ((x) (x2>x+1) ((x) (x2>x+1)) jest zdaniem prawdziwym w R 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 15 Reguły wnioskowania Reguły dowodzenia (reguły wnioskowania) są to przekształcenia postaci przesłanki wniosek a1,a2,...,an b które pewnemu skończonemu zbiorowi formuł (formuł) a1,..., an, przyporządkowują formułę b, w taki sposób, że dla dowolnej struktury danych STR takiej, że STR |= a1... an, to STR |= b (tzn. wniosek też jest zdaniem prawdziwym w strukturze STR). 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 16 Przykłady reguł a, a b b Ad (*) Przypuśćmy, że (1) STR |= (a(x) b) oraz (2) Reguła odrywania nie zachodzi STR |= (( x) a(x) b). Wtedy z (2) dla pewnego Wniosek v mamy a(x) Towartościowania są poprawne STR,v |= ( x) a(x) (x) a(x) reguły wnioskowania Reguła uogólniania STR,v |= b.Czyli dla w rachunku pewnegopredykatów a STR, (*) STR,v(x/a) |= a(x) (a(x) b) STR,v(x/a) |= b. Reguła dołączania kwantyfikatora (( x) a(x) b) Tzn. STR,v(x/a) |= (a(x) b) egzystencjalnego Sprzeczność z (1). x nie występuje w b 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 17 Zastosowanie Niech będzie rodzina podzbiorów zbioru X, ( Ai) iI oraz funkcja f : X Y. Udowodnimy, że f( Ai) f(Ai). Dowód: 1. y f( Ai) na mocy def. obrazu funkcji 2. ( x X)( x Ai f(x)=y) 3. ( x X) (( i I) x Ai f(x)=y) 4. ( x X) ( i I) (x Ai f(x)=y) 5. ( i I) ( x X)(x Ai f(x)=y) 6. ( i I) y f(Ai) 7. y f(Ai) z def. iloczynu uogólnionego z prawa włączania- wyłączania cz. przemienność kwantyfik. z def. obrazu funkcji z def. iloczynu uogólnionego f( Ai) f(Ai) 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 18 Implikacja semantyczna Niech STR będzie ustaloną strukturą danych, w której interpretujemy rozważane formuły. Będziemy pisali (a b) dla oznaczenia, że wyrażenie a implikuje semantycznie w strukturze STR wyrażenie b, tzn. (ab) wttw STR |= (a b) (tzn. implikacja a b jest prawdziwa w strukturze STR). Będziemy pisali (a b) dla oznaczenia, że wyrażenie a jest semantycznie równoważne wyrażeniu b w strukturze STR, tzn. (a b) wttw STR |= (a b). W poprzednim przykładzie: 1 2 3 4 5 6 7 Czyli 1 7. 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 19 Zastosowanie Rozważmy program { z:= x; y :=1; m := n; zm * y = xn while (m 0) zm * y = xn Odd(m) (z * z)mdiv 2 * (y * z) = xn { if odd(m) lub Odd(m) (z * z)mdiv 2 * y = xn { y := y * z; } Wniosek m := m div 2; Dla dowolnych xR i z := z * z; zm * y = xn nN, po wykonaniu } programu mamy }m n z * y = x oraz y = xn . m=0 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 20 System formalny Semantyka + Aksjomaty Formuły prawdziwe = Reguły Formuły dowodliwe Pełność rachunku logicznego |= a wtedy i tylko wtedy |- a dla dowolnej formuły rozważanego języka. 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 21 Problemy NIESPRZECZNOŚĆ ZUPEŁNOŚĆ ROZSTRZYGALNOŚĆ w8 14 listopada 2001 Matematyka Dyskretna Rachunek funkcyjny, G.Mirkowska, PJWSTK 22