Predikátová logika - jazyk a sémantika

Ciele

  1. Naštudovať potrebné pojmy z formálneho aparátu predikátovej logiky.
  2. Preštudovať vzorové príklady prezentované v rámci teoretickej časti.
  3. Vypracovať zadané úlohy.

Úvod

Aj napriek tomu, že výroková logika je logický systém, ktorý má širokú škálu aplikácií, jej vyjadrovacia sila často nestačí na opis reálnych procesov v matematike a informatike.

Predikátová logika (niekedy nazývaná aj logika prvého rádu) rozširuje jazyk výrokovej logiky tak, že umožňuje narábanie:

  • s objektami,
  • s reláciami (vlastnosťami).

Zároveň prináša kvantifikáciu tvrdení v danej doméne tak, že umožňuje narábanie s tvrdeniami:

  • ktoré platia pre všetky objekty danej domény,
  • alebo vyjadruje existenciu aspoň jedného objektu domény, pre ktorý dané tvrdenie platí.

V rámci predikátovej logiky narábame v určitej doméne (predmetnej oblasti, svete, univerze), ktorá môže byť konečná aj nekonečná, napr. množina celých čísel, všetci ľudia na zemi, rodokmeň konkrétnej rodiny a pod.

Predikátová logika nám umožní formalizovať tvrdenia typu:

Všetci ľudia sú smrteľní.
Sokrates je človek.
-------------------------
Teda Sokrates je smrteľný.

(Tento sylogizmus vyslovil Aristoteles.)

Jazyk predikátovej logiky

Keďže jazyk predikátovej logiky má väčšiu vyjadrovaciu silu ako výroková logika, je potrebné do neho zaviesť nové logické operátory aj mimologické symboly, prostredníctvom ktorých je možné opísať detailnejšie štruktúru výrokov.

Symboly jazyka predikátovej logiky

je možné rozdeliť na dve skupiny:

  • Logické symboly:
    • logické spojky: $∧,∨,⇒,¬$,
    • logické spojky: $\top,⊥$,
    • kvantifikátory: $∀$ (pre všetky), $∃$ (existuje),
    • pomocné symboly: zátvorky, čiarky $(,)$. $~$
  • Mimologické symboly:
    • predikátové symboly: $P,Q,R,...$,
    • funkčné symboly: $f,g,h,...$,
    • konštanty: $a,b,c,...$,
    • premenné: $x,y,z,...$. $~$

Poznámka

$~$

Pojmy predikátový symbol a funkčný symbol budeme skrátené označovať ako predikát resp. funkcia.

  • Každý predikátový a funkčný symbol musí mať definovanú aritu (početnosť argumentov, ktoré očakáva).
  • Predikát je atomická formula označuje vlastnosť alebo reláciu nad termami danej domény:
    • $P(x)$ objekt $x$ má vlastnosť $P$ (unárny predikát vyjadruje vlastnosť),
    • $R(x,y)$ objekt $x$ je v relácií s objektom $y$ (binárny resp. viacárny predikát vyjadruje reláciu).
  • Konštanta môže byť chápaná ako funkcia s aritou 0 (nulárna funkcia).
  • Termom rozumieme objekt domény, resp. funkcia na ňom, ktorá vráti objekt domény.
  • Rozlišujeme medzi formulou, ktorá môže byť pravda/nepravda a termom ktorý označuje objekty danej domény.
  • Term nie je formula predikátovej logiky, ale môže byť jej súčasťou.

Príklad

Nech doména je množina celých čísel $\mathbb{Z}$.

  • Ak $P$ znamená vlastnosť "byť párne číslo", potom $P(x)$ znamená "objekt $x$ je párne číslo".
  • Ak $R$ znamená operáciu $⟩$, potom $R(x,y)$ znamená objekt $x$ je väčší ako objekt $y$.
  • Ak $f$ znamená operáciu druhej mocniny, potom $f(x)=x*x$.
  • Ak $g$ znamená operáciu sčítania, potom $g(x,y)=x+y$.

To znamená $P(x)$ a $R(x,y)$ sú formuly predikátovej logiky, pričom $f(x)$ a $g(x,y)$ sú termy.

Poznámka

$~$

Je potrebné si uvedomiť rozdiel medzi predikátom a funkciou.

  • Vstupom predikátu aj funkcie je jeden alebo viac objektov domény.
  • Výsledok predikátu je pravdivostná hodnota.
  • Výsledok funkcie je objekt domény.

Termy jazyka

Induktívne je možné definovať termy jazyka:

  • konštanta je term,
  • premenná je term,
  • každý výraz v tvare $f(t_1,...,t_n)$ je term, ak $f$ je $n$-árna funkcia a výrazy $t_1,...,t_n$ sú termy.

Syntax termov v BNF: $$t::= x ~|~ c ~|~ f(t,...,t),$$ kde:

  • $x$ je ľubovoľná premenná,
  • $c$ je konštanta (nie je logická $\bot, \top$),
  • $f(t,...,t)$ je funkcia.

Term je uzavretý ak sa v ňom nevyskytujú premenné.

Syntax jazyka predikátovej logiky

Syntax jazyka predikátovej logiky je možné vyjadriť prostredníctvom BNF nasledovne: $$φ::= ⊥ ~|~ ⊤ ~|~ P(t,...,t) ~|~ ¬φ ~|~ φ ∧ φ ~|~ φ ∨ φ ~|~ φ ⇒ φ ~|~ (∀x)φ ~|~ (∃x)φ,$$ kde:

  • $⊤,⊥$ sú logické konštanty,
  • $P(t,...,t)$ je predikátový symbol,
  • $¬φ, φ ∧ φ, φ ∨ φ, φ ⇒ φ$ sú logické spojky: negácia, konjunkcia, disjunkcia a implikácia. Chápané rovnako ako vo výrokovej logike.
  • $(∀x)φ$ je formula, kde $x$ je premenná, $∀$ je všeobecný kvantifikátor a $φ$ je formula predikátovej logiky.
  • $(∃x)φ$ je formula, kde $x$ je premenná, $∃$ je existenčný kvantifikátor a $φ$ je formula predikátovej logiky.
  • Množinu všetkých formúl predikátovej logiky, ktorú opisuje vyššie uvedená BNF nazveme $FOL$.

