====== IN-POS 10. Konečné automaty (FA) a logiky nad slovy ======
===== Zadání =====
* Logika 1.řádu (FOL) a monadická logika 2.řádu (MSOL):
* syntax a sémantika FOL a MSOL,
* principy převoditelnosti mezi FA a formulemi MSOL.
* Automaty nad nekonečnými slovy a omega-regulární jazyky.
* IA006
===== Vypracování =====
==== Logika prvního řádu (FOL) nad slovy ====
FOL obecně je zpracována v jiné otázce:
http://statnice.dqd.cz/home:inf:ap14
=== Syntax ===
^ ^ ^
|x,y,z,...| pozice|
|P_a(x)|unární predikát značící, že na pozici x je písmeno ''a''|
|x < y|pozice x je před y|
|\wedge , ∨ , ¬ |logické spojky|
|\forall x, \exists x|kvantifikace|
| |+ rovnost x=y|
==== Monadická logika druhého řádu (MSO) nad slovy ====
=== Syntax ===
^ ^ ^
|x,y,z,...|pozice|
|P_a(x)|unární predikát značící, že na pozici x je písmeno ''a''|
|x < y|pozice x je před y|
|\wedge , ∨ , ¬ |logické spojky|
|\forall x, \exists x|kvantifikace|
|X,Y,Z,...| proměnné druhého řádu (množiny pozic)|
|x \in X| x leží v X|
|\forall X, \exists X| kvantifikace nad množinami pozic|
Proměnné ve formuli mohou být:
* **vázané** pomocí kvantifikátoru
* **volné** (zpravidla píšeme za jméno formule)
sentence = uzavřená formule = formule bez volných proměnných
=== Jazyky zadané sentencí MSO ===
* Sentence MSO \phi = vlastnost slov
* Slovo vlastnost :
* má:
* nemá:
*
=== Valuace formulí ===
Valuace přiřazuje hodnotu volným proměnným.
==== Vztah FA a formulí MSOL ====
Regulární jazyky = jazyky definovatelné MSO.
=== Převod NFA na formuli MSO ===
NFA -> sentence MSO t.ž.
^ ^ ^
|| máme množinu pozic odpovídající stavům původního automatu|
| | |
|| každá pozice odpovídá některému stavu |
|| každá pozice neodpovídá dvěma různým stavům |
|| |
|| první prvek odpovídá počátečnímu stavu |
|| definice přechodů |
|| poslední prvek odpovídá finálnímu stavu |
|| |
//First, Succ, Last// jsou jednoduše definovatelná makra
Dle slidů je někde chybka..;-(
=== Převod sentence MSOL na NFA ===
Využijeme **čisté MSOL** (logika bez prvního řádu):
^ ^ ^
|| proměnné jen druhého řádu (množiny pozic)|
||unární predikát značící, že na všech pozicách z je písmeno ''a''|
|| je podmnožinou |
| < |něco z je před |
||logické spojky|
||kvantifikace (jen 2. řád)|
|||
* **"Čistá" MSOL** je ekvivalentní **MSOL**.
* Pro zápis čisté MSOL v MSOL máme makra pro syntaxi, která v MSOL není.
* Pro zápis MSOL v čísté MSOL nahradíme všechny prvořádové proměnné druhořádovou proměnnou a přidáme .
* 1. zakódujeme valuace **MSOL**
* pro formuli s //k// proměnnými půjde o //k+1//-tici
*
* 2. máme překlad pro jednotlivé výrazy **MSOL**
* začínáme u podformulí a spojujeme dohromady
* Složitost
* NFA -> MSOL:
* MSOL -> NFA:
==== Automaty nad nekonečnými slovy a omega-regulární jazyky ====
* **Automaty**
* NFA A =
* Por nekonečná slova máme rozdílné akceptační podmínky ( značí stavy, které běh navštíví :
* **Büchi**
*
* cíl:
* **Muller**
*
* cíl:
* **Rabin**
*
* cíl:
=== Omega-regulární jazyky ===
Jazyky akceptované:
* nedeterministickými Büchiho automaty (BA)
* (ne)deterministickými Mullerovy automaty
* (ne)deterministickými Rabinovy automaty
Jazyky jsou uzavřeny na:
* a .
* doplněk
* Jazyky akceptované deterministickým BA nejsou uzavřeny na doplněk => det. BA nepopisují celou třídu omega-regulárních jazyků.
===== Zdroje =====
* [[http://www.fi.muni.cz/usr/kretinsky/MSO_Automaty_slides.pdf|slidy: V. Brožek: Logika a regulární jazyky]]