Forelesning 6: Frste-ordens logikk: syntaks og semantikk Roger Antonsen - 27. februar 2006 1 Frsteordens logikk - syntaks 1.1 Repetisjon og presiseringer Et frsteordens sprak L bestar av: 1. Logiske symboler konnektiver: ^, _,! og : hjelpesymboler: `(' og `)' og `,' kvantorer: 9 og 8 variable: V = fx 1 x 2 x 3 : : :g 2. Ikke-logiske symboler: en tellbar mengde konstantsymboler en tellbar mengde funksjonssymboler (med aritet) en tellbar mengde relasjonssymboler (med aritet) De ikke-logiske symbolene utgjr en signatur h c 1 c 2 c 3 : : : f 1 f 2 f 3 : : : konstantsy mboler f unksjonssy mboler R 1 R 2 R 3 : : : i. r elasjonssy mboler Vi sa flgende signaturer sist: enkelt sprak: h a f g P R i aritmetikk 1: h 0 s + = i aritmetikk 2: h 0 1 + = < i mengdelre: h \ [ = 2 i familierelasjoner:h Ola Kari mor far Mor Far Slektning i beundring: h a b Idol Liker i Hvis et frsteordens sprak L er gitt, sa far vi (denert induktivt): 1. Mengden T av termer i L: Enhver variabel og konstant er en term. Hvis f er et funksjonssymbol med aritet n og t 1 : : : t n er termer,sa er f (t 1 ::: t n ) en term. 2. Mengden F av formler i L: Hvis R er et relasjonssymbol med aritet n og t 1 : : : t n er termer,sa er R(t 1 : : : t n ) en (atomr) formel. 1
Hvis ' og Hvis ' er en formel og x er en variabel,sa er 8x' og 9x' formler. er formler,sa er :', (' ^ ), (' _ ) og ('! ) formler. Alle forekomster av en variabel x i ' sies a vre bundet i formlene 8x' og 9x' og innenfor skopet til den gjeldende kvantoren. I spraket for beundring ha b Idol Likeri kan vi uttrykke: 1: Alice liker Bob: Liker(a b) 2: Alice liker alle: 8xLiker(a x) 3: Alice liker alle som Bob liker: 8x(Liker(b x)! Liker(a x)) 4: Noen liker seg selv: 9xLiker(x x) 5: Bob liker alle som liker seg selv: 8x(Liker(x x)! Liker(b x)) 6: Ingen liker bade Alice og Bob: :9x(Liker(x a) ^ Liker(x b)) 8x(Liker(x a)! :Liker(x b)) 7: Noen liker ikke seg selv: 9x:Liker(x x) 8: Bob liker noen som liker Alice: 9x(Liker(b x) ^ Liker(x a)) 9: En som blir likt av alle er et idol: 8x(8yLiker(y x)! Idol(x)) 10: Et idol blir likt av alle: 8x(Idol(x)! 8y Liker(y x)) 1.2 Frie variable i termer Denisjon 1.1 (Frie variable i en term). FV(t) betegner mengden av frie variable i termen t. Denisjon 1.2 (Lukket term). En term t er lukket hvis FV(t) =, dvs. t inneholder ingen frie variable. Eksempel. I spraket ha b f i har vi: Termen f (x a) har en fri variabel x. Termen f (a b) har ingen frie variable og er en lukket term. 1.3 Rekursive denisjoner Nar mengder er denert induktivt, sa kan vi denere funksjoner over denne mengden rekursivt ved a 1. gi verdi til de \atomre" elementene (i basismengden), og 2. gi verdi til \sammensatte" elementene (fra induksjonssteget) ved a bruke verdiene som ble gitt til komponentene. Den presise, rekursive denisjonen av FV er flgende. Denisjon 1.3 (Frie variable - denert rekursivt). Gitt en term t, la mengden FV(t) av frie variable i t vre denert rekursivt ved: FV(x i ) = fx i g, for en variabel x i, og FV(c i ) =, for en konstant c i, og FV(f (t 1 : : : t n )) = FV(t 1 ) [ [ FV(t n ), for et funksjonssymbol f med aritet n. 2
1.4 Frie variable i formler Denisjon 1.4 (Frie variable i en formel). En variabelforekomst i en frsteordens formel er fri hvis den ikke er bundet, dvs. hvis den ikke er innenfor skopet til en kvantor. Vi skriver FV(') for mengden av frie variable i '. Eksempel (8xRxy ^ P z). x er bundet y er fri z er fri Eksempel (8xP xy! 8z P z x). x er bundet x er fri y er fri z er bundet Oppgave. Gi den presise, rekursive, denisjonen av frie variable i en formel. 1.5 Substitusjoner Denisjon 1.5 (Substitusjon for termer). La s og t vre termer og x en variabel. Da er s[t=x], det vi far ved a erstatte alle forekomster av x i s med t, denert rekursivt ved: 1. y [t=x] = t y hvis x = y ellers (nar s er en variabel y ). 2. c[t=x] = c (nar s er en konstant c). 3. f (t 1 [t=x] : : : t n [t=x]) (nar s er en funksjonsterm f (t 1 : : : t n )). Eksempel. f (x y a)[y =x]= f (x[y =x] y [y =x] a[y =x])= f (y y a) f (y y a)[b=y ]= f (y [b=y ] y [b=y ] a[b=y ])= f (b b a) Denisjon 1.6 (Substitusjon for formler). '[t=x] er denert rekursivt ved: 1. R(t 1 : : : t n )[t=x] = R(t 1 [t=x] : : : t n [t=x]) 2. : [t=x] = :( [t=x]) 3. (' 1 ' 2 )[t=x] = (' 1 [t=x] ' 2 [t=x]), hvor 2 f^ _!g 3
4. Qy [t=x] = Qy ( [t=x]) Qy hvis x 6= y ellers, hvor Q 2 f8 9g Eksempel. (P xy ^ 8xP xy )[a=x] = (P ay ^ 8xP xy ) (P xy ^ 8xP xy )[a=y ] = (P xa ^ 8xP xa) Vi ser at substitusjon ikke blir gjort for bundne variable. Vi har enda et tilfelle hvor vi nsker a forhindre substitusjon. Eksempel. 9xLiker(x y )[f (x)=y ] = 9xLiker(x f (x)) Her blir en variabel bundet etter substitusjon. Dette kan endre meningen til en formel pa en mate som vi ikke nsker. Denisjon 1.7. Vi sier at t er fri for x i ' hvis ingen variabel i t blir bundet som flge av a substitutere t for x i '. Eksempel. Termen f (x) er ikke fri for y i formelen 9xLiker(x y ). En mate a unnga dette pa er a omdpe bundne variable frst. F.eks. se pa 9zLiker(z y ) i stedet for 9xLiker(x y ). Fra na av antar vi at alle substitusjoner er \fri for", dvs. at ingen variable blir bundet som flge av en substitusjon. 1.6 Lukkede og apne formler Denisjon 1.8 (Lukket/apen formel). En formel ' er lukket hvis FV(') =, dvs. ' inneholder ingen frie variable. En formel er apen hvis den ikke inneholder noen kvantorer. Eksempel. 8xP xa er lukket 8xP xy er ikke lukket P xy er ikke lukket, men apen P ab er apen og lukket 4
2 Frsteordens logikk - semantikk 2.1 Introduksjon Hvordan skal vi tolke frsteordens formler? Hva skal 8x' og 9x' bety? Hva kan vi bruke frsteordens formler til a uttrykke? (Hva er det frsteordens formler ikke kan uttrykke?) Hva gjr en formel sann / gyldig / oppfyllbar? A gi en semantikk er a si noe om forholdet mellom sprak og virkelighet. Valuasjoner gir en semantikk for klassisk utsagnslogikk. Kripke-modeller gir en semantikk for intuisjonistisk logikk. I frsteordens logikk vil modeller gi oss en semantikk. En modell bestar intuitivt av 1. en mengde, og 2. en tolkning av alle ikke-logiske symboler slik at et konstantsymbol tolkes som et element i mengden, et funksjonssymbol tolkes som en funksjon pa mengden, og et relasjonssymbol tolkes som en relasjon pa mengden. Vi skal frst denere modeller helt presist, ogsa skal vi denere hva det vil si at en formel er sann i en modell. Husk Hvis D en mengde, sa bestar D n av alle n-tupler av elementer fra D, for n 0. D n = fhd 1 : : : d n i j d 1 : : : d n 2 Dg 2.2 Modeller La et frsteordens sprak L vre gitt. Denisjon 2.1 (Modell). En modell M for L bestar av en ikke-tom mengde D, kalt domenet til M, og en funksjon ( ) M som tolker alle ikke-logiske symboler pa flgende mate: Hvis c er et konstantsymbol, sa er c M 2 D. Hvis f er et funksjonsymbol med aritet n,sa er f M en funksjon fra D n = D D til D. n 5
Hvis R er et relasjonssymbol med aritet n,sa er R M en relasjon pa D n = D D. n Vi skriver jmj for domenet D til modellen M. Noen kommentarer 1. Et funksjonssymbol f med aritet 0 kan betraktes som en konstant. Da er f M en funksjon fra D 0 til D. Siden D 0 bestar av kun ett element hi - det tomme tuppelet - sa bestar f M ogsa av kun ett element hhi ei, hvor e 2 D. Vi kan derfor identisere f M med e. 2. Et relasjonssymbol R med aritet 0 kan betraktes som en utsagnsvariabel. Da er R M en delmengde av D 0. Siden D 0 bestar av kun ett element hi - det tomme tuppelet -sa ns det nyaktig to muligheter for R M. Enten sa er R M tom eller sa er hi 2 R M. Vi kan derfor tenke pa D 0 som Bool. 3. Et tuppel hei, hvor e 2 D, kan vi identisere med elementet e. Nar et relasjonssymbol R har aritet 1,sa skriver vi derfor fe 1 : : : e n g i stedet for fhe 1 i : : : he n ig. Vi antar derfor ogsa at R M D. 2.3 Hovedeksempel - et gursprak Relasjonssymbol aritet Sirkel 1 Firkant 1 Trekant 1 Stor 1 Liten 1 Mindre 2 Konstantsymboler: a b c d e f. Funksjonssymboler: ingen. Vi leser pa denne maten: Sirkel(x): \x er en sirkel" Firkant(x): \x er en rkant" Trekant(x): \x er en trekant" Stor(x): \x er stor" Liten(x): \x er liten" Mindre(x y ): \x er mindre enn y " 6
La oss na lage en modell for dette spraket! En tolkning av gurspraket La M vre en modell med domene D = a M = Sirkel M = b M = Firkant M = c M = Trekant M = d M = Stor M =. e M = Liten M = f g f M = Mindre M = : : : Vi foregriper begivenhetene og ser pa hvilke atomre formler som er sanne og usanne i modellen M. a b c d e f Sant Usant Sirkel(a) Firkant(c) Liten(b) Mindre(b e) Trekant(a) Stor(b) Mindre(a b) Mindre(a a) 2.4 Tolkning av termer og formler Vi sa i eksempelet over at vi hadde et konstantsymbol for hvert element i domenet, men det er ikke alltid slik. Nar vi skal tolke formler er det nyttig a ha en konstant for hvert element. Denisjon 2.2 (Utvidet sprak L(M)). La L vre et frsteordens sprak og M en modell for L. Da er L(M) det frsteordens spraket man far fra L ved a legge til nye konstantsymboler for hvert element i jmj. Hvis a er i jmj, sa skriver vi a for den nye konstanten. Hvis N er en modell for L(M), sa krever vi at a N = a. 7
Nar vi tolker termer og formler fra spraket L i en modell M, sa bruker vi det utvidete spraket L(M) og antar at M er en L(M)-modell. Denisjon 2.3 (Tolkning av lukkede termer). La L vre et frsteordens sprak og M en modell for L. Anta at M er en L(M)-modell. Da tolker vi en lukket term f (t 1 : : : t n ) pa flgende mate: f (t 1 : : : t n ) M = f M (t M 1 : : : tm n ): Oppgave. Dette er en rekursiv denisjon. Skriv ut hele denisjonen. Denisjon 2.4 (Tolkning av lukkede formler). La L vre et frsteordens sprak og M en modell for L. Anta a M er en L(M)-modell. Vi denerer ved rekursjon hva det vil si at en formel ' er sann i M vi skriver M j= ' nar ' er sann i M / M gjr ' sann. For atomre formler: M j= R(t 1 : : : t n ) hvis (t M : : : tm 1 n ) 2 RM. M j= :' hvis det ikke er tilfelle at M j= '. M j= ' ^ hvis M j= ' og M j=. M j= ' _ hvis M j= ' eller M j=. M j= 8x' hvis M j= '[a=x] for alle a i jmj. M j= 9x' hvis M j= '[a=x] for minst en a i jmj. Denisjon 2.5 (Oppfyllbarhet). En lukket formel ' er oppfyllbar hvis det ns en modell M som gjr ' sann. Vi sier ogsa at M oppfyller ' og at M en en modell for '. Oppfyllbar Ikke oppfyllbar 9xLiten(x) 9x(Liten(x) ^ Stor(x)) 9xP x! 8xP x P a ^ :P a 9x(Liten(x) ^ :Liten(x)) :Stor(a) ^ 8xStor(x) Denisjon 2.6 (Gyldighet). En lukket formel ' er gyldig hvis den er sann i alle modeller M, ellers sa er den falsiserbar. Gyldig Ikke gyldig (falsserbar) 8xP xa! 8z P z a (8xP x ^ 8y Qy )! 8xP x 9xLiten(x) _ 9x:Liten(x) 8xP x 9xStor(x)! 8xStor(x) 9xP x! 9x(P x ^ Qx) 8