Föreläsning 8 Logik med tillämpningar 000413 Innehåll Lite mer om värderingar och tolkningar Semantiska tablåer i predikatlogiken Kapitel 3.5 Satisfierbarhet hos en formel En formel A är satisfierbar om det finns en tolkning v så att v(a) = T. Sanningsvärdet på p(t 1,,t n )berorpå värderingen av termerna v(t 1 ), v(t n ) Boken tar bara upp värderingar av stängda formler! Satisfierbar blir samma sak som Sann i tolkningen I I öppna formler måste även variabeln få ett värde i värderingen. Dvs vi får olika värderingar beroende på hur vi ger variabeln värden.
Semantiska tablåer för predikatlogik Grunden är densamma: En metod för att avgöra om en formel är satisfierbar. Bryter ned formler efter speciella regler och stannar i en öppen (satisfierbar formel) eller stängd tablå. Om tablån för en negerad formel stänger är formeln valid. Nu måste vi kunna hantera kvantifierade formler också. Instansiering xa(x) är en kvantifierad formel och a är en konstant. När man byter ut alla x mot a i formeln (bildar A(a)) får man en instans av xa(x). Att substituera en konstant för en kvantifierad variabel kallas för instansiering. Nya regler: xa(x) xa(x) A(a), xa(x) A(a), xa(x) Allkvantifierade formler valfri konstant xa(x) xa(x) A(a) A(a) Existenskvantifierade formler ny konstant α-regler: α α 1 α 2 A A A 1 A 2 A 1 A 2 (A 1 A 2 ) A 1 A 2 (A 1 A 2 ) A 1 A 2 A 1 A 2 A 1 A 2 A 2 A 1 När båda delarna i formeln måste satisfieras för att hela formeln skall vara satisfierbar används en alfa-regel.
β-regler: β β 1 β 2 B 1 B 2 B 1 B 2 (B 1 B 2 ) B 1 B 2 B 1 B 2 B 1 B 2 (B 1 B 2 ) (B 1 B 2 ) (B 2 B 1 ) Om den yttersta operatorn medför att en av delarna i formeln måste satisfieras används en beta-regel. Viktigt att komma ihåg! När vi skapar konstanter för existenskvantifierade formler måste ta en ny konstant varje gång. En allkvantifierad formel tas inte bort när man skapar en instans eftersom den gäller för alla x. Här väljer man en konstant som redan finns. x yp(x,y) x yp(x,y), yp(a 0,y) x yp(x,y), p(a 0,a 1) x yp(x,y), yp(a 1,y), p(a 0,a 1) Infinita modeller Semantiska tablåer terminerar inte alltid Problemet: Vivetinteomengrenärinfinit eller om den kommer att stängas efter x steg Semantiska tablåer är alltså inte en beslutsprocedur för validitet för predikatlogiken.
Vi vet i alla fall att: Sundhet A är en predikatlogisk formel, och T dess tablå. Om T är stängd, så är A osatisfierbar. Fullständighet Om A inte är satisfierbar, så är T stängd. Om A är valid, så är tablån för A stängd. Men semantiska tablåer är alltså inte en beslutsprocedur i predikatlogiken! Det finns ytterligare ett problem vi måste hantera vid konstruktionen av tablåer (vilken formel man ska välja): x yp(x,y), x(p(x) p(x)) x yp(x,y), yp(a 0,y), x(p(x) p(x)) x yp(x,y), p(a 0,a 1 ), x(p(x) p(x)) x yp(x,y), yp(a 1,y), p(a 0,a 1), x(p(x) p(x)) Tips för semantiska tablåer Använd existensregler före allregler. Tablån blir mindre om man försöker använda α-regler före β-regler. Om man hittar ett komplementerande par av formler kan man stanna redan där. För att visa satisfierbarhet räcker det att visa att ett löv är öppet. För att visa osatisfierbarhet måste man visa att alla löv är stängda.
Är dessa formler valida? ( xa(x) xb(x)) x(a(x) B(x)) x(a(x) B(x)) x(a(x) xb(x)) Exempel på problemlösning All fruit is tasty if it is not cooked. This apple is not cooked. Therefore it is tasty. All that glistens is not gold. This pot does not glisten. Therefore it is gold. Om en kurs är lätt så är några studenter lyckliga. Om en kurs har en tenta så är inga studenter lyckliga. Visa att om en kurs har en tenta så är kursen inte lätt. Exempel på problemlösning 2: All that glistens is not gold. This pot does not glisten. Therefore it is gold. glisten(x) - x glistens gold(x) - x is gold A 1 = All that glistens is not gold = x(glisten(x) gold(x)) A 2 = This pot does not glisten = glisten(pot) A = Therefore it is gold. = gold(pot)
Är slutsatsen korrekt? Vill visa {A 1,A 2 } =A,dvsattA 1 A 2 A är valid eller att A 1 A 2 Aärenmotsägelse. Kan starta tablån med formlerna A 1,A 2, A eftersom man annars använder 2 α-regler på raken för att nå det resultatet. I vårt fall startar vi alltså med x(glisten(x) gold(x)), glisten(pot), gold(pot) x(glisten(x) gold(x)), glisten(pot), gold(pot) glisten(a) gold(a), glisten(pot), gold(pot) glisten(a), gold(a), glisten(pot), gold(pot) O Tablån är öppen, alltså kan ursprungsformeln inte vara valid. Den kan falsifieras men frågan är om det är en motsägelse? Måste göra ny tablå för ursprungsformeln. Observera att ursprungsformeln är A 1 A 2 Aeller ( x(glisten(x) gold(x)) glisten(pot)) gold(pot) ( x(glisten(x) gold(x)) glisten(pot)) gold(pot) ( x(glisten(x) gold(x)) glisten(pot))) gold(pot) x(glisten(x) gold(x)) glisten(pot)) O oändlig! O Tablån öppen, alltså är formeln satisfierbar (och falsifierbar eftersom den inte var valid). Slutsats: Man får inte dra slutsatsen som antogs men det finns krukor av guld.
Exempel på problemlösning 3: Om en kurs är lätt så är några studenter lyckliga. Om en kurs har en tenta så är inga studenter lyckliga. Visa att om en kurs har en tenta så är kursen inte lätt. l(x) = kursen x är lätt, s(x) = studenten x är lycklig t(x) = kursen x har en tenta A 1 = Om en kurs är lätt så är några studenter lyckliga. = x (l(x) y s(y)) A 2 = Om en kurs har en tenta så är inga studenter lyckliga. = x y(t(x) s(y)) A = Om en kurs har en tenta så är kursen inte lätt. = x(t(x) l(x)) Vi börjar med att kolla validitet: x(l(x) y s(y)), x y(t(x) s(y)), x(t(x) l(x)) x(l(x) ys(y)), x y(t(x) s(y)), (t(k) l(k)) x(l(x) ys(y)), x y(t(x) s(y)), t(k), l(k) x(l(x) ys(y)),l(k) ys(y), x y(t(x) s(y)), t(k), l(k) A 1 (x), l(k), A 2 (x,y),t(k),l(k) X A 1 (x), ys(y),a 2 (x, y), t(k), l(k) A 1 (x), s(a), x y(t(x) s(y)), t(k), l(k) A 1 (x), s(a), A 2 (x, y), y(t(k) s(y)), t(k), l(k) A 1 (x), s(a), A 2 (x, y), y(t(k) s(y)), t(k) s(a),t(k),l(k) A 1 (x), s(a), A 2 (x, y), B(y), t(k), t(k), l(k) X A 1 (x), s(a), A 2 (x, y), B(y), s(a), t(k), l(k) X