Predikátová logika - dedukčné kalkuly

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

V rámci predchádzajúcich cvičení bolí predstavené dedukčné kalkuly pre výrokovú logiku, konkrétne: dva Gentzenové dedukčné kalkuly (prirodzená dedukcia, sekventový kalkul) a rezolučná metóda. Obsahom tohto cvičenia je definícia týchto kalkulov pre predikátovú logiku.

Dôkaz formuly v predikátovej logike znamená, že formula je pravdivá pri ľubovoľnom ohodnotení $e$, v ľubovoľnom modeli $M$ a ľubovoľnej neprázdnej doméne.

Keďže predikátová logika je rozšírením výrokovej logiky, je potrené rozšíriť definíciu Gentzenových dedukčných kalkulov o nové pravidlá pre dve nové logické operátory a to pre všeobecný kvantifikátor $(∀x)φ$ a existenčný kvantifikátor $(∃x)φ$.

Pre automatizované dokazovanie formúl obdobne ako vo výrokovej logike, aj v predikátovej logike využijeme rezolučnú metódu. Ktorá je základom automatizovaných dokazovacích systémov aj programovacích jazykov logickej paradigmy, ktoré samé o sebe možno považovať za automatické dokazovacie systémy.

Poznámka

$~\\~$

V rámci tohto cvičenia sa budeme venovať len prevodu formuly predikátovej logiky na požadovaný tvar pre rezolučnú metódu. Samotnej rezolučnej metóde bude venované budúce cvičenie.

Terminológia

Substitúcia (definovaná na predchádzajúcom cvičení) je funkcia na termoch a na formulách, budeme je označovať $σ$.

Príklad

Majme formulu $P(x)$ a substitúciu $σ=[y/x]$, potom $σ(P(x))=P(x)[y/x]=P(y)$.

Variant formuly $(Q x)φ$, (kde $Q$ je ľubovoľný kvantifikátor), je formula $(Q y)φ[y/x]$ pričom $y$ nemá voľný výskyt v $φ$. To znamená, ako už bolo načrtnuté v predchádzajúcom cvičení, viazanú premennú je možné premenovať t.j. substituovať za inú premennú, ktorá nemá voľný výskyt v danej formule pričom platí, že pôvodná formula je sémanticky ekvivalentná s novou formulou $(Q x)φ ≡ (Q y)φ[y/x]$.

Príklad

Nech je daná nasledujúca formula $φ$: $$φ=(∀x)(∃y)(P(x)∧Q(y)).$$ Variantom formuly $φ$ sú napr. nasledujúce formuly: $$φ'=(∀z)(∃y)(P(z)∧Q(y)),$$ $$φ''=(∀z)(∃u)(P(z)∧Q(u)),$$ pričom platí: $$φ≡φ'≡φ''.$$