Asociativita je rovnaká ako v prípade výrokovej logike, avšak kvantifikátory viažu silnejšie ako ostatné logické spojky, napríklad: $$ \begin{array}{rcl} (∀x)φ ∧ ψ & ≡ & ((∀x)φ) ∧ ψ \\ (∃x)φ ∧ ψ & ≡ & ((∃x)φ) ∧ ψ \\ \end{array} $$ Platia nasledujúce konvencia priority logických spojok:

Logická spojka Priorita
1
2
¬ 3
4
5
6

Voľné a viazané premenné

  • Premenná je vo formule voľná ak nie je v rozsahu viditeľnosti kvantifikátora s danou premennou.
  • Premenná je vo formule viazaná ak je v rozsahu viditeľnosti kvantifikátora s danou premennou.

Príklad

Majme formulu: $$(∀x)P(x,y),$$ potom premenná $x$ je viazaná a premenná $y$ je voľná.

Príklad

Majme formulu: $$(∀x)P(x) ∧ Q(x),$$ potom premenná $x$ je viazaná vo formule $P(x)$ a voľná vo formule $Q(x)$, keďže formula $Q(x)$ je mimo rozsahu viditeľnosti kvantifikátora $∀$, ktorý má vyššiu prioritu ako konjunkcia: $$((∀x)P(x)) ∧ Q(x).$$

Príklad

Majme formulu: $$(∀x)(P(x) ∧ Q(x)) ∨ (∃x)R(x),$$ potom táto formula neobsahuje voľné premenné. Premenná $x$ je viazaná vo formule $P(x) ∧ Q(x)$ všeobecným kvantifikátorom a vo formule $R(x)$ je viazaná existenčným kvantifikátorom.

Poznámka

Formulu: $$(∀x)(P(x) ∧ Q(x)) ∨ (∃x)R(x),$$ je možné zapísať využitím dvoch rozdielnych premenných $x,y$: $$(∀x)(P(x) ∧ Q(x)) ∨ (∃y)R(y),$$ keďže rozsah viditeľnosti kvantifikátorov sa neprekrýva. Avšak je bežnou praxou, že pri zápise formúl sa používa tá istá premenná viazaná rôznymi kvantifikátormi, ak sa rozsah ich viditeľnosti neprekrýva.

Formula je uzavretá

(niekedy nazývaná aj sentencia) ak neobsahuje voľné premenné.

Formula je otvorená

ak obsahuje aspoň jednu voľnú premennú.

Formula je základná

(z ang. ground formula) ak neobsahuje premenné.

Príklad

Majme formulu: $$φ=(∀x)(∃y)P(x,y),$$ potom $φ$ je uzavretá (sentencia).

Príklad

Majme formulu: $$φ=(∀x)(∃y)P(x,y,z),$$ premenná $z$ je voľná, formula $φ$ je otvorená.

Príklad

Majme formulu: $$φ=P(5,6),$$ nech $5,6$ sú konštanty, $P$ predikát s aritou 2, potom formula $φ$ základná.

Zákony predikátovej logiky

V predikátovej logike platia všetky zákony výrokovej logiky a rozšírené o pravidla pre kvantifikátory.

Nech $φ,ψ$ sú formuly predikátovej logiky a nech premenná $x$ nemá voľný výskyt vo formule $ψ$. Potom platia nasledujúce zákony: $$ \begin{array}{rcl} ¬(∀x)φ & ≡ & (∃x)¬φ\\ ¬(∃x)φ & ≡ & (∀x)¬φ\\ ψ∨(∀x)φ & ≡ & (∀x)(ψ ∨ φ)\\ ψ∨(∃x)φ & ≡ & (∃x)(ψ ∨ φ)\\ ψ∧(∀x)φ & ≡ & (∀x)(ψ ∧ φ)\\ ψ∧(∃x)φ & ≡ & (∃x)(ψ ∧ φ)\\ ψ⇒(∀x)φ & ≡ & (∀x)(ψ ⇒ φ)\\ ψ⇒(∃x)φ & ≡ & (∃x)(ψ ⇒ φ)\\ (∀x)φ ∧ (∀x)ψ & ≡ & (∀x)(φ ∧ ψ)\\ (∃x)φ ∨ (∃x)ψ & ≡ & (∃x)(φ ∨ ψ) \end{array} $$

Poznámka

$~$

Majme formulu: $$Q(x)∧(∀x)P(x).$$ Zákon: $$ψ∧(∀x)φ ≡ (∀x)(φ ∧ ψ),$$ nie je možné použiť. Avšak premenovaním viazanej premennej (na takú premennú, ktorá v danej formule nemá voľný výskyt), je možné formulu upraviť na ekvivalentný tvar: $$Q(x)∧(∀y)P(y).$$ Spomenutý zákon je možné aplikovať nasledovne: $$(∀y)(P(y)∧Q(x)).$$

Poznámka

$~$

Premennú viazanú kvantifikátorom je možné si predstaviť ako tzv. placeholder, preto je možné ju kedykoľvek premenovať (aj všetky jej viazané výskyty t.j. v rozsahu viditeľnosti daného kvantifikátora).

Poznámka

$~$

Kvantifikátory je možné chápať ako cykly, ktoré prechádzajú zvolenú doménu. Napr. majme formulu $$(∀x)P(x),$$ kde $P$ označuje "byť párne číslo", v doméne celých čísel $\mathbb{Z}$.
Potom formula $(∀x)P(x)$ nie je pravdivá. Pri uvažovaní o pravdivosti vzhľadom na všeobecný kvantifikátor prehľadávame doménu a kontrolujeme, či pre každý jej prvok platí vlastnosť $P$. Z definície sémantiky (nasledujúca kapitola), je v tomto prípade potrebné aby vlastnosť $P$ platila pre všetky prvky domény. Stačí nájsť jeden kontrapríklad a výsledkom formuly je nepravda. Avšak pri použití existenčného kvantifikátora: $$(∃x)P(x),$$ je táto formula pravdivá. V prípade existenčného kvantifikátora opäť prehľadávame celú doménu, avšak na to aby bola formula pravdivá, stačí nájsť jeden príklad, pre ktorý platí vlastnosť $P$.

