Innehåll Föreläsning 7 Logik med tillämpningar 99-03-01 Första ordningens predikatlogik Objekt, predikat, kvantifierare Funktioner, termer, wffs Bindning och räckvidd Tolkningar och värderingar Satisfiering, sanning, validitet Kapitel 6 Satslogiken är för grov Försök uttrycka detta i satslogik: Alla män är dödliga. Sokrates är en man. Därför är Sokrates dödlig Intuitivt förstår vi att utsagan är valid men i satslogiken skulle formeln se ut så här: A =S= D och det är inte en valid formel. En del fåglar kan inte flyga. Samma sak i predikatlogik: x(man(x) dödlig(x)) man(sokrates) dödlig(sokrates) Hela implikationen uttrycks som man(sokrates) = x(man(x) =dödlig(x)) =dödlig(sokrates) x(fågel(x) flyga(x))
Notera att man måste hålla isär symbolerna i språket och den mening vi ger symbolerna. De mekaniska formelmanipulationer vi skall ägna oss åt tar ingen hänsyn till eventuella kopplingar mellan symbolers namn och verkliga saker och egenskaper vi gör i vårt huvud. x(fågel(x) flyga(x)) kan lika gärna stå för det finns människor som inte kan läsa. Predikat och relationer När vi hävdar något om ett objekt vill vi symbolisera både objektet och det som vi hävdar. Vi kallar detta för predikat.( Wearepredicating some property of the object ) Fåglar kan flyga. Katten är svart. Förutom egenskaper så behöver man ofta prata om relationer mellan objekt. Lisa är äldre än Stina. Kuben ligger mellan cirklarna. Predikatet kan ses som en relation över en given domän. Det vi har lärt oss om satslogiken kan nu överföras på predikatlogiken. Vi har infört domäner och predikat, vilket komplicerar detaljerna, men de underliggande mekanismerna kvarstår. För att undvika att behöva referera till element i specifika domäner inför vi kvantifierare för att kunna uttrycka att ett predikat är sant för några eller alla element i en domän. Kvantifierare =kallas för allkvantor och uttrycket x uttalas för alla x kallas för existenskvantor och uttalas "det finns ett x eller det existerar ett x. Kvantifierare binder lika starkt som negation Ienkvantifierad formel som ( x A) kallas x för kvantifierad variabel eller bunden variabel och formeln A är räckvidden för x. x måste inte förekomma i A.
Exempel på formler x y(p(x, y) p(y, x)) y p(x, y) x y(p(x) p(y)) x p(a, x) x x (se 6.2.2 för ett exempel som visar detta.) Funktioner Vissa saker är svåra att uttrycka med predikat: x=>y (x+1)>(y+1) gt(x, y) gt(x+1, y+1)?? x+1? Jo Ann s father likes music. x(f(x, j) L(x,m)?? Har Jo Ann fler pappor? Behöver använda oss av funktioner. gt(x, y) gt(plus(x,1), plus(y,1)) L(f(j), m) Första ordningens språk Alfabetet konstanter (c 1,c 2,c 3,...) variabler (x 1,x 2,x 3, ) funktionsbokstäver (f 1n,f 2n,f 3n, ) predikatbokstäver (p 1n,p 2n,p 3n, ) logiska konnektiv,=,=,=,= kvantifierare,= (,)och, f 1n - n är ariteten av funktionen (antal argument) Termer Termer står för objekt och definieras: Varje konstant är en term Varje variabel är en term Omt 1,t 2,,t n är termer så är f 1n (t 1,t 2,,t n )enterm Inget annat är termer. a, x, f(a, x) och g(f(a, f(x)) är exempel på termer En term är sluten (stängd, closed) om den inte innehåller variabler.
Formler En formel (wff) definieras: p 1n (t 1,t 2,,t n ) är en formel där alla t i är termer. Om A och B är formler så är ( A), (A B), (A B), (A B) och (A B) också formler. Om A är en formel så är x i A också det. Om A är en formel så är x i A också det. Inget annat är en formel. p(a, b), p(x, f(a, b, c)) och p(x, g(x)) är exempel på formler Varför första ordningen? I första ordningens predikatlogik tillåter vi kvanitifering av variabler. Dvs för alla x gäller att... I högre ordningens logiker kan man även kvantifiera predikaten och funktionerna. Ibland kallas satslogiken för nollte ordningens predikatlogik. Formler Wffsavtypenp 1n (t 1,t 2,,t n ) kallas för atomiska formler eller atomer. En formel är sluten (stängd, closed) om den inte innehåller fria variabler. (se definition senare) Som konstanter använder vi a, b, c, variabler x, y, z, funktioner f, g, h och för predikat p, q, r Räckvidd och bindning I formlerna x i Aoch x i A sägs A vara räckvidden för variablen x i. Iformeln x(p(x, y) p(x)) är räckvidden för x p(x, y) p(x) medan i formeln xp(x, y) p(x) är räckvidden för x endast p(x, y). Iformeln x(p(x, y) p(x)) är variabeln x bunden medanyärfri. En variabel x i är bunden om den är inom räckvidden för en kvantifierare x i A eller x i A.
Substitution Om A är en wff står A(x, y) för att det kan finnas fria förekomster av x och y i A. Substitution står för att man byter ut alla förekomster av en fri variabel (tex y) mot en term (konstant, variabel, funktion etc). MEN det man substituerar med får inte innehålla en variabel som blir bunden! xa(y) - y kan bytas ut mot exempelvis a, z, f(z) men inte x eller f(x), x 1 ( x 2 A(x 1,x 2,x 3 ) x 3 A(x 3,x 4 )) x 1 och x 2 är bundna i formeln ovan, x 4 är fri och x 3 har en fri förekomst och en bunden. x 5 är fri för x 4 (dvs x 4 kan bytas ut mot x 5 ) x 4 är fri för x 4 f(x 5 ) är fri för x 4 f(x 2 ) är fri för x 4 Alla termer som ej innehåller x 1 och x 3 är fri för x 4 osv se exempel 6.1 sidan 125 är fri för... En term med enbart konstanter är fri för alla variabler i alla formler. En variabel är alltid fri för sig själv. En term är fri för alla bundna variabler. En term är fri för varje variabel i A om ingen av variablerna i termen är bundna i A. Tolkningar För att ge en syntaktisk formel semantisk mening måste man tolka den. En tolkning I=(D,{d 1,,d k }, {F 1,,F m }, {R 1,...,R n }) består av: D, en icke-tom domän av objekt. En tilldelning av ett element d i D till varje konstant a i. En tilldelning av en funktion F i :D n D till varje funktionssymbol f i En tilldelning av en relation R i D n till varje predikatsymbol p i x(a(x) B(x))
Värdering (valuation) En värdering v under en tolkning I i ett första ordningens språk L är en funktion från termerna i språket L till domänen D så att: v(c i ) = I(c i ), dvs värdet av en konstant är given av tolkningen. v(f in (t 1,t 2,,t n ))=f in (v(t 1 ), v(t 2 ),, v(t n )) v(x i ) D, dvs varje variabel mappas till ett element i D Satisfiering Låt I vara en tolkning i ett språk L, v en värdering under tolkningen I och A en wff. Då gäller att: Om A är en atom p 1n (t 1,t 2,,t n )såsatisfierar v A (med andra ord v(a) = T) omm R in (v(t 1 ), v(t 2 ),, v(t n )) gäller i domänen D. OmA= B gäller att v( B) = T omm v(b) = F. Om A = B op C gäller att v(b op C) följer sannings-tabellen för op. Om A = xb gäller att v( xb) = T omm v satisfierar B för alla element i D Om A = xb gäller att v( xb) = T omm v satisfierar B för något element i D Man skriver v(a) för det tolkade värdet av A. Modeller, satisfierbarhet,validitet En formel A är sann i en tolkning I om varje värdering v satisfierar A. (Falsk om ingen gör det). OmAärsannitolkningenI,ärIenmodell för A. Notation I A En formel A är satisfierbar om det finns en tolkning I så att I A. A är valid om I A för alla tolkningar I. Notation A. En formel kan alltså vara Satisfierbar - om formeln är satisfierad i någon värdering i en given tolkning. Sann i tolkningen I - om formeln är satisfierad i alla värderingar i tolkningen I. Valid - om formeln är satisfierad i alla värderingar i alla tolkningar. Motsägelse - om formeln inte är satisfierad i någon värdering i någon tolkning.
Sanningsvärden för öppna formler då? En formel med fria variabler kan bara få värderingar för givna värden på de fria variablerna. Det går inte att uttala sig om satisfierbarhet i allmänhet. Men detta gäller: En öppen formel är satisfierbar omm dess existential closure är satisfierbar. En öppen formel är valid omm dess universial closure är valid.