Gödelova veta o úplnosti (predikátovej logiky) (Gödel's completeness theorem) hovorí, že ak formula $φ$ platí (pravdivá v nezávisle na modely a interpretácii), potom je $φ$ dokázateľná. To znamená:
$$\text{ak}~ \quad Γ \models φ \quad \text{potom}~ \quad Γ \vdash φ.$$

Gödelova veta o neúplnosti (Gödel's incompleteness theorems) hovorí, že akýkoľvek formálny systém, ktorý dokáže vyjadriť základnú aritmetiku bude obsahovať tvrdenia (formuly), ktoré sú pravdivé ale nie je možné ich dokázať a zároveň nie je možné dokázať ani ich negácie.

Prirodzená dedukcia v predikátovej logike

Prirodzená dedukcia v predikátovej logike (systém NK) pozostáva z dedukčných pravidiel výrokovej logiky a je rozšírená o štyri pravidlá pre kvantifikátory.

Prirodzená dedukcia v predikátovej logike je konzistentná a úplná, platí: $$Γ \models φ \quad \text{vtt.}~ \quad Γ \vdash φ.$$

Eliminácia všeobecného kvantifikátora

Dedukčné pravidlo pre elimináciu všeobecného kvantifikátora:


Vychádza z jednoduchého princípu, ak $(∀x)φ$ je pravda, potom viazanú premennú $x$ je možné substituovať ľubovoľným termom $t$ a $φ[t/x]$ musí byť pravda. Vychádza zo zákona $(∀x)P(x) ⇒ P(t)$.

Zavedenie všeobecného kvantifikátora

Dedukčné pravidlo pre zavedenie všeobecného kvantifikátora:


Aby bolo možné dokázať $(∀x)φ$ je potrebné najskôr dokázať $φ[t/x]$ je pravda, pre každý prvok domény. Samozrejme, že nechceme dokázať $φ[t/x]$ pre všetky možnosti, pričom doména môže byť nekonečná. Namiesto toho postačuje ukázať, že $φ[t/x]$ je pravda pre ľubovoľný prvok $t$. To znamená, term $t$ musí byť nový (fresh), t.j. $t$ nesmie mať voľný výskyt v hypotézach, z ktorých je možné dokázať $φ[t/x]$.

Eliminácia existenčného kvantifikátora

Dedukčné pravidlo pre elimináciu existenčného kvantifikátora:


Pravidlo pre elimináciu existenčného kvantifikátora je komplexnejšie. Ak vieme, že platí $(∃x)φ[t/x]$, pre elimináciu existenčného kvantifikátora je potrebné nájsť také $t$, že $φ[t/x]$ je pravdivé. To je zabezpečené jednoduchým trikom a to tak, že vo vedľajšej vetve zavedieme novú hypotézu, kde vo $φ$ substituujeme $x$ za konkrétny prvok $t$ z ktorej dokážeme $ψ$. Term $t$ musí byť nový (fresh), t.j. $t$ nesmie mať voľný výskyt v hypotézach, z ktorých je možné dokázať $φ[t/x]$ ani $ψ$.

Zavedenie existenčného kvantifikátora

Dedukčné pravidlo pre zavedenie existenčného kvantifikátora:


Pravidlo opisuje zákon $P(a) ⇒ (∃x)P(x)$. To znamená, ak je možné dokázať, že $φ[t/x]$ je pravda, tak musí platiť tvrdenie $(∃x)φ$.

Dedukčné pravidlá prirodzenej dedukcie pre predikátovú logiku


Sekventový kalkul v predikátovej logike

Analogicky ako v prirodzenej dedukcii, pri sekventovom kalkule (systém LK) je taktiež potrebné pridať štyri nové dedukčné pravidlá pre kvantifikátory (pre každý kvantifikátor jedno pravidlo pre obe strany sekventu).

Sekventový kalkul v predikátovej logike je konzistentný a úplný, platí: $$Γ \models φ \quad \text{vtt.}~ \quad Γ \vdash φ.$$

Dedukčné pravidlá pre všeobecný kvantifikátor

\begin{prooftree} \AxiomC{Γ, φ[t/x] ⊢ Δ} \RightLabel{ (∀l)} \UnaryInfC{Γ, (∀x)φ ⊢ Δ} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Δ, φ[y/x]} \RightLabel{ (∀r)} \UnaryInfC{Γ ⊢Δ, (∀x)φ} \end{prooftree}
  • Pravidlo $(∀l)$ sa nazýva pravidlo konkretizácie. Term $t$ musí byť substituovateľný za premennú $x$ vo formule $\varphi$.
  • Pravidlo $(∀r)$ sa nazýva pravidlo generalizácie. Premenná $y$ musí byť substituovateľná za premennú $x$ vo formule $\varphi$ a nemať žiadny voľný výskyt v množine predpokladov $Γ$, množine záverov $Δ$ a v $(∀x)φ$.

Dedukčné pravidlá pre existenčný kvantifikátor

\begin{prooftree} \AxiomC{Γ, φ[y/x] ⊢ Δ} \RightLabel{ (∃l)} \UnaryInfC{Γ, (∃x)φ ⊢ Δ} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Δ, φ[t/x]} \RightLabel{ (∃r)} \UnaryInfC{Γ ⊢Δ, (∃x)φ} \end{prooftree}
  • Pravidlo $(∃r)$ sa nazýva pravidlo konkretizácie. Term $t$ musí byť substituovateľný za premennú $x$ vo formule $\varphi$.
  • Pravidlo $(∃l)$ sa nazýva pravidlo generalizácie. Premenná $y$ musí byť substituovateľná za premennú $x$ vo formule $\varphi$ a nemať žiadny voľný výskyt v množine predpokladov $Γ$, množine záverov $Δ$ a v $(∀x)φ$.