Rozsah viditeľnosti kvantifikátorov

Nech $Q$ označuje ľubovoľný kvantifikátor $(∀,\exists)$ a nech $(...,x,...)$ je ľubovoľná formula. Potom rozsah viditeľnosti kvantifikátora $Q$ vo formule $(Qx)(...,x,...)$ je tá časť formuly, ktorá je vymedzená najbližšími zátvorkami nachádzajúcimi sa hneď za kvantifikátorom.

Príklad

  • a. $(∀x)(...,x,...) ∧ (...,x,...).$ V tomto prípade rozsah viditeľnosti$(∀x)$ je len na ľavej strane konjunkcie $(∀x)(...,x,...)$, keďže zátvorka, ktorá sa nachádza bezprostredne po kvantifikátore je ukončená pred symbolom konjunkcie. Pravý konjunkt obsahuje voľnú premennú $x$.
  • b. $(∀x)((...,x,...) ∧ (...,x,...)).$ Rozsah viditeľnosti$(∀x)$ je v celej formule, keďže prvá zátvorka bezprostredne po kvantifikátore je ukončená až na konci formuly.

Poznámka

Ak vo formule nie sú explicitne uvedené zátvorky, je potrebné brať do úvahy prioritu a asociativitu operátorov.

Vnorené kvantifikátory

Doteraz sme pracovali s atomickými formulami, ktoré boli kvantifikované najviac jedným kvantifikátorom. Avšak v praxi je často nutné využiť kvantifikáciu viacerými kvantifikátormi, ktoré budú vnorené, napríklad: $$(∀x)(∃y)P(x,y).$$

Poznámka

Samotné vnorenie kvantifikátorov je "skryté" implicitným vynechaním zátvoriek. Formulu vyššie je možné zapísať v ekvivalentom tvare: $$(∀x)((∃y)P(x,y)),$$ kde je zjavné, že existenčný kvantifikátor je vnorený.

Príklad

Pracujme s doménou celých čisel $\mathbb{Z}$ a majme dané:

  • binárny predikát porovnávania dvoch čísel $Equal(x,y)$,
  • binárna funkcia sčítania dvoch čísel $plus(x,y)$. Potom ak chceme vyjadriť formulou predikátovej logiky vlastnosť komutatívnosti operácie sčítania "pre všetky x,y platí, že $x+y=y+x$", potrebujeme dva všeobecné kvantifikátory: $$(∀x)(∀y)(Equal(plus(x,y),plus(y,x))).$$ Majme unárny predikát $Equal\_to\_zero(x)$, ktorý vyjadruje vlastnosť "byť rovný nule". Vetu "pre každé číslo $x$ existuje číslo $y$ také, že ich súčet je nula" zapíšeme nasledovne: $$(∀x)(∃y)Equal\_to\_zero(plus(x,y)).$$ Analogicky je možné vyjadriť aj zákon asociativity operácie sčítania na celých číslach $x + (y + z) = (x + y) + z$ nasledovne: $$(∀x)(∀y)(∀z)(Equal(plus(x,plus(y,z)),plus(plus(x,y),z))).$$

Poradie kvantifikátorov

Pri vnorených kvantifikátoroch môže ich poradie zmeniť význam formuly. Začnime najjednoduchším prípadom. Majme dvojicu kvantifikátorov (kvantifikátor s jedným vnoreným kvantifikátorom), čo nám v kombinácii s dvoma premennými vytvára osem možnosti kvantifikácie formuly $φ$:

$$ \begin{array}{ll} ~1. & (∀x)(∀y)φ \\ ~2. & (∀y)(∀x)φ \\ ~3. & (∃x)(∀y)φ \\ ~4. & (∃y)(∀x)φ \\ ~5. & (∀x)(∃y)φ \\ ~6. & (∀y)(∃x)φ \\ ~7. & (∃x)(∃y)φ \\ ~8. & (∃y)(∃x)φ \end{array} $$

Pracujme s doménou celých čísel $\mathbb{Z}$.

Nech $P(x,y)$ znamená výrok "$x+y=y+x$". Aké pravdivostné hodnoty môžu nadobudnúť formuly: $$ \begin{array}{l} (∀x)(∀y)P(x,y) \\ (∀y)(∀x)P(x,y). \end{array} $$

  • Formulu $(∀x)(∀y)P(x,y)$ je možné prečítať nasledovne:
    • "Pre všetky celé čísla $x$ a pre všetky celé čísla $y$ platí, že $x+y=y+x$". Formula je pravdivá.
  • Formulu $(∀y)(∀x)P(x,y)$ je možné prečítať nasledovne:
    • "Pre všetky celé čísla $y$ a pre všetky celé čísla $x$ platí, že $x+y=y+x$". Formula je pravdivá.

Prvá aj druhá formula má v tomto prípade rovnaký význam, sú ekvivalentné. To znamená, ak formula obsahuje iba vnorené všeobecné kvantifikátory, na ich poradí nezáleží.

Nech $Q(x,y)$ znamená výrok "$x+y=0$". Aké pravdivostné hodnoty môžu nadobudnúť formuly: $$ \begin{array}{l} (∃x)(∃y)Q(x,y) \\ (∃y)(∃x)Q(x,y). \end{array} $$

  • Formulu $(∃x)(∃y)Q(x,y)$ je možné prečítať nasledovne:
    • "Existuje také celé číslo $x$, pre ktoré existuje tak celé číslo $y$, že platí $x+y=0$". Zjednodušene povedané, existuje dvojica čísel $x,y$ taká, že ich súčet je rovný $0$. Formula je pravdivá.
  • Formulu $(∃y)(∃x)Q(x,y)$ je možné prečítať nasledovne:
    • "Existuje také celé číslo $y$, pre ktoré existuje tak celé číslo $x$, že platí $x+y=0$". Zjednodušene povedané, existuje dvojica čísel $y,x$ taká, že ich súčet je rovný $0$. Formula je pravdivá.

Prvá aj druhá formula má v aj tomto prípade rovnaký význam, sú ekvivalentné. To znamená, ak formula obsahuje iba vnorené existenčné kvantifikátory, na ich poradí nezáleží.

