Az informatika logikai alapjai Várterész Magda DE, Informatikai Kar PTI BSc és informatikatanár hallgatók számára 2017.
Az elsőrendű logikai nyelv interpretációja L interpretációja egy I-vel jelölt függvénynégyes, ahol I Srt, I Pr, I Fn, I Cnst 1. az I Srt : π U π függvény megad minden egyes π Srt fajtához egy U π nemüres halmazt, a π fajtájú individuumok (elemek) halmazát (a különböző fajtájú elemek halmazainak uniója az interpretáció univerzuma),
Az elsőrendű logikai nyelv interpretációja 2. az I Pr : P P I függvény megad minden (π 1, π 2,..., π k ) alakú P Pr predikátumszimbólumhoz egy P I : U π1 U π2... U πk {i, h} logikai függvényt (relációt), 3. az I Fn : f f I függvény hozzárendel minden (π 1, π 2,..., π k, π) alakú f Fn függvényszimbólumhoz egy f I : U π1 U π2... U πk U π matematikai függvényt (műveletet), 4. az I Cnst : c c I függvény pedig minden π fajtájú c Cnst konstansszimbólumhoz az U π halmaz egy elemét rendeli, azaz c I U π.
Változókiértékelés és variánsa Legyen egy elsőrendű logikai nyelvnek I egy interpretációja, az interpretáció univerzuma legyen U és jelölje V a nyelv változóinak a halmazát. I-beli változókiértékelésnek nevezzük a κ: V U leképezést, ha κ minden π fajtájú változóhoz az I interpretációban a π-hez rendelt U π halmazból rendel értéket. Legyen x egy változó. A κ változókiértékelés a κ változókiértékelés x-variánsa, ha κ (y) = κ(y) minden x-től különböző y változó esetén.
Term interpretációbeli értéke változókiértékelés mellett Az elsőrendű logikai nyelv egy π fajtájú t termjének értéke egy I interpretációban, egy κ változókiértékelés mellett az alábbi módon meghatározott U π -beli elem, amire a t I,κ jelöléssel hivatkozunk: 1 ha c π fajtájú konstansszimbólum, akkor c I,κ c I (c I U π ), 2 ha x π fajtájú változó, akkor x I,κ κ(x) (κ(x) U π ), 3 ha az f Fn függvényszimbólum alakja (π 1, π 2,..., π k, π), és t 1, t 2,..., t k rendre π 1, π 2,..., π k fajtájú termek, akkor a belőlük készített π fajtájú term U π -beli értékét a t 1 I,κ U π1, t 2 I,κ U π2,..., t k I,κ U πk értékekből következőképpen számítjuk: f (t 1, t 2,..., t k ) I,κ f I ( t 1 I,κ, t 2 I,κ,..., t k I,κ ).
Formula interpretációbeli értéke változókiértékelés mellett Egy C formulához I-ben a κ változókiértékelés mellett az alábbi C I,κ -val jelölt igazságértéket rendeljük: { 1 P(t 1,..., t k ) I,κ i ha P I ( t 1 I,κ,..., t k I,κ ) = i, h egyébként. 2 A I,κ A I,κ, 3 A B I,κ A I,κ B I,κ, 4 A B I,κ A I,κ B I,κ, 5 A B I,κ A I,κ B I,κ, 6 xa I,κ { i, ha A I,κ = i κ minden κ x-variánsára, h, egyébként. 7 xa I,κ { i, ha A I,κ = i κ valamely κ x-variánsára, h, egyébként.
Csak a kifejezés paramétereinek kiértékelése számít Az elsőrendű nyelvnek legyen I egy interpretációja, κ 1 és κ 2 pedig olyan I-beli változókiértékelések, amelyek megegyeznek változóknak egy S halmazán. Ha egy t termben csak S-beli változók fordulnak elő, akkor t I,κ 1 = t I,κ 2. Ha az A formula olyan, hogy Par(A) S, akkor A I,κ 1 = A I,κ 2. Tehát ha a kifejezés paraméterei az x 1, x 2,..., x n változók, akkor csak ezen változók kiértékelését kell ismerni a kifejezés értékének meghatározásához. Szokásos jelölés: x 1 u 1, x 2 u 2,..., x n u n. Amennyiben a logikai kifejezés zárt, értékét egyedül az interpretáció határozza meg.
Példa - 1. Az elsőrendű logikai nyelv: {π}, {P (π) }, {f (π,π) }, {c (π) }. Az első interpretáció: I Srt (π) = {hétfő, kedd, szerda, {..., vasárnap}. I Pr (P) = P I, ahol P I i, ha u {hétfő,..., péntek}, (u) = h, egyébként. I Fn (f ) = f I, ahol f I (u) az u-ra következő nap. I Cnst (c) = c I, ahol c I a vasárnap. Változókiértékelés κ(x) = hétfő, κ(y) = kedd, κ(z) = szombat,... c I = vasárnap, x I,κ = hétfő f (c) I = f I ( c I ) = f I (vasárnap) = hétfő, f (x) I,κ = f I ( x I,κ ) = f I (hétfő) = kedd P(c) I = P I ( c I ) = P I (vasárnap) = h P(x) I,κ = P I ( x I,κ ) = P I (hétfő) = i
Példa - 1. Változókiértékelés κ(x) = hétfő, κ(y) = kedd, κ(z) = szombat,... A κ változókiértékelés x-variánsai κ 1 (x) = hétfő, κ 1 (y) = kedd, κ 1 (z) = szombat,... κ 2 (x) = kedd, κ 2 (y) = kedd, κ 2 (z) = szombat,... κ 3 (x) = szerda, κ 3 (y) = kedd, κ 3 (z) = szombat,.... κ 7 (x) = vasárnap, κ 7 (y) = kedd, κ 7 (z) = szombat,... xp(x) I,κ = i, mert P(x) I,κ 1 = i, vagy egyszerűbben: xp(x) I = i, mert P(x) I,x hétfő = i xp(x) I,κ = h, mert P(x) I,κ 7 = h, vagy xp(x) I = h, mert P(x) I,x vasárnap = h.
Példa - 2. Az elsőrendű logikai nyelv: {π}, {P (π) }, {f (π,π) }, {c (π) }. A második interpretáció: I Srt (π) = N 0. I Pr (P) = P I, ahol P I (u) = I Fn (f ) = f I, ahol f I (u) = 2u. I Cnst (c) = c I, ahol c I a nulla. Változókiértékelés κ(x) = 1, κ(y) = 2, κ(z) = 3,... { i, ha u N0 páros, h, egyébként. c I = 0, x I,κ = 1 f (c) I = f I ( c I ) = f I (0) = 0, f (x) I,κ = f I ( x I,κ ) = f I (1) = 2 P(c) I = P I ( c I ) = P I (0) = i P(x) I,κ = P I ( x I,κ ) = P I (1) = h
Példa - 2. Változókiértékelés κ(x) = 1, κ(y) = 2, κ(z) = 3,... A κ változókiértékelés x-variánsai κ 1 (x) = 0, κ(y) = 2, κ(z) = 3,... κ 2 (x) = 1, κ(y) = 2, κ(z) = 3,... κ 3 (x) = 2, κ(y) = 2, κ(z) = 3,.... κ 123 (x) = 123, κ(y) = 2, κ(z) = 3,.... xp(x) I = i, mert P(x) I,x 0 = i. xp(x) I = h, mert P(x) I,x 1 = h. xp(f (x)) I = i, mert...?
Az elsőrendű formulák szemantikai tulajdonságai Egy elsőrendű logikai nyelv egy A formulája kielégíthető, ha van a nyelvnek olyan I interpretációja és I-ben van olyan κ változókiértékelés, amelyre A I,κ = i; kielégíthetetlen, ha a nyelv minden I interpretációjában és I minden κ változókiértékelése mellett A I,κ = h; logikai törvény, ha a nyelv minden I interpretációjában és I minden κ változókiértékelése mellett A I,κ = i. Jelölése: = A.
Példa - 3. A P(x) xp(x) formula kielégíthető, de nem logikai törvény. A formula lehet a {π}, {P (π) },, logikai nyelv formulája. Interpretáljuk a nyelvet a következőképpen: I Srt (π) = N 0 és { I Pr (P) = P I, ahol P I i, ha u N0 prím, (u) = h, egyébként. P(x) I,x 4 = h, és így P(x) xp(x) I,x 4 = P(x) I,x 4 xp(x) I = i. De mivel xp(x) I = h és P(x) I,x 3 = i, ezért P(x) xp(x) I,x 3 = P(x) I,x 3 xp(x) I = h.
Példa - 4. A xp(x) P(x) formula kielégíthetetlen. Tetszőlegesen rögzítsünk egy I interpretációt és I-ben egy κ változókiértékelést. 1. Ha xp(x) I = h, akkor xp(x) P(x) I,κ = xp(x) I P(x) I,κ = h, 2. Ha viszont xp(x) I = i, akkor κ minden x-variánsa mellett (sőt I-beli minden változókiértékelés mellett), tehát κ mellett is P(x) I,κ = i, így P(x) I,κ = h, ezek szerint most is xp(x) P(x) I,κ = xp(x) I P(x) I,κ = h.
Példa - 5. A xp(x) P(x) formula logikai törvény. Rögzítsünk tetszőlegesen egy I interpretációt és egy κ változókiértékelést. 1. Ha xp(x) I = i, akkor I minden változókiértékelése mellett, tehát κ mellett is P(x) I,κ = i, azaz xp(x) P(x) I,κ = xp(x) I P(x) I,κ = i. 2. Ha pedig xp(x) I = h, akkor szintén xp(x) P(x) I,κ = xp(x) I P(x) I,κ = i.
Formula prímkomponensei Egy formula legkisebb összetettségű azon részformuláit, amelyekből a formula csupán a,,, logikai összekötőjelek segítségével felépíthető, a formula prímkomponenseinek nevezzük. A x y(p(x) P(y)) formula egyetlen prímkomponense önmaga. A x(p(x) P(f (x))) P(c) prímkomponensei a x(p(x) P(f (x))) és a P(c) formulák.
Quine-féle táblázat Legyenek az A formula prímkomponensei A 1, A 2,..., A n. Ha a különböző prímkomponenseket gondolatban különböző ítéletváltozóknak tekintjük, az így kapott ítéletlogikai formulához megadhatjuk az igazságtáblát. Ez a Quine-táblázat. Nyilvánvaló, hogy egy tetszőlegesen kiválasztott interpretáció és változókiértékelés esetén a formula prímkomponenseinek igazságértékeit a Quine-táblázat egyik sorában (a prímkomponensekhez tartozó oszlopokban) rendre meg fogjuk találni. Ugyanakkor a táblázatban lehetnek olyan sorok is, amelyekhez nem tudunk olyan interpretációt és változókiértékelés megadni, hogy mellettük a prímkomponensek igazságértékei rendre a sorban szereplő értékek legyenek.
Példa - 6. x P(x) xp(x) prímkomponensei: x P(x) és xp(x). A formula Quine-féle táblázata a következő: x P(x) xp(x) x P(x) xp(x) i i i i h i h i i h h h A táblázat első és utolsó sorához sem tudunk olyan interpretációt készíteni, amelyben a prímkomponensek épp a sorban feltüntetett igazságértékkel rendelkeznek.
A Quine-táblázat és a szemantika kapcsolata Egy A elsőrendű formula (propozicionális) tautológia, ha a formula Quine-táblázatában A oszlopában csupa i igazságérték található. Ha A propozicionális tautológia, akkor A logikai törvény.
Néhány nevezetes tautológia Ha A, B és C elsőrendű logikai formulák, az alábbi elsőrendű formulák propozicionális tautológiák, így logikai törvények: azonosság = A A bővítés előtaggal = A (B A) ellentmondásból bármi = A ( A B) reductio ad absurdum = (A B) ((A B) A) kétszeres tagadás = A A kizárt harmadik = A A ellentmondás = (A A) = A (B A B) = A B A és = A B B = (A C) ((B C) (A B C)) = A A B és = B A B
Példa - 7. A ( xp(x) xp(x)) xp(x) xp(x) formula prímkomponensei xp(x) és xp(x). A formula Quine-féle táblázata a következő: xp(x) xp(x) ( xp(x) xp(x)) xp(x) xp(x) i i i i h i h i i h h i A formula oszlopában csupa i igazságérték található, tehát a formula tautológia, azaz logikai törvény.
Az elsőrendű logikai törvények Mivel egy elsőrendű formula Quine-táblázatában lehetnek olyan sorok is, melyekben szereplő igazságértékeket az egyes oszlopokhoz tartozó prímkomponensek egyszerre egyetlen interpretációban egyetlen változókiértékelés mellett sem vehetik fel, így amikor A nem propozicionális tautológia, logikai törvény még lehet. Egy elsőrendű logikai törvény formula gyakran NEM propozicionális tautológia.
Példa - 8. Korábban láttuk, hogy a x P(x) xp(x) nem tautológia. Ugyanakkor egy tetszőlegesen rögzített I interpretációban 1. vagy x P(x) I = h, így x P(x) xp(x) I = i, 2. vagy x P(x) I = i, ekkor viszont x P(x) I = h. Ez pedig azt jelenti, hogy minden κ változókiértékelés mellett P(x) I,κ = h, azaz P(x) I,κ = i, tehát xp(x) I = i. Így viszont ebben az esetben is x P(x) xp(x) I = i, tehát a x P(x) xp(x) formula logikai törvény.
Néhány elsőrendű logikai törvény Ha A és B elsőrendű logikai formulák, akkor az alábbi formulák nem tautológiák, de logikai törvények: = xa xb x(a B) = x(a B) xa xb = y xa x ya.