Dedukčné pravidlá sekventového kalkulu pre predikátovú logiku

Pravidlo identity a rezu:

\begin{prooftree} \AxiomC{ } \RightLabel{ (id)} \UnaryInfC{Γ, φ ⊢ Δ, φ} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Λ, φ} \AxiomC{φ, Δ ⊢ Σ} \RightLabel{ (cut)} \BinaryInfC{Γ, Δ ⊢ Λ, Σ} \end{prooftree}

Logické pravidlá:

Negácia

\begin{prooftree} \AxiomC{Γ ⊢ Δ, φ} \RightLabel{ (¬l)} \UnaryInfC{Γ, ¬φ ⊢ Δ} \end{prooftree} \begin{prooftree} \AxiomC{Γ, φ ⊢ Δ} \RightLabel{ (¬r)} \UnaryInfC{Γ ⊢ Δ, ¬φ} \end{prooftree}

Konjunkcia

\begin{prooftree} \AxiomC{Γ, φ ⊢ Δ} \RightLabel{ (∧l1)} \UnaryInfC{Γ, φ ∧ ψ ⊢ Δ} \end{prooftree} \begin{prooftree} \AxiomC{Γ, ψ ⊢ Δ} \RightLabel{ (∧l2)} \UnaryInfC{Γ, φ ∧ ψ ⊢ Δ} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Δ, φ} \AxiomC{Γ ⊢ Δ, ψ} \RightLabel{ (∧r)} \BinaryInfC{Γ ⊢ Δ, φ ∧ ψ} \end{prooftree}

Disjunkcia

\begin{prooftree} \AxiomC{Γ ⊢ Δ, φ} \RightLabel{ (∨r1)} \UnaryInfC{Γ ⊢ Δ, φ ∨ ψ} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Δ, ψ} \RightLabel{ (∨r2)} \UnaryInfC{Γ ⊢ Δ, φ ∨ ψ} \end{prooftree} \begin{prooftree} \AxiomC{Γ, φ ⊢ Δ} \AxiomC{Γ, ψ ⊢ Δ} \RightLabel{ (∨l)} \BinaryInfC{Γ, φ ∨ ψ ⊢ Δ} \end{prooftree}

Implikácia

\begin{prooftree} \AxiomC{Γ, φ ⊢ Δ, ψ} \RightLabel{ (⇒r)} \UnaryInfC{Γ ⊢ Δ, φ ⇒ ψ} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Λ, φ} \AxiomC{Δ, ψ ⊢ Σ} \RightLabel{ (⇒l)} \BinaryInfC{Γ,Δ φ ⇒ ψ ⊢ Λ, Σ} \end{prooftree}

Konštanty

\begin{prooftree} \AxiomC{Γ ⊢ Δ} \RightLabel{ (⊥r)} \UnaryInfC{Γ ⊢ Δ, ⊥} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Δ} \RightLabel{ (⊤r)} \UnaryInfC{Γ ⊢ Δ, ⊤} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Δ} \RightLabel{ (⊤l)} \UnaryInfC{Γ, ⊤ ⊢ Δ} \end{prooftree}

Kvantifikátory

\begin{prooftree} \AxiomC{Γ, φ[t/x] ⊢ Δ} \RightLabel{ (∀l)} \UnaryInfC{Γ, (∀x)φ ⊢ Δ} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Δ, φ[y/x]} \RightLabel{ (∀r)} \UnaryInfC{Γ ⊢Δ, (∀x)φ} \end{prooftree}
\begin{prooftree} \AxiomC{Γ, φ[y/x] ⊢ Δ} \RightLabel{ (∃l)} \UnaryInfC{Γ, (∃x)φ ⊢ Δ} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Δ, φ[t/x]} \RightLabel{ (∃r)} \UnaryInfC{Γ ⊢Δ, (∃x)φ} \end{prooftree}

Štrukturálne pravidlá:

Pravidlá zoslabenia

\begin{prooftree} \AxiomC{Γ ⊢ Δ} \RightLabel{ (wl)} \UnaryInfC{Γ, φ ⊢ Δ} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Δ} \RightLabel{ (wr)} \UnaryInfC{Γ ⊢ Δ, φ} \end{prooftree}

Pravidlá kontrakcie