Nech $Q(x,y)$ znamená výrok "$x+y=0$". Aké pravdivostné hodnoty môžu nadobudnúť formuly: $$ \begin{array}{l} (∀x)(∃y)Q(x,y) \\ (∃x)(∀y)Q(x,y). \end{array} $$

  • Formulu $(∀x)(∃y)Q(x,y)$ je možné prečítať nasledovne:
    • "Pre každé celé číslo $x$, existuje tak celé číslo $y$, že platí $x+y=0$". Zjednodušene povedané, každému celému číslu $x$ môžeme nájsť také celé číslo $y$, že ich súčet je rovný $0$. Formula je pravdivá.
  • Formulu $(∃x)(∀y)Q(x,y)$ je možné prečítať nasledovne:
    • "Existuje také celé číslo $x$, ktoré ak prirátame ku každému celému číslu $y$, platí $x+y=0$". Zjednodušene povedané, táto formula tvrdí, že existuje aspoň jedno také celé číslo $y$, ktoré ak prirátame hocijaké celé číslo $y$, že ich súčet bude rovný $0$. Formula je nepravdivá.

To znamená, že formuly $(∀x)(∃y)Q(x,y)$ a $(∃x)(∀y)Q(x,y)$ nie sú sémanticky ekvivalentné. V prípade, že formula obsahuje rozdielne vnorené kvantifikátory na poradí kvantifikátorov záleží.

Tabuľka nižšie sumarizuje zmysel rôznych kombinácií vnorených kvantifikátorov.

Formula Pravda Nepravda
$(∀x)(∀y)P(x,y)$
$(∀y)(∀x)P(x,y)$
Ak $P(x,y)$ je pravdivé pre každú dvojicu $x,y$. Ak existuje dvojica $x,y$ taká, že $P(x,y)$ je nepravdivé.
$(∀x)(∃y)P(x,y)$ Ak pre každé $x$ existuje $y$ také, že $P(x,y)$ je pravdivé. Ak existuje také $x$, že $P(x,y)$ je nepravdivé pre každé $y$
$(∃x)(∀y)P(x,y)$ Ak existuje také $x$, že $P(x,y)$ je pravdivé pre každé $y$ Ak pre každé $x$ existuje $y$ také, že $P(x,y)$ je nepravdivé.
$(∃x)(∃y)P(x,y)$
$(∃y)(∃x)P(x,y)$
Ak existuje taká dvojica $x,y$, pri ktorej $P(x,y)$ je pravdivé. Ak existuje taká dvojica $x,y$, pri ktorej $P(x,y)$ je nepravdivé.

Analogicky tieto vlastnosti platia aj pre viac ako dva vnorené kvantifikátory.

Majme predikát $R(x,y,z)$, ktorý označuje vlastnosť $x+y=z$. Potom formula: $$(∀x)(∀y)(∃z)R(x,y,z),$$ znamená "pre všetky celé čísla $x$ a pre všetky celé čísla $y$, existuje také celé číslo $z$, že platí $x+y=z$". Formula je pravdivá.

Avšak formula: $$(∃z)(∀x)(∀y)R(x,y,z),$$ je nepravdivá. Znamená "existuje také celé číslo $z$, že pre všetky celé čísla $x$ a pre všetky celé čísla $y$, že platí $x+y=z$". Zjednodušene povedané "existuje také $z$, že súčet akejkoľvek dvojice čísel $x,y$ je rovný číslu $z$", čo nie je pravda.

De Morganove zákony pri vnorených kvantifikátoroch

Formula ktorá obsahuje vnorené kvantifikátory môže byť prepísaná na ekvivalentný tvar prostredníctvom De Morganových zákonov definovaných vyššie, postupným aplikovaním daných zákonov ako v prípade formuly s jedným kvantifikátorom.

Poznámka

$~$

Je potrebné si uvedomiť, že vnorené kvantifikátory sa vo formule implicitne uvádzajú bez zátvoriek: $$(∃z)(∀x)(∀y)R(x,y,z) ≡ (∃z)((∀x)((∀y)R(x,y,z))).$$ To znamená, že je možné iteratívne použiť nasledujúce zákony:

$$ \begin{array}{l} ¬(∀x)φ & ≡ & (∃x)¬φ\\ ¬(∃x)φ & ≡ & (∀x)¬φ\\ \end{array} $$

Príklad

Majme formulu: $$¬(∃z)(∀y)(∀x)(P(x,y)∧R(y,z)).$$ Postupným aplikovaním zákonov uvedených vyššie je možné formulu prepísať na ekvivalentný tvar: $$ \begin{array}{lcl} ¬(∃z)(∀y)(∀x)(P(x,y)∧R(y,z)) & ≡ & (∀z)¬(∀y)(∀x)(P(x,y)∧R(y,z))\\ (∀z)¬(∀y)(∀x)(P(x,y)∧R(y,z)) & ≡ & (∀z)(∃y)¬(∀x)(P(x,y)∧R(y,z))\\ (∀z)(∃y)¬(∀x)(P(x,y)∧R(y,z)) & ≡ & (∀z)(∃y)(∃x)¬(P(x,y)∧R(y,z))\\ (∀z)(∃y)(∃x)¬(P(x,y)∧R(y,z)) & ≡ & (∀z)(∃y)(∃x)(¬P(x,y)∨ ¬R(y,z)) \end{array} $$

Substitúcia

Substitúcia v predikátovej logike je dôležitý koncept, ktorý umožňuje dosadzovať termy za premenné. Je definovaná zvlášť pre termy a pre formuly.

Substitúcia v termoch

Zápis $$t[s/x]$$ znamená, že v terme $t$ nahradíme všetky voľné výskyty premennej $x$ termom $s$.

Substitúcia na termoch je definovaná induktívne:

$$ \begin{array}{lcl} y[s/x] & = & \begin{cases} \quad y \quad \text{ak} \quad y ≠ x \\ \quad s \quad \text{ak} \quad y = x \end{cases}\\ c[s/x] & = & c\\ f(t_1,...,t_n)[s/x] & = & f(t_1[s/x],...,t_n[s/x]). \end{array} $$

Substitúcia v formulách

