Objektorienterad modellering och diskreta strukturer 9. Predikatlogik och mängdlära Sven Gestegård Robertz Datavetenskap, LTH 2014
Rekaputilation Vi har talat om satslogik naturlig härledning predikatlogik I predikatlogiken tillkommer, utöver satslogiska språket predikat som beror på parametrar: prime(x), x < y,... kvantorerna och. Exempel: p N. prime(p) p > n Rekapitulation 9. Predikatlogik och mängdlära 2/37
Regler som upphäver antaganden [P ] Q [ I ] P Q [P ] R R [ I ] P När reglerna använts upphävs antagandet (skrivs: [P ]) D v s det som står under strecket är inte beroende av antagandet P. Rekapitulation : Naturlig härledning 9. Predikatlogik och mängdlära 3/37
Satslogisk härledning Visa, med indirekt härledning, att = p p. 1 (p p) 2 p 3 p p I, 2 4 F I, 1, 3 5 p I (RAA), 24 6 p 7 p p I, 6 8 F I, 1, 7 9 p I (RAA), 68 10 p E, 9 11 F I, 5, 10 12 (p p) I (RAA), 111 13 p p E, 12 Rekapitulation : Naturlig härledning 9. Predikatlogik och mängdlära 4/37
Samma härledning som bevisträd Visa, med indirekt härledning, att = p p [p] [ I] p p [ (p p)] [ I] p [ p] [ I] p p [ (p p)] [ I] p [ E] p [ I] (p p) [ E] p p Rekapitulation : Naturlig härledning 9. Predikatlogik och mängdlära 5/37
Predikatlogiska uttryck Låt x och y vara vektorer med lika många element och låt kvantieringarna löpa över alla index som gör uttrycken meningsfulla. Exempel på uttryck: 1 Varje element i x är mindre än motsvarande element i y. i. x i < y i 2 Alla värden som nns i x nns också i y. i. j. x i = y j 3 Alla element i x är mindre än varje element i y. i. j. x i < y j Rekapitulation : Predikatlogik 9. Predikatlogik och mängdlära 6/37
Aktivitet Formulera med predikatlogik: Om x och y är två olika reella tal så nns det ett reellt tal mellan dem. x R. y R. x y z R.(x < z z < y) (y < z z < x) Rekapitulation : Predikatlogik 9. Predikatlogik och mängdlära 7/37
Fria och bundna variabler Denition En förekomst av en variabel är bunden om det nns en omgivande kvantiering där variabeln introduceras. En förekomst av en variabel som inte är bunden säges vara fri. Rekapitulation : Substitution 9. Predikatlogik och mängdlära 8/37
Fria och bundna variabler prime(p) p > n p. prime(p) p > n ( p. prime(p)) p > n n. p. prime(p) p > n Rekapitulation : Substitution 9. Predikatlogik och mängdlära 9/37
Substitution om e och t är uttryck och x är en variabel så är e[x\t] det uttryck man får när man i e ersätter alla fria förekomster av x med t under förutsättning att ingen fri variabel i t blir bunden i det resulterande uttrycket. Rekapitulation : Substitution 9. Predikatlogik och mängdlära 10/37
Substitution i kvantieringar Tre fall: 1. om v och x är samma variabel ( v. P )[x\t] = ( v. P ) Exempel Notera. Substitutionen ( x N. x > 0)[x\2] ger enligt ovan resultatet x N. x > 0 (eftersom x är bunden) medan substitutionen (x > 0)[x\2] betyder Sätt in x = 2, d v s 2 > 0 Rekapitulation : Substitution 9. Predikatlogik och mängdlära 11/37
Substitution med risk för namnkollision I de två återstående fallen är v och x är olika variabler. Exempel I uttrycket ( y N. y > x ) [x\y 1] kan vi inte direkt göra substitutionen y N. y > y 1 eftersom y är fri variabel i uttrycket som substitueras in men skulle bli bunden efter substitutionen. Rekapitulation : Substitution 9. Predikatlogik och mängdlära 12/37
2. om v inte är fri i t kan vi direkt göra substitutionen ( v. P )[x\t] = ( v. P [x\t]) Exempel ( y N. y > x)[x\w] blir y N. y > w 3. I det återstående fallet, när v förekommer som fri variabel i t måste man byta namn på kvantieringsvariabeln till ett nytt namn, z, som inte förekommer i P innan man kan substituera in t. ( v. P )[x\t] = ( z. ((P [v\z])[x\t])) Exempel ( y N. y > x)[x\y 1] blir, med [y\z] z N. z > y 1 ( Och inte y N. y > y 1 ) Rekapitulation : Substitution 9. Predikatlogik och mängdlära 13/37
Inferensregler i predikatlogik Reglerna från satslogiken gäller (men se upp med kvantorer) Skilj på fria och bundna variabler I, E I, E de Morgans lagar behöver utökas Predikatlogisk härledning : Inferensregler 9. Predikatlogik och mängdlära 14/37
Härledningar, exempel Alla människor är dödliga. Jag är människa. Alltså är jag dödlig. ( E ) Låt t vara en triangel. Det går att bevisa att t har vinkelsumman 180. Alltså har alla trianglar vinkelsumman 180. ( I ) Jag ser en vit dovhjort. Alltså nns det vita dovhjortar. ( I ) Predikatlogisk härledning : Inferensregler 9. Predikatlogik och mängdlära 15/37
Inferensregler för x. P [ E ] P [x\t] där t inte får förekomma som bunden variabel i P. b. a. P (a, b) (T ex gäller inte [ E]. Motexempel: P (a, b) = a > b.) a. P (a, a) P (t) [ I ] x. P (x) om P (t) kan härledas utan något (oupphävt) antagande om t, och om x inte ingår (som fri variabel) i P (t). Annars skulle P (x) x. P (x), vilket det inte gör. Predikatlogisk härledning : Inferensregler 9. Predikatlogik och mängdlära 16/37
Inferensregler för P (c) [ I ] x. P (x) där x inte får förekomma som fri variabel i P (c) (jfr P (c) = P (x)[x\c] ) x. P (x) Q [P (a)] Q [ E ] där a är en ny variabel, som bara förekommer i härledningen av Q. E kan förstås som vi vet att det nns värden på x, för vilka P (x) är sant. Antag att variabeln a har ett sådant värde, och att det ger Q. Då kan vi säga att Q gäller, utan att behöva känna värdet a. (P (a) = P (x)[x\a] ) Predikatlogisk härledning : Inferensregler 9. Predikatlogik och mängdlära 17/37
Räknelagar (urval) Det gäller att och x. P (x) Q(x) x. y. P (x, y) ( x. P (x)) ( x. Q(x)) y. x. P (x, y) ( x. P (x)) ( x. Q(x)) x. ( P (x) Q(x)) men inte omvändningen x. ( P (x) Q(x) ) ( x. P (x)) ( x. Q(x)) ty med P (x): x är man och Q(x): x är kvinna, så skulle satsen För alla människor x gäller: x är man eller x är kvinna då vara ekvivalent med påståendet att alla människor är män eller alla människor är kvinnor. Predikatlogisk härledning : Räknelagar 9. Predikatlogik och mängdlära 18/37
de Morgans lagar För predikatlogiska uttryck gäller Denial of universality ( x. P (x)) = x. P (x) Denial of existence ( x. P (x)) = x. P (x) och omvändningarna Assertion of universality x. P (x) = ( x. P (x)) Assertion of existence ( x. P (x)) = x. P (x) Predikatlogisk härledning : Räknelagar 9. Predikatlogik och mängdlära 19/37
Bevis för = ( x. P (x)) ( x. P (x)) 1. Visa { x. P (x)} ( x. P (x)): 2. Därefter, gör antagande i stället för premiss, och använd I : [ x. P (x)] [ E ] P (a) [ x. P (x)] [ E ] P (a) x. P (x) [ E ] P (a) [ I ] ( x. P (x)) [ x. P (x)][ x. P (x)] [ E ] ( x. P (x)) P (a) [ I ] ( x. P (x)) ( x. P (x)) [ I ] Notera att [ I ] och [ I ] upphäver respektive antagande. Predikatlogisk härledning : Räknelagar 9. Predikatlogik och mängdlära 20/37
Se upp med huvudkonnektiv för och Exempel Alla studenter i Lund är smarta: skrivs, med M = {Människor} x M. ( StudentILund(x) Smart(x) ) och inte x M. ( StudentILund(x) Smart(x) ) Alla människor är studenter i Lund och smarta Det nns däggdjur som kan yga: x. ( D(x) F (x) ) och inte x. ( D(x) F (x) ) Predikatlogisk härledning : Kommentarer 9. Predikatlogik och mängdlära 21/37
Mängdlära Mål Målet med avsnittet om mängdlära är att ni ska känna till de grundläggande begreppen kunna beskriva mängder med predikatlogiska uttryck, mängdbyggare förstå induktivt denierade mängder känna till och kunna använda de vanligaste räknelagarna kunna använda mängder för att beskriva och resonera om formella språk relationer funktioner Mängdlära 9. Predikatlogik och mängdlära 22/37
Mängdlära Primitiva begrepp: mängd, element och tillhör. NB! tillhör är ett predikat: x A = tillhör(e, m) Notation: och {1, 3, 5}. Mängder av tal: N, Z, Q, R,... B = {F, T} Mängdlära 9. Predikatlogik och mängdlära 23/37
Kardinalitet Denition Om M är en ändlig mängd M = antalet element i mängden. Mängdlära 9. Predikatlogik och mängdlära 24/37
Mängdbyggare Att använda predikat för att deniera mängder Denition Om U är en mängd och P (x) är ett predikat, där x U så är M = {x U P (x)} den mängd som har egenskapen Exempel x. x M x U P (x) Mängden av de positiva heltalen kan denieras { x. x Z x > 0} Jfr list comprehension i Python, Ruby, Haskell,... Mängdlära 9. Predikatlogik och mängdlära 25/37
Mängdbyggare Exempel: List comprehension Exempel (Java) // a n t a a t t L i s t <Car> a l l C a r s f i n n s L i s t <Car> r e d C a r s = new L i n k e d L i s t <Car > ( ) ; f o r ( Car c : a l l C a r s ) } i f ( c. g e t C o l o u r ( ). e q u a l s ( " r e d " ) ) { r e d C a r s. add ( c ) ; } Exempel (Python) r e d C a r s = [ c f o r c i n a l l C a r s i f c. c o l o u r ( ) == " r e d " ] Mängdlära 9. Predikatlogik och mängdlära 26/37
Induktivt denierade mängder Vi kan deniera mängden av alla satslogiska uttryck, P, som den minsta mängd med följande egenskaper: Om x är ett variabelnamn så x P. Om P P så P P. Om P P och Q P så tillhör alla (P Q), (P Q) (P Q) och (P Q) också mängden P. Känner ni igen kompositmönstret? Mängdlära 9. Predikatlogik och mängdlära 27/37
Delmängd Denition M 1 M 2 = m. m M1 m M 2 Mängdlära 9. Predikatlogik och mängdlära 28/37
Transitivitet Sats Om A B och B C så är A C. Bevis. Antag att a A. Detta betyder att a är ett godtyckligt element i A, men att a är samma element i hela beviset. Vi skall visa att a C. Av denitionen på A B så följer att a B. Eftersom B C så gäller på samma sätt att a C. Mängdlära 9. Predikatlogik och mängdlära 29/37
Ett härledningsträd {A B, B C} A C { m. m A m B, m. m B m C} m. m A m C m. m A m B [ E ] [a A] a A a B [ E ] a B m. m B m C [ E ] a B a C [ E ] a C [ I ] a A a C [ I ] m. m A m C Mängdlära 9. Predikatlogik och mängdlära 30/37
Mängdoperationer Denition (Union) M 1 M 2 = {x x M1 x M 2 }. Denition (Snitt) M 1 M 2 = {x x M1 x M 2 }. Denition (Relativt komplement, Dierens) M 1 M 2 = {x M1 x M 2 }. Denition (Absolut komplement) M = {x M}. ({x U x M}) d v s M = U M Mängdlära 9. Predikatlogik och mängdlära 31/37
Mängdoperationer och logiska konnektiv B B B A A A A B A B B A Mängdlära 9. Predikatlogik och mängdlära 32/37
Räknelagar Sats A = A A A = A A B = B A A A B A = A A = A A B = B A A B A Räknelagarna följer direkt av liknande lagar i satslogiken: Sats p F = p p p = p p q = q p p p q p F = F p p = p p q = q p p q p Mängdlära 9. Predikatlogik och mängdlära 33/37
Ett av bevisen Bevis. A A = {x x A x A} = {x x A} = A Mängdlära 9. Predikatlogik och mängdlära 34/37
Sats A (B C) = (A B) C A (B C) = (A B) (A C) A B = A B A (B C) = (A B) C A (B C) = (A B) (A C) A B = A B Motsvarande satslogiska formler: Sats p (q r) = (p q) r p (q r) = (p q) (p r) (p q) = p q p (q r) = (p q) r p (q r) = (p q) (p r) (p q) = p q Mängdlära 9. Predikatlogik och mängdlära 35/37
Lagar för relativt komplement Det gäller även att Sats C (A B) = (C A) (C B) C (A B) = (C A) (C B) Notera att om C = U så får vi de Morgans lagar för absolutkomplementet (se förra bilden) Mängdlära 9. Predikatlogik och mängdlära 36/37
Sammanfattning Vi har talat om predikatlogik, härledning och substitution begrepp och regler i mängdläran förhållandet mellan logik och mängdlära Nästa föreläsning: Mängder och språk Vi kommer att fortsätta studera mängdläran, speciellt de mängder som kallas språk. Mängdlära 9. Predikatlogik och mängdlära 37/37