\begin{prooftree} \AxiomC{Γ, φ, φ ⊢ Δ} \RightLabel{ (cl)} \UnaryInfC{Γ, φ ⊢ Δ} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Δ, φ, φ} \RightLabel{ (cr)} \UnaryInfC{Γ ⊢ Δ, φ} \end{prooftree}

Pravidlá výmeny

\begin{prooftree} \AxiomC{Γ, ψ, φ ⊢ Δ} \RightLabel{ (exl)} \UnaryInfC{Γ, φ, ψ ⊢ Δ} \end{prooftree} \begin{prooftree} \AxiomC{Γ ⊢ Δ, ψ, φ} \RightLabel{ (exr)} \UnaryInfC{Γ ⊢ Δ, φ, ψ} \end{prooftree}

Rezolučná metóda a automatické dokazovanie v predikátovej logike

Na štvrtom cvičení bola prezentovaná rezolučná metóda ako spôsob automatického dokazovania vo výrokovej logike. Zovšeobecnenie rezolučnej metódy pre predikátovú logiku žiaľ nie je také triviálne ako v prípade Gentzenových dedukčných kalkulov.

Rezolučná metóda v predikátovej logike je konzistentná a úplná sporom (refutation completeness) avšak je semi-rozhodnuteľná. To znamená, ak formula je kontradikcia, tak rezolučná metóda v konečnom počte krokov túto skutočnosť zistí a zastaví svoje vykonávanie. Avšak ak je formula splniteľná (nie tautológia), algoritmus nemusí skončiť svoje vykonávanie.

Pred tým ako zovšeobecníme rezolučnú metódu pre predikátovú logiku, je potrebné zaviesť niekoľko nových pojmov. Pre aplikovanie rezolučnej metódy musí byť formula predikátovej logiky v požadovanom klauzulárnom tvare.

Zjednodušený postup ako dostať formulu predikátovej logiky do klauzulárneho tvaru je nasledovný:

  1. Negácia formuly.
  2. Prevod formuly na prenexný normálny tvar, v ktorom všetky kvantifikátory sa nachádzajú na začiatku formuly.
  3. Úprava formuly na Skolemovský normálny tvar, kde sa procesom nazývaním skolemizácia odstránia existenčné kvantifikátory.
  4. Vynechanie všeobecných kvantifikátorov (formula je uzavretá, každá premenná je implicitne všeobecne kvantifikovaná).
  5. Prevod formuly na konjunktívny normálny tvar.
  6. Úprava formuly v KNF na množinovú notáciu KNF.

Poznámka

$~\\~$

Postup pre formuly v tvare logického vyplývania $Γ\vdash φ$ je analogický ako vo výrokovej logike.

  • Na každú formulu z množiny predpokladov $Γ$ aplikujeme kroky 2-6, výsledok pridáme do množiny klauzúl.
  • Na formulu $φ$ - záver, aplikujeme kroky 1-6, výsledok pridáme do množiny klauzúl.

Prenexný normálny tvar

Formula $φ$ je v prenexnom normálnom tvare ak: $$φ=(Q_1x_1)(Q_2x_2)...(Q_nx_n)φ',$$ kde:

  • $Q_i ∈ \{∀,∃\}$ pre akékoľvek $(1≤i≤n)$,
  • $φ'$ neobsahuje kvantifikátory.

Zjednodušene povedané, všetky kvantifikátory $Q_ix_i$ musia byť na začiatku formuly, všetky premenné $x_i$ musia byť navzájom rôzne a $φ'$ je otvorená formula (jadro formuly).

Pre každú formulu $φ$ predikátovej logiky existuje sémanticky ekvivalentná formula $φ'$, ktorá je v prenexnom normálnom tvare.

Prevod formuly na prenexný normálny tvar:

  1. Eliminácia ekvivalencií a implikácii.
  2. Vloženie (potlačenie) negácií do vnútra, tak že negácie sa budú nachádzať len pred atomickými formulami.
  3. Premenovanie viazaných premenných, v prípade výskytu rovnakej premennej vo viacerých kvantifikátoroch (variant formuly).
  4. Presun kvantifikátorov na začiatok formuly.

Poznámka

Na presun kvantifikátorov na začiatok formuly využijeme zákony definované na predchádzajúcich cvičeniach.

Príklad