Zápis $$φ[s/x]$$ znamená, že vo formule $φ$ nahradíme všetky voľné výskyty premennej $x$ termom $s$.

Substitúcia vo formulách je definovaná induktívne:

$$ \begin{array}{lcl} ⊥[s/x] & = & ⊥\\ ⊤[s/x] & = & ⊤\\ P(t_1,...,t_n)[s/x] & = & P(t_1[s/x],...,t_n[s/x])\\ ~ & ~ & ~\\ (φ∧ψ)[s/x] & = & φ[s/x]∧ψ[s/x]\\ (φ∨ψ)[s/x] & = & φ[s/x]∨ψ[s/x]\\ (φ⇒ψ)[s/x] & = & φ[s/x]⇒ψ[s/x]s\\ ~ & ~ & ~\\ (∀y)φ[s/x] & = & \begin{cases} \quad (∀y)φ[s/x] \quad \text{ak} \quad y ≠ x \\ \quad (∀y)φ \quad \text{ak} \quad y = x \end{cases}\\ (∃y)φ[s/x] & = & \begin{cases} \quad (∃y)φ[s/x] \quad \text{ak} \quad y ≠ x \\ \quad (∃y)φ \quad \text{ak} \quad y = x \end{cases} \end{array} $$

Sémantika predikátovej logiky

Pojem doména bol v predchádzajúcej kapitole spomenutý niekoľko krát. To z dôvodu, že sémantiku formúl predikátovej logiky definujeme pre určitú doménu (svet, univerzum, predmetnú oblasť) v ktorej pracujeme.

Príklad

Nech je daná nasledujúca formula: $$φ=(∀x)(P(x) ⇒ P(f(x))).$$ Majme dve domény.

V prvej doméne celých čísel $\mathbb{Z}$ nech:

  • $P(x)$ je predikát, ktorý označuje vlastnosť "$x$ je nepárne číslo",
  • $f(x)$ je funkcia, ktorá vráti druhú mocninu čísla $x$.

Potom formulu $φ$ môžeme prečítať ako "Pre každé celé číslo $x$ platí, ak $x$ je nepárne číslo, potom aj jeho druhá mocnina je nepárne číslo". Táto formula je pravdivá.

V druhej doméne ľudí $\{$ľudia$\}$ nech:

  • $P(x)$ je predikát, ktorý označuje vlastnosť "osoba $x$ má modré oči",
  • $f(x)$ je funkcia, ktorá priradí osobe $x$ matku.

Potom formulu $φ$ môžeme prečítať ako "Pre každú osobu $x$ platí, ak má osoba $x$ modré oči, potom aj jej matka má modré oči.". Táto formula nie je pravdivá.

  • To znamená, že na to aby bolo možné určiť pravdivostnú hodnotu formúl predikátovej logiky je potrebné poznať význam špeciálnych symbolov, ktorý sa v závislosti od definície a konkrétnej domény môže líšiť.
  • Sémantiku predikátovej logiky definujeme pre konkrétnu doménu.

Sémantika predikátovej logiky definovaná ako model

Sémantika predikátovej logiky definovaná je definovaná ako model, ktorý je usporiadaná dvojica: $$M=(D,I),$$ kde:

  • $D$ je doména (predmetná oblasť, svet, univerzum) napríklad: celé čísla $\mathbb{Z}$, množina všetkých ľudí na zemi $\{$ľudia$\}$, ročné obdobia $\{$jar, leto, jeseň, zima$\}$ a pod.
  • $I$ je interpretácia, ktorá:
    • každej konštante $c$ jednoznačne priradí prvok domény $d∈D$:$$c=d.$$
    • každému $n$-árnemu funkčnému symbolu $f$ jednoznačne priradí funkciu: $$f:D×...×D→D,$$
    • každému $n$-árnemu predikátovému symbolu $P$ jednoznačne priradí predikát: $$P:D×...×D→\{1,0\}.$$

Poznámka: Každý prvok domény budeme považovať za konštantu.

Ohodnotenie $e$ premenných je funkcia, ktorá každej premennej jednoznačné priradí prvok domény v modely $M$: $$e(x)∈D.$$ Je špecifikovaná nasledovne: $$e:Vars → D,$$ definovaná na termoch: $$ \begin{array}{rcl} c^e & = & c,\\ x^e & = & e(x),\\ f(t_1,..., t_n)^e & = & f(t_1^e,..., t_n^e).\\ \end{array} $$

Poznámka

$~$

  • Pri ohodnotení $e$ sa substituuje len voľný výskyt premennej. Viazaný výskyt substituuje sémantika kvantifikátorov.
  • Aplikáciu $e$ na term $t$ uvádzame ako horný index $t^e$.
  • $Vars$ je množina všetkých premenných.

Relácia platnosti formuly $φ$ v modeli $M$ je definovaná: $$M\models φ.$$

Formula $φ$ predikátovej logiky je:

  • Tautológia ak $$\models φ.$$
  • Platná v modeli $M$ ak $$M\models φ.$$
  • Splniteľná v modeli $M$ ak existuje také ohodnotenie $e$, že $$M^e\models φ.$$
  • Nesplniteľná v modeli $M$ ak neexistuje také ohodnotenie $e$ také, že $M^e\models φ$: $$M\nvDash φ.$$
  • Kontradikcia ak $$\nvDash φ.$$

Sémantika formúl predikátovej logiky

Na vyjadrenie významu formúl v modeli $M$, pri ohodnotení $e$ použijeme sémantické zátvorky: $$⟦~~⟧,$$ ktoré môžeme považovať za sémantická funkciu: $$⟦~~⟧:\{\text{symboly jazyka}\}→\{1,0\}.$$

Poznámka

$~$

Pri definícii sémantiky predpokladáme implicitne, že sa jedná o model $M$, pri ohodnotení $e$. Používame len $⟦~~⟧$ namiesto úplného zápisu: $⟦~~⟧^{e}_M$.

Význam formúl v modeli $M$ pri ohodnotení $e$ definujeme induktívne:

$$ \begin{array}{rcl} ⟦\bot⟧ & = & 0 \\ ⟦\top⟧ & = & 1 \\ ⟦P(t_1,...,t_n)⟧ & = & P(t_1^{e},...,t_n^{e}) \\ ⟦φ∧ψ⟧ & = & \begin{cases} \quad 1 \quad ak \quad ⟦φ⟧=1 \quad a \quad ⟦ψ⟧=1 \\ \quad 0 \quad inak \end{cases} \\ ⟦φ∨ψ⟧ & = & \begin{cases} \quad 1 \quad ak \quad ⟦φ⟧=1 \quad alebo \quad ⟦ψ⟧=1 \\ \quad 0 \quad inak \end{cases} \\ ⟦φ⇒ψ⟧ & = & \begin{cases} \quad 1 \quad ak \quad ⟦φ⟧=0 \quad alebo \quad ⟦ψ⟧=1 \\ \quad 0 \quad inak \end{cases} \\ ⟦¬φ⟧ & = & \begin{cases} \quad 1 \quad ak \quad ⟦φ⟧=0 \\ \quad 0 \quad inak \end{cases} \\ ⟦(∀x)φ⟧ & = & \begin{cases} \quad 1 \quad ak \quad ∀a ∈ D : ⟦φ[a/x]⟧=1 \\ \quad 0 \quad inak \end{cases} \\ ⟦(∃x)φ⟧ & = & \begin{cases} \quad 1 \quad ak \quad ∃a ∈ D : ⟦φ[a/x]⟧=1 \\ \quad 0 \quad inak \end{cases} \end{array} $$

  • V prípade predikátového symbolu $⟦P(t_1,...,t_n)⟧$ výsledkom je predikát $P$, pričom na všetky jeho argumenty (termy) aplikujeme funkciu ohodnotenia $e$.
  • Pri kvantifikátoroch sa za viazanú premennú $x$ substituujú jednotlivé prvky domény.
    • Formula $(∀x)φ$ je pravdivá vtedy, ak po substitúcii $x$ vo $φ$ je formula $φ$ je pravdivá pre všetky prvky domény.
    • Formula $(∃x)φ$ je pravdivá vtedy, ak po substitúcii $x$ vo $φ$ je formula $φ$ je pravdivá pre aspoň jeden prvok domény.

Príklad

Majme model $M=(D,I)$, kde:

  • $D=\{\triangle, □, \bigcirc \}$ (svet geometrických tvarov).
  • $I=\{Kons, Pred\}$ kde:

$Kons=\{a,b,c\}$ kde:

  • $a=\triangle$,
  • $b=□$,
  • $c=\bigcirc$.

$Pred=\{K,P\}$ kde:

  • $K(x)$ znamená objekt $x$ je v krúžku,
    • $K(x)=\begin{cases} \quad 1 \quad \text{ak} \quad x=\triangle \quad \text{alebo} \quad x=\bigcirc\\ \quad 0 \quad \text{inak} \end{cases}$
  • $P(x,y)$ znamená objekt $x$ je prepojený šípkou smerujúcou do objektu $y$.
    • $P(x,y)=\begin{cases} \quad 1 \quad \text{pre dvojice} \quad \{(\triangle,□),(\triangle,\bigcirc),(□,\bigcirc),(\bigcirc,\bigcirc)\}\\ \quad 0 \quad \text{inak} \end{cases}$

Načrtnite model $M$ v tvare orientovaného grafu:


Preložte nasledujúce formuly do prirodzeného jazyka a rozhodnite či platia v modeli $M$:

$$ \begin{array}{l} K(a)\\ K(b)\\ K(c)\\ P(a,a)\\ P(a,b)\\ P(a,c)\\ P(b,a)\\ P(b,b)\\ P(b,c)\\ P(c,a)\\ P(c,b)\\ P(c,c)\\ P(c,c) ∧ P(a,c) \\ P(a,a) ∨ P(a,c) \\ P(a,a) ⇒ P(a,c) \\ P(a,c) ⇒ P(a,a) \\ (∀x)K(x)\\ (∃x)K(x)\\ (∀x)(K(x) ⇒ P(x,x))\\ (∃x)(K(x) ⇒ P(x,x))\\ (∀x)(∀y)(K(x) ⇒ P(x,y))\\ (∀x)(∃y)(K(x) ⇒ P(x,y))\\ (∃y)(∀x)(K(x) ⇒ P(x,y))\\ (∃y)(∃x)(K(x) ⇒ P(x,y))\\ (∀x)(∀y)P(x,y) ⇒ (∃x)K(x)\\ (∃x)K(x) ⇒ (∀x)K(x)\\ (∀x)K(x) ⇒ (∃x)K(x) \end{array} $$

Riešenie

$$ \begin{array}{rcl} M & \models & K(a)\\ M & \nvDash & K(b)\\ M & \models & K(c)\\ M & \nvDash & P(a,a)\\ M & \models & P(a,b)\\ M & \models & P(a,c)\\ M & \nvDash & P(b,a)\\ M & \nvDash & P(b,b)\\ M & \models & P(b,c)\\ M & \nvDash & P(c,a)\\ M & \nvDash & P(c,b)\\ M & \models & P(c,c)\\ M & \models & P(c,c) ∧ P(a,c) \\ M & \models & P(a,a) ∨ P(a,c) \\ M & \models & P(a,a) ⇒ P(a,c) \\ M & \nvDash & P(a,c) ⇒ P(a,a) \\ M & \nvDash & (∀x)K(x)\\ M & \models & (∃x)K(x)\\ M & \nvDash & (∀x)(K(x) ⇒ P(x,x))\\ M & \models & (∃x)(K(x) ⇒ P(x,x))\\ M & \nvDash & (∀x)(∀y)(K(x) ⇒ P(x,y))\\ M & \models & (∀x)(∃y)(K(x) ⇒ P(x,y))\\ M & \models & (∃y)(∀x)(K(x) ⇒ P(x,y))\\ M & \models & (∃y)(∃x)(K(x) ⇒ P(x,y))\\ M & \models & (∀x)(∀y)P(x,y) ⇒ (∃x)K(x) \\ M & \nvDash & (∃x)K(x) ⇒ (∀x)K(x)\\ M & \models & (∀x)K(x) ⇒ (∃x)K(x) \end{array} $$

Poznámka

Formula $(∀x)K(x) ⇒ (∃x)K(x)$ je tautológia.

