Predikátová logika1 Predikátová logika 1. řádu Teď „logika naostro“ !
Predikátová logika2 Jednoduché úsudky, kde VL nestačí Všechny opice mají rády banány Judy je opice Judy má ráda banány Z hlediska VL jsou to jednoduché výroky p, q, r a z p, q nevyplývá r Všichni studenti jsou chytří Karel není chytrý Karel není student Jaké je zde platné úsudkové schéma?
Predikátová logika3 Úsudkové schéma Schéma připomíná platná schémata VL: p q, p |= q či p q, q |= p Ale ve VL nemůžeme (roz)analyzovat tyto jednoduché výroky. Zkusme je přeformulovat: Každé individuum, je-li Opice, pak má rádo Banány Judy je individuum s vlastností být Opice Judy je individuum s vlastností mít rádo Banány x [O(x) B(x)], O(J) |= B(J), kde x je individuová proměnná, O, B predikátové symboly, J funkční symbol Jde opět o schéma: Za O, B, J můžeme dosadit jiné vlastnosti či jiné individuum, např. po řadě člověk, smrtelný, Karel. O, B, J jsou zde pouze symboly zastupující vlastnosti a individua
Predikátová logika4 Formální jazyk PL1 Abeceda Logické symboly individuové proměnné: x, y, z,... Symboly pro spojky: , , , , Symboly pro kvantifikátory: , Speciální symboly Predikátové: P n, Q n,... n – arita = počet argumentů Funkční: f n, g n, h n,...-- „ -- Pomocné symboly: závorky (, ),...
Predikátová logika5 Formální jazyk PL1 Gramatika termy: i. každý symbol proměnné x, y,... je term ii. jsou-li t 1,…,t n (n 0) termy a je-li f n-ární funkční symbol, pak výraz f(t 1,…,t n ) je term; pro n = 0 se jedná o individuovou konstantu (značíme a, b, c, …) iii. jen výrazy dle i. a ii. jsou termy
Predikátová logika6 Formální jazyk PL1 Gramatika atomické formule: je-li P n-ární predikátový symbol a jsou-li t 1,…,t n termy, pak výraz P(t 1,…,t n ) je atomická formule formule: každá atomická formule je formule je-li výraz A formule, pak A je formule jsou-li výrazy A a B formule, pak výrazy (A B), (A B), (A B), (A B) jsou formule je-li x proměnná a A formule, pak výrazy x A a x A jsou formule
Predikátová logika7 Formální jazyk PL1 1. řád Jediné proměnné, které můžeme používat s kvantifikátory, jsou individuové proměnné Nemůžeme kvantifikovat přes proměnné vlastností či funkcí Příklad: Leibnizova definice rovnosti. Mají-li dvě individua všechny vlastnosti stejné, pak je to jedno a totéž individuum P [ P(x) = P(y)] (x = y) jazyk 2. řádu, kvantifikujeme přes vlastnosti
Predikátová logika8 Příklad: jazyk aritmetiky Má tyto (speciální) funkční symboly: nulární symbol: 0 (konstanta nula) – konstanta je nulární funkční symbol unární symbol: s (funkce následník) binární symboly: + a (funkce sčítání a násobení) Příkladem termů jsou (používáme infixní notaci pro + a ): 0, s(x), s(s(x)), (x + y) s(s(0)), atd. Formulemi jsou např. výrazy (= je zde speciální predikátový symbol): s(0) = (0 x) + s(0), x (y = x z), x [(x = y) y (x = s(y))]
Predikátová logika9 Převod z přirozeného jazyka do jazyka PL1 „všichni“, „žádný“, „nikdo“,... „někdo“, „něco“, „někteří“, „existuje“,... Větu musíme často ekvivalentně přeformulovat Pozor: v češtině dvojí zápor ! Žádný student není důchodce: x [S(x) D(x)] Ale, „všichni studenti nejsou důchodci“ čteme jako „ne všichni studenti jsou důchodci“: x [S(x) D(x)] x [S(x) D(x)]
Predikátová logika10 Převod z přirozeného jazyka do jazyka PL1 Pomocné pravidlo: + , + (většinou) x [P(x) Q(x)] x [P(x) Q(x)] Není pravda, že všechna P jsou Q Některá P nejsou Q x [P(x) Q(x)] x [P(x) Q(x)] Není pravda, že některá P jsou Q Žádné P není Q
Predikátová logika11 Převod z přirozeného jazyka do jazyka PL1 Pouze zaměstnanci používají výtah x [V(x) Z(x)] Všichni zaměstnanci používají výtah x [Z(x) V(x)] Marie má ráda pouze vítěze: Tedy pro všechny platí: pokud má Marie někoho ráda, pak je to vítěz: x [R(m, x) V(x)], „mít rád“ je binární vztah, ne vlastnost !!!
Predikátová logika12 Převod z přirozeného jazyka do jazyka PL1 Everybody loves somebody sometimes x y t L(x, y, t) Everybody loves somebody sometimes but Hitler doesn’t like anybody x y t L(x, y, t) z L’(h, z) Nobody loves anybody – 1 zápor (nikdo nemá nikoho rád) – 3 zápory x y L’(x, y) x y L’(x, y)
Predikátová logika13 Volné, vázané proměnné x y P(x, y, t) x Q(y, x) vázané, volnávolná, vázaná Formule s čistými proměnnými: pouze volné výskyty nebo pouze vázané, ale každý kvantifikátor má své proměnné. Např. x ve druhém konjunktu je jiné než v prvním, tak proč jej nazývat stejně? x y P(x, y, t) z Q(u, z)
Predikátová logika14 Substituce termů za proměnné A x/t vznikne z A korektní substitucí termu t za proměnnou x. Má-li být substituce korektní, musí splňovat následující dvě pravidla: Substituovat lze pouze za volné výskyty proměnné x ve formuli A a při substituci nahrazujeme všechny volné výskyty proměnné x ve formuli A termem t. Žádná individuová proměnná vystupující v termu t se po provedení substituce x/t nesmí stát ve formuli A vázanou (v takovém případě je term t za proměnnou x ve formuli A nesubstituovatelný).
Predikátová logika15 Substituce, příklad A(x): P(x) y Q(x, y), term t = f(y) Provedeme-li substituci A(x/f(y)), dostaneme: P(f(y)) y Q(f(y), y). term f(y) není substituovatelný za x v dané formuli A Změnili bychom smysl formule
Predikátová logika16 Sémantika PL1 !!! P(x) y Q(x, y) – je tato formule pravdivá? Nesmyslná otázka, vždyť nevíme, co znamenají symboly P, Q. Jsou to jen symboly, za které můžeme dosadit jakýkoli predikát. P(x) P(x) – je tato formule pravdivá? ANO, je, a to vždy, za všech okolností.
Predikátová logika17 Sémantika PL1 !!! x P(x, f(x))musíme se dohodnout, jak x P(x, f(x))budeme tyto formule chápat 1) O čem mluví, přes co „rangují“ proměnné: zvolíme universum diskursu, jakákoli neprázdná množina U 2) Co označuje symbol P; je binární, má dva argumenty, tedy musí označovat nějakou binární relaci R U U 3) Co označuje symbol f ; je unární, má jeden argument, tedy musí označovat nějakou funkci F U U, značíme F: U U
Predikátová logika18 Sémantika PL1 !!! A: x P(x, f(x))musíme se dohodnout, jak B: x P(x, f(x))budeme tyto formule chápat 1) Nechť U = N (množina přirozených čísel) 2) Nechť P označuje relaci < (tj. množinu dvojic takových, že první člen je ostře menší než druhý: { 0,1 , 0,2 , …, 1,2 , …}) 3) Nechť f označuje funkci druhá mocnina x 2, tedy množinu dvojic, kde druhý člen je druhá množina prvního: { 0,0 , 1,1 , 2,4 , …, 5,25 , …} Nyní můžeme teprve vyhodnotit pravdivostní hodnotu formulí A, B
Predikátová logika19 Sémantika PL1 !!! A: x P(x, f(x)) B: x P(x, f(x)) Vyhodnocujeme „zevnitř“: Nejprve vyhodnotíme term f(x). Každý term označuje prvek universa. Který? Záleží na valuaci e proměnné x. Nechť e(x) = 0, pak f(x) = x 2 = 0. e(x) = 1, pak f(x) = x 2 = 1, e(x) = 2, pak f(x) = x 2 = 4, atd. Nyní vyhodnocením P(x, f(x)) musíme dostat pravdivostní hodnotu: e(x) = 0, 0 není < 0 Nepravda e(x) = 1, 1 není < 1 Nepravda, e(x) = 2, 2 je < 4 Pravda
Predikátová logika20 Sémantika PL1 !!! A: x P(x, f(x)) B: x P(x, f(x)) Formule P(x, f(x)) je pro některé valuace e proměnné x v dané interpretaci Pravdivá, pro jiné nepravdivá Význam x ( x): formule musí být pravdivá pro všechny (některé) valuace x Formule A: Nepravdivá v naší interpretaci I: | I A Formule B: Pravdivá v naší interpretaci I: |= I B
Predikátová logika21 Model formule, interpretace A: x P(x, f(x)) B: x P(x, f(x)) Našli jsme interpretaci I, ve které je formule B pravdivá. Interpretační struktura N, <, x 2 splňuje formuli B pro všechny valuace proměnné x, je to model formule B. Jak upravíme interpretaci I, aby v ní byla pravdivá formule A? Nekonečně mnoho možností, nekonečně mnoho modelů. Např. N, <, x+1 , {N/{0,1}, <, x 2 , N, , x 2 Všechny modely formule A jsou také modely formule B („co platí pro všechny, platí také pro některé“)
Predikátová logika22 Model formule, interpretace C: x P(x, f(y))jaké budou modely této formule (s volnou proměnnou y)? Zvolme opět: 1. Universum U = N 2. Symbolu P přiřadíme relaci 3. Symbolu f přiřadíme funkci x 2 Je struktura IS = N, , druhá mocnina modelem formule C? Aby tomu tak bylo, musela by být formule C pravdivá v IS pro všechna ohodnocení proměnné y. Tedy formule P(x, f(y)) by musela být pravdivá pro všechna ohodnocení x a y. Ale to není, např. Pro e(x) = 5, e(y) = 2, 5 není 2 2
Predikátová logika23 Model formule, interpretace C: x P(x, f(y))jaké budou modely této formule (s volnou proměnnou y)? Struktura N, , x 2 není modelem formule C Modelem (triviálním) je např. N, , x 2 . Prázdná množina dvojic je také relace nad N. Nebo je modelem struktura N, , F , kde F je funkce, zobrazení N N takové, že sudým číslům přiřazuje 0, lichým 1.
Predikátová logika24 Intermezzo: relace Relace mezi množinami A, B je podmnožina Kartézského součinu A B. Kartézský součin A B je množina všech uspořádaných dvojic a, b , kde a A, b B (Binární) relace R 2 na množině M je podmnožina Kartézského součinu M M: R 2 M M n-ární relace R n na množině M: R n M ... M n krát
Predikátová logika25 Intermezzo: relace Pozor: dvojice a,b b,a , ale množina {a,b} = {b,a} a, a a , ale {a,a} = {a} U n-tic záleží na pořadí, prvky se mohou opakovat, na rozdíl od množin Notace: a,b R značíme prefixně R(a,b), nebo infixně a R b. Např. 1 3.
Predikátová logika26 Intermezzo relace Příklad: Binární relace na N: < (ostře menší) { 0,1 , 0,2 , 0,3 ,…, 1,2 , 1,3 , 1,4 , …, 2,3 , 2,4 ,…, 3,4 ,…, 5,7 ,…, 115,119 ,.…} Ternární relace na N: { 0,0,0 , 1,0,1 , 1,1,0 ,…, 2,0,2 , 2,1,1 , 2,2,0 , …, 3,0,3 , 3,1,2 , 3,2,1 , 3,3,0 ,…, 115,110,5 ,.…} – množina trojic přirozených čísel takových, že 3. číslo je rozdíl 1. číslo minus 2. číslo Relace adresa osoby: { Jan Novák, Praha 5, Bellušova 1831 , Marie Duží, Praha 5, Bellušova 1827 ,...,}
Predikátová logika27 Intermezzo: funkce (zobrazení) n-ární funkce F na množině M je speciální zprava jednoznačná n+1-ární relace F M ... M: (n+1 krát) a b c ([F(a,b) F(a,c)] b=c) Parciální F: ke každé n-tici prvků a M ... M existuje nanejvýš jeden prvek b M. n x Značíme F: M ... M M, místo F(a,b) píšeme F(a)=b. Množinu M ... M nazýváme definiční obor funkce F, množinu M pak obor hodnot. Příklad: Relace na N { 1,1 ,1 , 2,1 ,2 , 2,2 ,1 , …, 4,2 ,2 , …, 9,3 ,3 , …, 27,9 ,3 ,.…} je parciální funkce dělení beze zbytku. Také relace minus na N (viz předchozí slide) je na N parciální funkcí: např. dvojice 2,4 nemá v N obraz. Aby byla totální, museli bychom rozšířit její definiční obor na celá čísla.
Predikátová logika28 Intermezzo: funkce (zobrazení) Jako interpretace funkčních symbolů formulí PL1 používáme pouze totální funkce: Totální funkce F: A B: Ke každému prvku a A existuje právě jeden prvek b B takový, že F(a)=b: a b F(a)=b a b c [(F(a)=b F(a)=c) b=c] Zavádíme někdy speciální kvantifikátor ! s významem „existuje právě jedno“ a píšeme: a !b F(a)=b
Predikátová logika29 Intermezzo: funkce (zobrazení) Příklady: Relace + { 0,0,0 , 1,0,1 , 1,1,2 , 0,1,1 , …} je na N (totální binární) funkce. Každým dvěma číslům přiřadí právě jedno, jejich součet. Místo 1,1,2 + píšeme 1+1=2 Relace není funkce: x y z [(x y) (x z) (y z)] Relace { 0,0 , 1,1 , 2,4 , 3,9 , 4,16 , …} je na N totální funkce druhá mocnina (x 2 )
Predikátová logika30 Zobrazení f: A B je surjekce (zobrazení A na B), jestliže k libovolnému b B existuje a A takový, že f(a)=b. – b [B(b) a (A(a) f(a)=b)]. Zobrazení f: A B je injekce (prosté zobrazení A do B), jestliže pro všechna a A, b A taková, že a b platí, že f(a) f(b). – a b [(A(b) A(a) (a b)) (f(a) f(b))]. Zobrazení f: A B je bijekce (prosté zobrazení A na B), jestliže f je surjekce a injekce.
Predikátová logika31 Intermezzo: funkce (zobrazení) Příklad: surjekceinjekcebijekce { }{2 3 4 }{ } { }{ }{ } Existuje-li mezi množinami A, B bijekce, pak říkáme, že mají stejnou kardinalitu.
Predikátová logika 32 Intermezzo: kardinalita, spočetné množiny Množina A, která má stejnou kardinalitu jako množina N přirozených čísel, se nazývá spočetná. Příklad: množina sudých čísel S je spočetná. Prosté zobrazení f množiny S na N je dáno předpisem: f(n) = 2n. Tedy 0 0, 1 2, 2 4, 3 6, 4 8, … Jeden z paradoxů Cantorovy teorie množin: S N (vlastní podmnožina) a přitom počet prvků obou množin je stejný: Card(S) = Card(N)!
Predikátová logika33 Intermezzo: kardinalita, nespočetné množiny Množina racionálních čísel R je rovněž spočetná. Bijekce N na R je např.: 0 0, 1 1, 2 ½, 3 2, 4 1/3, 5 2, 6 3, 7 ¼, 8 2/3, 9 3/2, 10 4, … Existují však nespočetné množiny: nejmenší z nich je množina reálných čísel R Už v intervalu 0,1 je reálných čísel více než je všech přirozených, ale stejně mnoho jako všech R! (Cantorův diagonální důkaz: Kdyby bylo v tomto intervalu čísel R spočetně mnoho, pak by šly uspořádat do posloupnosti 1.,2.,3.,…, každé z nich je tvaru 0,i 1 i 2 i 3 …V posloupnosti desetinných míst i 1 i 2 i 3 … přičteme každému n-tému číslu i n v jeho rozvoji číslo 1. Dostaneme číslo, které v původní uspořádané posloupnosti nebylo.) – viz další snímek
Predikátová logika34 Cantorův diagonální důkaz nespočetnosti reálných čísel i 11 i 12 i 13 i 14 i 15 i 16 i 17 2 i 21 i 22 i 23 i 24 i 25 i 26 i 27 3 i 31 i 32 i 33 i 34 i 35 i 36 i 37 4 i 41 i 42 i 43 i 44 i 45 i 46 i 47 5i 51 i 52 i 53 i 54 i 55 i 56 i 57 …. Nové číslo, které v tabulce není: 0,i i i i i …