INF3170 / INF4171 Predikatlogikk: Syntaks og semantikk Andreas Nakkerud 1. september 2015
Predikatlogikk Utsagnslogikk: p 0, p 1, p 1 p 6, p 2 p 1 Predikatlogikk: (( x)p 1 (x)), (( x)(( y)p 4 (x, y)))
Predikatlogikk (( x)( y)x y) Sant for de naturlige tallene (x = 0). Usant for heltallene (uansett hva x er, så er x 1 mindre). (( z)( w)w < x) Sant for heltallene (w = z 1). Usant for de naturlige tallene (z = 0).
Strukturer En struktur (eng: structure) er en ordnet sekvens A, R 1,..., R n, F 1,..., F m, {c i i I }, hvor A er en ikke-tom mengde, R 1,..., R n er relasjoner på A, F 1,..., F m er (totale) funksjoner fra A k til A, og c i (i I ) er elementer i A (konstanter). Den ordnede mengden av naturlige tall med addisjon og med konstantene 0 og 1 er strukturen N, <, +, {0, 1}
Similaritetstyper Similaritetstypen (eng: similarity type) til en struktur A, R 1,..., R n, F 1,..., F m, {c i i I } er en ordnet sekvens r 1,..., r n ; a 1,..., a m ; κ, hvor R i A r i, Fj : A a j A og κ = {c i i I }. Similaritetstypen til N, <, S, +, {0, 1} er 2; 1, 2; 2.
Alfabet for predikatlogikk Vi antar similaritetstype r 1,..., r n ; a 1,..., a m ; κ. Alfabetet for predikatlogikk består av følgende: 1. Predikatsymboler: P 1,..., P n 2. Funksjonssymboler: f 1,..., f m 3. Konstantsymboler: c i for hver i I 4. Variabler: x 0, x 1, x 2,... (tellbart mange) 5. Konnektiver:,,,,,,, 6. Hjelpesymboler: (, ).
Termer Mendgen av termer (eng: terms) TERM er den minste mengden X slik at (i) c i X (i I ) og x i X (i N), (ii) t 1,..., t ai X f i (t 1,... t ai ) X, for 1 i m. En term som ikke innholder variabler kalles en lukket (eng: closed) term. Eksempler: x 0, f 2 (x 0 ), f 0 (x 0, f 2 (x 0 )). Fra eksemplet ser vi at a 2 = 1 og at a 0 = 2.
Formler Mendgen av formler (eng: formulas) FORM er den minste mengden X slik at (i) X, hvis r i = 0 så P i X, og hvis t 1,..., t ri TERM så P i (t 1,..., t ri ) X, (ii) F, G X (F G) X, (iii) F X ( F ) X, (iv) F X (( x i )F ), (( x i )F ) X, for all i N. Dersom vi ønsker å droppe parenteser bruker vi at og binder like sterkt som.
Frie variabler Mendgen FV (t) av frie variabler i termen t er definert ved at (i) FV (x i ) = {x i } og FV (c i ) =, (ii) FV (f (t 1,..., t n )) = FV (t 1 )... FV (t n ). I (ii) har vi droppet indeksen på f og antar at vi oppgir rett antall termer.
Frie variabler Mengden FV (G) av frie variabler i formelen G er definert ved at (i) FV (P(t 1,..., t n )) = FV (t 1 )... FV (t n ) og FV ( ) = FV (Q) = (hvor Q er 0-ær). (ii) FV (F G) = FV (F ) FV (G) og FV ( G) = FV (G). (iii) FV ( xg) = FV ( xg) = FV (G) \ {x}. t (hhv. G) kalles lukket dersom FV (t) = (hhv. FV (G) = ). En lukket formlen kalles en setning. En formel uten kvantorer kalles åpen. TERM c er mengden av lukkede termer, SENT er mengden av setninger.
Substitusjon La s og t være termer. Da er s[t/x] definert ved at { y, hvis y x y[t/x] = t, hvis y x c[t/x] = c f (t 1,..., t n )[t/x] = f (t 1 [t/x],..., t n [t/x]) Med x y mener vi at x og y er samme variabelsymbol.
Substitusjon F [t/x] er definert ved at [t/x] = P[t/x] = P P(t 1,..., t n )[t/x] = P(t 1 [t/x],..., t n [t/x]) (F G)[t/x] = F [t/x] G[t/x] ( F )[t/x] = F [t/x] { y.f [t/x], ( y.f )[t/x] = y.f, { y.f [t/x], ( y.f )[t/x] = y.f, hvis x y hvis x y hvis x y hvis x y
Substitusjon F [G/$] er definert ved at p i [G/$] = { p i, hvis p i $ G, hvis p i $ (F 1 F 2 )[G/$] = F 1 [G/$] F 2 [G/$] ( F 1 )[G/$] = F 1 [G/$] ( yf )[G/$] = y.f [G/$] ( yf )[G/$] = y.f [G/$]
Fri substitution t er fri for x i F hvis (i) F er atomær, (ii) F = F 1 F 2 (hhv. F = F 1 ) og t er fri for x i F 1 og F 2 (hhv. F 1 ), (iii) F = yg (hhv. F = yg), t er fri for x i G, og hvis x FV (F ) så er y FV (t). Lemma t er fri for x i F variablene fra t blir i F [t/x] ikke bundet av en kvantor.
Fri substitusjon F er fri for $ i G hvis (i) G er atomær, (ii) G = G 1 G 2 (hhv. G = G 1 ) og F er fri for $ i G 1 og G 2 (hhv. i G 1 ), (iii) G = yh (hhv. yh), F er fri for $ i H, og hvis $ forekommer i G, så er y FV (F ). Lemma F er fri for $ i G de frie variablene i F blir i G[F /$] ikke bundet av en kvantor.
Utvidet språk Det utvidede språket, L(A), for A fåes fra språket L, av type A, ved at vi legger til konstantsymboler for alle elementer i A. Vi lar a være symbolet for a A. Vi bruker vanligvis gotiske bokstaver (L A TEX: \mathfrak{}) A, B, C,... til å representere strukturer. A er mengden av konstanter i A.
Tolking av termer En tolkning (eng: interpretation) av de lukkede termene fra L(A) over A, er en mapping (.) A : TERM c A som tilfredsstiller (i) (c i ) A = c i (= [[c i ]] A ) og (a) A = a(= [[a]] A ), (ii) (f i (t 1,..., t n )) A = F i (t A 1,..., t A n ). Symboler for elementer i A tolkes som elementene selv. Konstantsymboler tolkes som de konstantene de representerer. Funksjonssymboler tolkes som de funksjonene de representerer.
Tolkning av setninger (lukkede formler) En tolkning av setningene F fra L(A) over A er en mapping [[.]] A : SENT {0, 1} som tilfredsstiller [[ ]] A = 0 [[P]] A = P (i.e. 0 eller 1) { 1, hvis t1 A,..., tn A P i [[P i (t 1,... t n )]] A = 0, ellers [[ xf ]] A = max{[[f [a/x]]] A a A } [[ xf ]] A = min{[[f [a/x]]] A a A } For,,, er [[.]] A definert som for utsagnslogiske formler.
Oppfyllbarhetsrelasjonen = Vi lar A = F stå for [[F ]] A = 1. Vi sier at F er sann i A, at F er en semantisk konsekvens (logisk konsekvens) av A og at A er en modell for F. Hvis F er en formel med frie variabler FV (F ) = {x 1,..., x n }, så sier vi at F oppfylles av a 1,..., a n A dersom A = F [a 1,..., a n /x 1,..., x n ]. F er oppfyllbar i A dersom den oppfylles av elementer i A. F er oppfyllbar hviss A = x 1... x n F.
Universell tillukning La FV (G) = {z 1,..., z n }, da er den universelle tillukningen (eng: universal closure) av G gitt ved Cl(G) = z 1... z n G. Videre har vi at (i) A = G hviss A = Cl(G), (ii) = G hviss A = G for alle A av rett type, (iii) A = Γ hviss A = F for alle F Γ, (iv) La Γ {G} SENT. Γ = G hviss (A = Γ A = G).
Semantisk konsekvens Lemma Dersom vi begrenser oss til setninger har vi at (i) A = F G A = F og A = G, (ii) A = F G A = F eller A = G, (iii) A = F A = F, (iv) A = F G (A = F A = G), (v) A = F G (A = F A = G), (vi) A = xf A = F [a/x] for alle a A, (vii) A = xf A = F [a/x] for minst én a A.