Toto je starší verze dokumentu! —-

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 < ypozice x je před y
\wedge , ∨ , ¬logické spojky
\forall x, \exists xkvantifikace
+ 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 < ypozice x je před y
\wedge , ∨ , ¬logické spojky
\forall x, \exists xkvantifikace
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

sentence = uzavřená formule = formule bez volných proměnných

Jazyky zadané sentencí MSO

  • Sentence MSO \phi = vlastnost slov
  • Slovo w \in \Sigma^{\star} vlastnost \phi:
    • má: w \vDash \phi
    • nemá: w \nvDash \phi
  • L(\phi) := \lbrace w \in \Sigma^{\star} | w \nvDash \phi \rbrace

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 A = (Q, q_0, \rightarrow, F) → sentence MSO \phi t.ž. L(A) = L(\phi)

\phi :=

\exists \lbrace X_q | q \in Q \rbrace : ( máme množinu pozic odpovídající stavům původního automatu
\forall x : (
\underset{q \in Q}{\vee} x \in X_q každá pozice odpovídá některému stavu
\wedge \underset{q \neq r \in Q}{\wedge} (x \in X_q \Rightarrow x \notin X_r) každá pozice neodpovídá dvěma různým stavům
)
\wedge \forall x : First(x) \Rightarrow \underset{a \in \Sigma, q_0 \overset{a}{\rightarrow} \-\ q}{\vee} P_a(x) \wedge x \in X_q první prvek odpovídá počátečnímu stavu
\wedge \forall x,y : Succ(x,y) \Rightarrow \underset{a \in \Sigma, q \overset{a}{\rightarrow} \-\ r}{\vee} x \in X_q \wedge P_a(x) \wedge y \in X_r definice přechodů
\wedge \forall x : Last(x) \Rightarrow \underset{q \in F}{\vee} x \in X_q 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é MSO (logika bez prvního řádu):

X,Y,Z,... proměnné jen druhého řádu (množiny pozic)
P_a(X)unární predikát značící, že na všech pozicách z X je písmeno a
X \subseteq YX je podmnožinou Y
X < Yněco z X je před Y
\wedge , \vee , \neglogické spojky
\exists Xkvantifikace (jen 2. řád)
Sng(X)\mid X \mid = 1
  • „Čistá“ MSO je ekvivalentní MSO.
    • Pro zápis čisté MSO v MSO máme makra pro syntaxi, která v MSO není.
    • Pro zápis MSO v čísté MSO nahradíme všechny prvořádové proměnné x druhořádovou proměnnou S_x.

Automaty nad nekonečnými slovy a omega-regulární jazyky

Zdroje

mgr-szz/in-pos/10-pos.1560252403.txt.gz · Poslední úprava: 2020/04/12 16:56 (upraveno mimo DokuWiki)
Nahoru
CC Attribution-Noncommercial-Share Alike 4.0 International
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0