Obsah
AP14 Predikátová logika prvního řádu
Zadání
(syntax, sémantika, prenexace, skolemizace, unifikace, rezoluce)
Vypracování
Predikátová logika
- plně přejímá výsledky výrokové logiky
- zabývá se navíc strukturou jednotlivých jednoduchých výroků – na základě této analýzy lze odvodit platnost některých výroků, které ve výrokové logice platné nejsou
Syntax
** Predikát ** (značíme velkými písmeny, např. predikáty ) je n-ární relace; vyjadřuje vlastnosti objektů a vztahy mezi objekty.
- unární predikáty vyjadřují vlastnosti
- binární, ternární, …, n-ární vyjadřují vztahy mezi dvojicemi, trojicemi, …, n-ticemi objektů.
- nulární predikáty (sentence) představují původní výroky ve výrokové logice (bez vypuštěných výrazů)
Konstanty (značíme ) reprezentují jména objektů; jedná se o prvky předem specifikované množiny hodnot D – domény
Proměnné (značíme ) zastupují jména objektů, mohou nabývat libovolných hodnot z dané domény
Funkce (značíme ) reprezentují složená jména objektů,
Příklad1)
Termy jsou výrazy složené pouze z funkčních symbolů, konstant a proměnných
- každá proměnná a každá konstanta je term
- je-li
n-ární funkční symbol a
jsou termy, pak
je term
- nic jiného není term
příklad termu:
Kvantifikátory2)
Existenční kvantifikátor :
– existuje alespoň jeden prvek
domény, pro který platí
Atomická formule
- je-li
n-ární predikátový symbol a
jsou termy, pak
je atomická formule
- jsou-li
a
termy, pak
je atomická formule
- nic jiného není atomická formule
Formule jsou výrazy složené pouze z funkčních symbolů, konstant a proměnných
- každá atomická formule je formule
- je-li
formule, pak
je formule
- jsou-li
formule, pak
jsou formule
- je-li
proměnná a
formule, pak
a
jsou formule
- nic jiného není formule
Podformule formule je libovolná spojitá podčást
, která je sama formulí.
Příklad podformule3)
Vázaný/volný výskyt
- výskyt proměnné
ve formuli
je vázaný, pokud existuje podformule
formule
, která obsahuje tento výskyt
a začíná
, resp.
- výskyt proměnné je volný, není-li vázaný 4)
Sentence (uzavřená formule) – formule bez volných výskytů proměnných (všechny výskyty všech proměnných jsou vázané)
Otevřená formule – formule bez kvantifikátorů
Substituce – substituovat lze pouze volné proměnné.
Příklad substituce5)
substituce:
nelze!:
Sématika
Interpretace (realizace) jazyka predikátové logiky je struktura složená z
- libovolné neprázdné množiny
(domény, oboru interpretace)
- zobrazení
pro každý n-ární funkční symbol
- n-ární relace
pro každý n-ární predikátový symbol
,
Příklad6)
(relace zadaná pomocí rovnosti relací:
definujeme jako relaci „větší než“ pro celá čísla; např.
a
)
Neformálně řečeno, interpretace je přiřazení konkrétních významů všem konstantám, funkčním a predikátovým symbolům.
Valuace – Interpretace volných proměnných spočívá v jejich ohodnocení, což je libovolné zobrazení (valuace) z množiny všech proměnných do
. Neformálně řečeno, přiřazení konkrétních hodnot proměnným.
značí ohodnocení, které přiřazuje proměnné
prvek
a na ostatních proměnných splývá s valuací
Hodnota termu v interpretaci
a valuaci
je prvek
z
takový že:
- je-li
proměnná,
- je-li
, pak
je hodnotou funkce
pro argumenty
Příklad7)
Pravdivost formulí
- Formuli
nazveme pravdivou v interpretací
, je-li splňována
pro libovolnou valuaci; píšeme
- Formule
je
- tautologie, pokud je pravdivá pro každou interpretaci
- splnitelná, pokud je pravdivá pro alespoň jednu interpretaci a valuaci.
- kontradikce, pokud
je tautologie
Prenexace
Cílem Prenexové normální formy je převést libovolnou (uzavřenou) formuli do tvaru, v němž jsou všechny kvantifikátory na začátku a následuje otevřené (= bez kvantifikátorů) jádro v KNF (DNF).
- každá formule se dá převést
Algoritmus převodu
- eliminovat zbytečné kvantifikátory
- přejmenovat proměnné tak, aby u každého kvantifikátoru byla jiná proměnná
- eliminovat všechny spojky různé od
,
a
- přesunout negaci dovnitř
- přesunout kvantifikátory doleva
- použít distributivní zákony k převodu jádra do KNF (DNF)
Skolemizace
Skolemova normální forma je prenexová normální forma s pouze univerzálními kvantifikátory.
- odstraníme existenční (
) kvantifikátory
- formuli
převedeme na
Algoritmus převodu
- převést formuli do (konjunktivní) pnf
- provést Skolemizaci: odstranit všechny existenční kvantifikátory a nahradit jimi vázané proměnné pomocnými Skolemovými funkcemi
Unifikace
- směřuje k rezoluci v predikátové logice
- formule uvádíme ve Skolemově normální formě
- všeobecné kvantifikátory nepíšeme
- problém se substitucemi proměnných obecně řeší unifikace
Konečná substituce je konečná množina
, kde všechna
jsou vzájemně různé proměnné a každé
je term různý od
.
- pokud jsou všechna
uzavřené termy (neobsahují proměnné), jedná se o uzavřenou substituci
- pokud jsou
proměnné, označujeme
jako přejmenování proměnných
Konečná substituce
- označme libovolný term nebo literál jako výraz
je pak výsledek nahrazení všech výskytů všech
odpovídajícími termy
- !POZOR! Nahrazení v rámci jedné substituce
probíhají paralelně. Když se použijí dvě substituce
, probíhají postupně.
Kompozice substitucí – postupně bereme prvky z první substituce a hledáme ve druhé, zda není možnost nahradit nahrazovaného (tranzitivně)
Unifikátor
Substituci nazveme unifikátorem množiny formulí
, pokud
, tedy v případě, že
má jeden prvek.
- Existuje-li unifikátor množiny, označíme ji jako unifikovatelnou
Unifikátor příklad
- unifikátorem
je
- !POZOR! Unifikujeme vždy tak, že místo proměnné dáme term a ne naopak
Unifikátor množiny
je nejobecnějším unifikátorem (mgu)
, pokud pro libovolný unifikátor
množiny
existuje substituce
taková, že
– pro unifikovatelné množiny existuje pouze jediný mgu (až na přejmenování proměnných)
Rozdíly mezi výrazy označujeme jako
Unifikační algoritmus pro množinu výrazů S
- krok 0:
,
- krok k+1:
- je-li
jednoprvková, ukonči algoritmus s výsledkem
- jinak, pokud v
není proměnná v a term t, který ji neobsahuje, ukonči algoritmus s výsledkem neexistuje
- jinak vyber takovou proměnnou v a term t, který neobsahuje v,
,
a pokračuj krokem k+2
Rezoluce
Metoda vhodná pro strojové zpracování. Založená na vyvracení.
- formule ve Skolemově normální formě, nepíšeme kvantifikátory
- literály představují atomické formule a jejich negace
- klauzule: množiny reprezentující disjunkci literálů
- formule: množiny klauzulí reprezentující jejich konjunkci
Příklad rezoluční formule
rezoluční forma:
Rezoluční pravidlo pro predikátovou logiku. Mějme klauzule ,
bez společných proměnných (po případném přejmenování) ve tvaru:
.
- Je-li
mgu množiny
, pak rezolventou
a
je
Příklad rezolventy
- mgu
- aplikujeme mgu na
- rezolventa
Vlastnosti rezoluce:
- stejně jako ve výrokové logice je rezoluce v predikátové logice korektní a úplná
- stejný problém jako ve výrokové logice: strategie generování rezolvent (příliš velký prohledávaný prostor)
- lze použít všechny metody zjemnění uvedené pro výrokovou logiku
- Druhy rezolucí:
- Lineární rezoluce
- LI-rezoluce
- LD-rezoluce
- SLD-rezoluce
Předměty
- FI:IB101 Úvod do logiky a logického programování, doc. RNDr. Lubomír Popelínský, Ph.D.
Použitá literatura
- POPELÍNSKÝ, Lubomír: Studijní materiály předmětu IB101 Úvod do logiky a logického programování. Dostupné z URL:
Vypracoval
Martin Kotlík, UČO: 143208.
Otázku si přečetl pan RNDr. Jan Bouda a rámcově prošel. Jeho podněty pro doplnění textu, opravy nesrovnalostí a odstranění matoucích či k otázce se nevztahujících textů byly do otázky zaneseny. Tato kontrola je jen rámcová, stále se může stát, že v otázce zůstala zapomenutá chybka či nesrovnalost, vyučující za toto nenese odpovědnost, berte tuto rámcovou kontrolu jako formu pomoci od vyučujících pro studenty.

Diskuze
Ahoj, asi by chtelo upravit definici unifikace, zvlaste pak „obecně řeší uvedený problém se substitucemi proměnných unifikace “. Mozna by chtelo ten problem specifikovat. -jak instanciovat promenne, aby bylo mozne pouzıt rezolucnı pravidlo
Kdyztek to pak nejak dle uvazeni uprav, diky.
proč je u definice predikátu ta uspořádaná pětice? ve slidech to nevidím, přijde mi to matoucí. stejně tak u konstant a funkcí.
Ne každých 5 proměnných je uspořádaná pětice. Je to pouze zavedené značení predikátů. Dopíšu tam poznámku.
Domnívám se, že u příkladu vázaného/volného výskytu proměnné je y též vázaná, protože existuje podformule ∀yP(z)
Nie je to viazana premenna. Ten text k viazanosti je okopirovany zo skript popelinskeho (predikatova logika I).
Premenna y nie je viazana, pretoze ta podformula, co si uviedol ∀yP(z) neobsahuje vyskyt y.
Aby bola y viazana, musela byt ta formula A obsahovat podformulu, v ktorej sa vyskytuje y (inde nez ∀y alebo \exists y) a predchadza jej kvantifikator s y. A taka podformula vo formuly A nie je.