Príklad

Majme model $M=(D,I)$, kde:

  • $D=\{\mathbb{Z}\}$.
  • $I=\{Kons, Func, Pred\}$ kde:

$Kons=\{-∞,..,0,1...,∞\}$ konštanty reprezentujú jednotlivé čísla (prvky domény).

$Func=\{plus,pow\}$ kde:

  • $plus:\mathbb{Z}×\mathbb{Z}→\mathbb{Z}$ je operácia sčítania.
  • $pow:\mathbb{Z}→\mathbb{Z}$ je operácia druhej mocniny.

$Pred=\{Equal,Odd,Prime\}$ kde:

  • $Equal:\mathbb{Z}×\mathbb{Z}→\{1,0\}$ sú operácie menší, menší alebo rovný, rovný, väčší, väčší alebo rovný.
  • $Odd,Prime:\mathbb{Z}→\{1,0\}$ sú operácie nepárne číslo, prvočíslo.

Poznámka

Výsledok funkcií a predikátov nedefinujeme explicitne ale rozumieme implicitne, podľa zákonov matematiky.

Úloha 0.1

  • Prepíšte nasledujúce formuly do prirodzeného jazyka.
  • rozhodnite či platia v modely $M$,
  • Pri ohodnotení $e$, kde $e(x)=9,e(y)=1,e(s)=6$

$$ \begin{array}{l} Equal(plus(2,2),pow(2))\\ Odd(plus(2,2))\\ Prime(plus(2,pow(3)))\\ ¬Odd(plus(2,2))\\ ¬Prime(plus(2,pow(3)))\\ (∀x)Odd(plus(2,pow(x)))\\ (∀x)Prime(plus(2,pow(x)))\\ (∃x)Prime(plus(2,pow(x)))\\ (∃x)Prime(plus(2,pow(x))) ∧ Odd(x)\\ (∀x)Prime(plus(2,pow(x))) ∨ Odd(x)\\ (∀x)Prime(plus(2,pow(x))) ∨ Odd(x) ⇒ Prime(s)\\ (∀x)Prime(plus(2,pow(x))) ∨ Odd(x) ⇒ (∃s)Prime(s)\\ (∃x)(∀y)Prime(plus(y,x))\\ (∀y)(∃x)Prime(plus(y,x))\\ ¬((∀x)Prime(plus(2,pow(x))) ∧ Odd(x)) \end{array} $$

Riešenie

$$ \begin{array}{rcl} M & \models & Equal(plus(2,2),pow(2))\\ M & \nvDash & Odd(plus(2,2))\\ M & \models & Prime(plus(2,pow(3)))\\ M & \models & ¬Odd(plus(2,2))\\ M & \nvDash & ¬Prime(plus(2,pow(3)))\\ M & \nvDash & (∀x)Odd(plus(2,pow(x)))\\ M & \nvDash & (∀x)Prime(plus(2,pow(x)))\\ M & \models & (∃x)Prime(plus(2,pow(x)))\\ M & \models & (∃x)Prime(plus(2,pow(x))) ∧ Odd(x)\\ M & \models & (∀x)Prime(plus(2,pow(x))) ∨ Odd(x)\\ M & \nvDash & (∀x)Prime(plus(2,pow(x))) ∨ Odd(x) ⇒ Prime(s)\\ M & \models & (∀x)Prime(plus(2,pow(x))) ∨ Odd(x) ⇒ (∃s)Prime(s)\\ M & \nvDash & (∃x)(∀y)Prime(plus(y,x))\\ M & \models & (∀y)(∃x)Prime(plus(y,x))\\ M & \models & ¬((∀x)Prime(plus(2,pow(x))) ∧ Odd(x)) \end{array} $$

Poznámka

Je potrebné mať na pamäti:

  • Funkcia ohodnotenia $e$ môže byť aplikovaná len na voľné premenné.
  • Rozsah viditeľnosti kvantifikátora končí prvými zátvorkami, zároveň kvantifikátory majú vyššiu priority ako ostatné logické spojky.

Postup

Krok 1: Negujte nasledujúce formúly jazyka predikátovej logiky.

Úloha 1.1

$$(∀x)(∀y)P(x,y)$$

Úloha 1.2

$$(∀x)(∀y)(P(x,y) ∧ Q(x))$$

Úloha 1.3

$$(∀x)(∀y)(P(x,y) ⇒ Q(x))$$

Úloha 1.4

$$(∀x)(∃z)(∀y)(P(x,y) ⇒ Q(z))$$

Úloha 1.5

$$(∀x)(∃z)(∀y)(P(x,y) ⇒ Q(z)) ⇒ (∀y)(Q(y)) $$

Krok 2: Voľné a viazané premenné.

Ktoré premenné nasledujúcich predikátových formúl sú voľné alebo viazané. Určite či je formula otvorená, základná alebo sentencia.

Úloha 2.1

$$(∀x) (∃y) Q(x,y)$$

Úloha 2.2

$$Q(f(a,b),y)⇒((∃y) P(s(y)))$$

Úloha 2.3

$$Q(a,b) ∨ ((∀x) Q(a,x))$$

Úloha 2.4

$$Q(x,y) ∨ Q(z,w)$$

Úloha 2.5

$$Q(a,b) ∧ ((∃x)(∃y) Q(x,y))$$

Úloha 2.6

$$(∀x)Q(a,x) ⇒ ((∀x)(∃y) Q(y,x))$$

Krok 3: Prepíšte nasledujúce vety v prirodzenom jazyku do formúl jazyka predikátovej logiky a negujte ich.

Úloha 3.1

Niekto vie maľovať a niekto nie.

Úloha 3.2

Niektorí ľudia nemajú radi špenát.

Úloha 3.3

Kto nepozná pravidlá cestnej premávky, nemôže viesť auto.

Úloha 3.4

Nie každý hudobník je úspešný. 

Úloha 3.5

Nie každý študent urobí skúšku.

Krok 4: Prepíšte nasledujúce vety do formúl predikátovej logiky pomocou predikátov.

Poznámka

Využite predikát P(x,y,z). „x“ videlo hru od „y“ s názvom „z“.

Úloha 4.1

Peter videl Shakespearovu hru Hamlet.