Nasledujúce formuly sú v prenexnom normálnom tvare: $$ \begin{array}{l} P(x)\\ (∃x)(P(x) ⇒ Q(y))\\ (∀y)(∃x)(P(x) ∨ Q(y))\\ (∃u)(∀x)(∀y)(∃z)(∀v)(P(x,y,z) ∧ Q(u) ⇒ R(z,v)) \end{array} $$

Príklad

Nasledujúce formuly nie sú v prenexnom normálnom tvare: $$ \begin{array}{l} ¬(∃x)P(x)\\ (∃x)(P(x)) ⇒ Q(y)\\ (∀y)(∃x)(P(x) ∨ Q(y)) ∧ P(x)\\ (∃u)(∀x)(∀y)(∃z)(∀v)(T(x,y,z) ∧ Q(u) ⇒ R(z,v)) ∨ (∃x)S(x) \end{array} $$

Príklad

Preveďte nasledujúcu formulu do prenexného normálneho tvaru: $$ \begin{array}{lc} (∀x)((∃y)R(x, y) ∧ (∀y)¬S(x, y) ⇒ ¬((∃y)R(x, y) ∧ P(z))) & ≡ \\ (∀x)(¬((∃y)R(x, y) ∧ (∀y)¬S(x, y)) ∨ ¬((∃y)R(x, y) ∧ P(z))) & ≡ \\ (∀x)(¬(∃y)R(x, y) ∨ ¬(∀y)¬S(x, y) ∨ ¬(∃y)R(x, y) ∨ ¬P(z)) & ≡ \\ (∀x)((∀y)¬R(x, y) ∨ (∃y)¬¬S(x, y) ∨ ¬(∃y)R(x, y) ∨ ¬P(z)) & ≡ \\ (∀x)((∀y)¬R(x, y) ∨ (∃y)S(x, y) ∨ (∀y)¬R(x, y) ∨ ¬P(z)) & ≡ \\ (∀x)(∀y)(¬R(x, y) ∨ (∃u)S(x, u) ∨ (∀v)¬R(x, v) ∨ ¬P(z)) & ≡ \\ (∀x)(∀y)(∃u)(¬R(x, y) ∨ S(x, u) ∨ (∀v)¬R(x, v) ∨ ¬P(z)) & ≡ \\ (∀x)(∀y)(∃u)(∀v)(¬R(x, y) ∨ S(x, u) ∨ ¬R(x, v) ∨ ¬P(z)) \end{array} $$

Poznámka

$~\\~$

Prevod formuly do prenexnej formy nie je jednoznačný proces (platí zákon komutatívnosti $∧, ∨$). Kvôli skolemizácii je výhodné sa snažiť dostať existenčné kvantifikátory čo najhlbšie/najbližšie k jadru formuly. V predchádzajúcom príklade by bolo vhodné vymeniť pozície formúl $(∃u)S(x, u)$ a $(∀y)¬R(x, y)$.

Skolemovský normálny tvar

Ďalším krokom potrebným na úpravu formuly predikátovej logiky do tvaru vhodného pre rezolučnú metódu je skolemizácia (proces transformácie formuly na Skolemovský normálny tvar). Skolemizáciou sa odstránia existenčné kvantifikátory tak, že každá viazaná premenná existenčným kvantifikátorom je nahradená skolemovskou konštantou alebo skolemovskou funkciou. Takáto transformácia nezachováva sémantickú ekvivalenciu formúl ale výsledná formula je ekvisplniteľná. To znamená, ak pôvodná formula je nesplniteľná, tak aj formula v skolemovskom normálnom tvare je nesplniteľná. Pričom pravé nesplniteľnosť je kľúčová vlastnosť, ktorú skúma rezolučná metóda.

Poznámka

Vlastnosť ekvisplniteľnosti budeme označovať $≡_e$

Skolemizácia

Majme nasledujúcu formulu v prenexnom tvare $$φ=(∀x_1)(∀x_2)...(∀x_k)(∃x)φ',$$ kde $k≥0$, pričom $φ'$ môže obsahovať ďalšie kvantifikátory. Inými slovami, máme $k$ všeobecných kvantifikátorov pred prvým existenčným kvantifikátorom.