Úloha 4.2

Peter videl nejakú hru od Shakespeara.

Úloha 4.3

Niekto videl Shakespearovu hru Hamlet.

Úloha 4.4

Niekto videl hru Hamlet.

Úloha 4.5

Nie každý videl hru Hamlet.

Úloha 4.6

Peter videl nejakú hru.

Krok 5: Prepíšte vetu do formuly jazyka predikátovej logiky a negujte ju.

Úloha 5.1

Vtáci sa liahnu z vajec.

Úloha 5.2

Športovci majú dobrú kondíciu.

Úloha 5.3

Každé nepárne číslo je prvočíslo.

Úloha 5.4

Existuje cesta, ktorá vedie do Košíc.

Úloha 5.5

Nie je dym bez ohňa.

Krok 6: Definujte vlastnosti binárnych relácií a preložte ich do formúl predikátovej logiky

  • Nech $x,y,z \in A$, a $R⊆A×A$.
  • Nech predikát $R(x,y)$ označuje, že prvok $x$ je v relácii s prvkom $y$.

Úloha 6.1

Binárna relácia $R$ je reflexívna:

Riešenie

$R$ je reflexívna vtt. ak $∀x$: <x,x> $∈R$.

Formula: $$(∀x)R(x,x).$$

Úloha 6.2

Binárna relácia $R$ je ireflexívna:

Riešenie

$R$ je ireflexívna vtt. ak $∀x$: <x,x> $∉R$.

Formula: $$(∀x)¬R(x,x).$$

Úloha 6.3

Binárna relácia $R$ je symetrická:

Riešenie

$R$ je symetrická vtt. ak $∀x,y$: ak <x,y> $∈R$ potom <y,x> $∈R$.

Formula: $$(∀x)(∀y)(R(x,y) ⇒ R(y,x)).$$

Úloha 6.4

Binárna relácia $R$ je asymetrická:

Riešenie

$R$ je asymetrická vtt. ak $∀x,y$: ak <x,y> $∈R$ potom <y,x> $∉R$.

Formula: $$(∀x)(∀y)(R(x,y) ⇒ \neg R(y,x)).$$

Úloha 6.5

Binárna relácia $R$ je antisymetrická:

Riešenie

$R$ je antisymetrická vtt. ak $∀x,y$: ak <x,y> $∈R$ a <y,x> $∈R$ potom x=y.

Formula: $$(∀x)(∀y)(R(x,y) ∧ R(y,x) ⇒~=(x,y)).$$ Kde $=$ je binárny predikát rovnosti.

Úloha 6.6

Binárna relácia $R$ je tranzitívna:

Riešenie

$R$ je tranzitívna vtt. ak $∀x,y,z$: ak <x,y> $∈R$ a <y,z> $∈R$ potom <x,z> $∈R$.

Formula: $$(∀x)(∀y)(∀z)(R(x,y) ∧ R(y,z) ⇒ R(x,z)).$$

Krok 7: Majme nasledujúci model

Príklad

Majme model $M=(D,I)$, kde:

  • $D=\{\mathbb{Z}\}$.
  • $I=\{Kons, Func, Pred\}$ kde:

$Kons=\{-∞,..,0,1...,∞\}$ konštanty reprezentujú jednotlivé čísla (prvky domény).

$Func=\{+,-,*,pow\}$ kde:

  • $+,-,*:\mathbb{Z}×\mathbb{Z}→\mathbb{Z}$ sú operácie sčítania, odčítania, násobenia.
  • $pow:\mathbb{Z}→\mathbb{Z}$ operácia druhej mocniny.

$Pred=\{ $<$,≤,=,>,≥,Even,Odd,Prime, Pos, Neg \}$ kde:

  • <,$≤,=,>,≥:\mathbb{Z}×\mathbb{Z}→\{1,0\}$ sú operácie menší, menší alebo rovný, rovný, väčší, väčší alebo rovný.
  • $Even,Odd,Prime, Pos, Neg:\mathbb{Z}→\{1,0\}$ sú operácie párne číslo, nepárne číslo, prvočíslo, kladné číslo, záporné číslo.

Poznámka

Výsledok funkcií a predikátov nedefinujeme explicitne ale rozumieme implicitne, podľa zákonov matematiky.

Poznámka

Namiesto prefixnej podoby použitia binárnych funkcií a predikátov $=(5,6)$ budeme používať infixnú formu $5=6$.

Úloha 7.1

  • Preložte nasledujúce tvrdenia do prirodzeného jazyka:
  • Rozhodnite či formuly jazyka predikátovej logiky platia v modeli $M$ pri ohodnotení $e$, kde $e(x)= 9$: $$ \begin{array}{l} Prime(6)\\ Pos(4)\\ (∃x)Prime(x)\\ (∀x)Prime(x)\\ (∀x)Even(2*x)\\ Pos(4) ∧ Neg(5)\\ Pos(pow(2)) ⇒ Even(2*2)\\ (∀x)Pos(pow(x)) ⇒ Even(2*x)\\ (∃x)Pos(pow(x)) ⇒ Even(2*x)\\ (∀x)(∀y)x+y=y+x\\ (∀x)(∀y)(∀z)x+(y+z)=(x+y)+z\\ (∀x)(∀y)(∃z)x+y=z\\ (∃z)(∀x)(∀y)x+y=z\\ Pos(4) ∧ Neg(x)\\ Pos(4) ∧ ¬Neg(x)\\ ¬((∃x)Pos(x) ∧ Neg(x)) \end{array} $$

Úloha 7.2

Preložte nasledujúce tvrdenia v prirodzenom jazyku do formuly jazyka predikátovej logiky a negujte ich:

  • Existuje prvočíslo.
  • Každé číslo väčšie ako nula je kladné.
  • Každé číslo väčšie ako nula je kladné alebo Každé číslo menšie ako nula je záporné.
  • Ak každé číslo väčšie ako nula je kladné alebo Každé číslo menšie ako nula je záporné, potom nula nie kladné číslo ani záporné číslo.
  • Vyjadrite zákon komutativity operácie ščitania.
  • Vyjadrite neplatnosť komutativity operácie odčítania.
  • Vyjadrite zákon asociativity operácie násobenia.