Nech $f$ je funkčný symbol s aritou $k$, ktorý sa nenachádza vo $φ$ (nový funkčný symbol (fresh)). Potom existuje formula $ψ$, ktorá je ekvisplniteľná s $φ$: $$ψ=(∀x_1)(∀x_2)...(∀x_k)σ(φ'),$$ kde: $$σ=[f(x_1,x_2,...,x_k)/x]$$ a platí $$φ ≡_e ψ$$

Poznámka

Spomeňme si, že konštanta je nulárny funkčný symbol.

Či sa jedná o substitúciu skolemovskou funkciou alebo konštantou závisí od toho, či sa pred existenčným kvantifikátorom (vľavo) nachádza jeden (prípadne viacero) všeobecných kvantifikátorov alebo žiaden.

Majme formulu $φ=(Q_1x_1)...(Q_nx_n)φ'$ v prenexnom normálnom tvare, kde $Q_i ∈ \{∀,∃\}$. Potom pre každý výskyt existenčného kvantifikátora $Q_i$ v $φ$:

  • Ak sa pred $Q_ix_i$ (vľavo od $Q_ix_i$) nenachádzajú žiadne všeobecné kvantifikátory, zavedieme do modelu novú konštantu $c_i$, vynecháme existenčný kvantifikátor a aplikujeme substitúciu $σ_i=[c_i/x_i]$ na jadro formuly $φ'$.
  • Ak sa pred $Q_ix_i$ (vľavo od $Q_ix_i$) nachádza $k$ všeobecných kvantifikátorov, zavedieme do modelu nový funkčný symbol $f_i$ s aritou $k$, vynecháme existenčný kvantifikátor a aplikujeme substitúciu $σ_i=[f_k(x_1,...,x_k)/x_i]$ na jadro formuly $φ'$. Argumenty nového funkčného symbolu sú závislé na všeobecných kvantifikátoroch.
  • Ak formula obsahuje viacero existenčných kvantifikátorov, odstraňujeme ich postupne zľava. Je potrebné mať na pamäti, že postupnosť kvantifikátorov v skutočnosti vyjadruje vnorenie kvantifikátorov.

Príklad

  • Majme formulu $(∃x)P(x)$. Keďže sa pred existenčným kvantifikátorom nenachádza žiaden všeobecný kvantifikátor, v procese skolemizácie sa odstráni $(∃x)$ a viazaná premenná $x$ sa nahradí novou skolemovskou konštantou: $$(∃x)P(x) ≡_e P(a).$$
  • Majme formulu $(∀x)(∃y)P(x,y)$. Keďže sa pred existenčným kvantifikátorom nachádza jeden všeobecný kvantifikátor, v procese skolemizácie sa odstráni $(∃y)$ a viazaná premenná $y$ sa nahradí novým skolemovským funkčným symbolom s aritou jeden $f(x)$, pričom argument $x$ funkčného symboly $f$ pochádza zo všeobecného kvantifikátora $(∀x)$: $$(∀x)(∃y)P(x,y) ≡_e (∀x)P(x,f(x)).$$
  • Analogicky postupujeme v prípade, že pred existenčným kvantifikátorom sa nachádza viacero všeobecných kvantifikátorov. Majme nasledujúcu formulu:

$$ \begin{array}{rcl} (∀x)(∀y)(∃z)P(x,y,z) & ≡_e & (∀x)(∀y)P(x,y,f(x,y)) \end{array} $$

Príklad

Majme formulu $(∃u)(∀x)(∀y)(∃z)(∀v)(P(x,y,z) ∧ Q(u) ⇒ R(z) ∨ O(v))$, preveďte ju na skolemovský normálny tvar. $$ \begin{array}{lcl} (∃u)(∀x)(∀y)(∃z)(∀v)(P(x,y,z) ∧ Q(u) ⇒ R(z,v))& ≡_e & ~ \\ (∀x)(∀y)(∃z)(∀v)(P(x,y,z) ∧ Q(a) ⇒ R(z,v))& ≡_e & ~ \\ (∀x)(∀y)(∀v)(P(x,y,f(x,y)) ∧ Q(a) ⇒ R(f(x,y),v)) & ~ & ~ \end{array} $$

Postup

Krok 1: Dokážte pomocou naturálnej dedukcie nasledujúce formuly predikátovej logiky.

Poznámka

Pouvažujte o tom, ktoré z implikácií neplatia opačným smerom. Pokúste sa ich dokázať a zdôvodnite, prečo dôkaz nie je možný.

Úloha 1.1

$$(∀x) P(x) ⇒ P(t)$$

Úloha 1.2

$$P(t) ⇒ (∃y) P(y)$$

Úloha 1.3

$$(∀x) P(x) ⇒ (∃y) (P(y))$$

Úloha 1.4

$$¬(∀x) P(x) ⇒ (∃x) (¬P(x))$$

Úloha 1.5

$$¬(∃x) P(x) ⇒ (∀x) ¬(P(x))$$

Úloha 1.6

$$(∀x) R(x) ⇒ (∀x)P(x) ⇒ (∀y)(R(y) ∧ P(y))$$

Úloha 1.7

$$(∃x)(∀y) R(x,y) ⇒ (∀y)(∃x) R(x,y)$$

Úloha 1.8

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

Krok 2: Dokážte v sekventovom kalkule nasledujúce formuly predikátovej logiky.

Poznámka

Pouvažujte o tom, ktoré z implikácií neplatia opačným smerom. Pokúste sa ich dokázať a zdôvodnite, prečo dôkaz nie je možný.

Úloha 2.1

$$\vdash (∀x)P(x)⇒(∀y)P(y)$$

Úloha 2.2

$$\vdash (∀x)P(x)⇒(∃y)P(y)$$

Úloha 2.3

$$\vdash ¬(∀x)P(x)⇒(∃x)¬P(x)$$

Úloha 2.4

$$\vdash (∃x)(∀y) R(x,y) ⇒ (∀y)(∃x) R(x,y)$$

Úloha 2.5

$$\vdash (∀x) R(x) ⇒ (∀x)P(x) ⇒ (∀y)(R(y) ∧ P(y))$$

Úloha 2.6

$$\vdash (∀x)(∀y)(P(x) ∧ Q(y)) ⇒ P(y)$$

Krok 3: Preveďte nasledujúce formuly predikátovej logiky na prenexný normálny tvar.

Úloha 3.1

$$¬(∃x)P(x)$$

Úloha 3.2

$$(∃x)(P(x) ⇒ (∀y)P(y))$$

Úloha 3.3

$$(∃x)(P(x,y) ⇒ (∀y)R(y))$$

Úloha 3.4

$$(∀x)(P(x,z) ∨ (∀x)Q(x)) ∨ Q(x)$$

Úloha 3.5

$$(∀x)(P(x,z) ∨ (∀x)Q(x) ∧ Q(x))$$

Úloha 3.6

$$((∀x)(∃z)P(x,z) ∨ (∀x)Q(x)) ∨ Q(x)$$

Úloha 3.7

$$((∀x)(∃z)P(x,z) ∨ (∀x)Q(x)) ∨ (∀x)Q(x)$$

Úloha 3.8

$$(¬(∃x)P(x) ∨ (∀y)(∃z)(Q(y,z) ∧ R(x,y,z))) ∧ (∃x)(∀y)(∀z)(S(x,y) ∨ T(y,z))$$

Úloha 3.9

$$(¬(∃x)P(x) ∨ (∀y)(∃z)(Q(y,z) ∧ R(x,y,z))) ∧ (∃x)(∀y)(∀z)(S(x,y) ∨ (∀x)T(y,z))$$

Krok 4: Preveďte nasledujúce formuly predikátovej logiky na Skolemovský normálny tvar.

Úloha 4.1

$$(∀x)¬P(x)$$

Úloha 4.2

$$(∃x)¬P(x)$$

Úloha 4.3

$$(∃x)(∀y)(P(x) ⇒ P(y))$$

Úloha 4.4

$$(∀y)(∃x)(P(x,y) ⇒ R(y))$$

Úloha 4.5

$$(∀u)(∃y)(P(u,y) ∨ Q(y) ∨ Q(x))$$

Úloha 4.6

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

Úloha 4.7

$$(∀x)(∃z)(P(x,z) ∨ Q(x) ∨ Q(z))$$

Úloha 4.8

$$(∃x)(∀y)(∃z)(∃u)(∀v)(∃t)(P(x) ∨ Q(y,z,u) ∧ R(x,v,y,z) ∧ S(u,y,x) ∨ T(y,v,t))$$