Rozdział 1
Spisali: Karolina Sołtys i Mateusz Tarkowski
Zacznijmy od obserwacji, że możemy łatwo opisywać pewne własności słów za pomocą formuł logicznych. Załóżmy, że dysponujemy relacją a(x), oznaczającą, że x-tą literą w słowie jest litera a. Wtedy na przykład formuła 3X a(x) będzie spełniona dla słów, które zawierają co najmniej jedną literę a, a formuła Vx3j, y > xAa(y) — dla słów, które kończą się na a. W obu przypadkach język złożony ze wszystkich słów, dla których dana formuła jest prawdziwa, jest językiem regularnym — odpowiednie wyrażenia regularne to A*a A* oraz A'a. Nasuwa się pytanie, czy każdy język regularny daje się zapisać za pomocą formuły logiki pierwszego rzędu, oraz czy każda taka formuła wyznacza jakiś język regularny.
Sformalizujmy trochę pojęcia, z których korzystaliśmy w poprzednim akapicie. Niech A będzie skończonym alfabetem i niech w = (iq ... an_i będzie słowem nad alfabetem A. Słowo w będziemy reprezentować strukturą relacyjną
w = ({l,...,n}, <(x, y), s(x, y), {a(x)}a6>ł),
gdzie zbiór {1,... ,n} interpretujemy jako zbiór pozycji w słowie w, s jest relacją następnika, a predykaty a(x) (dla a £ A) wyznaczają pozycje w słowie, na których znajduje się litera a.
Przez Lv będziemy oznaczać język zdefiniowany formułą p:
= {w £ A* : w\= <p}.
Okazuje się, że nie wszystkie języki regularne dają się wyrazić za pomocą formuły logiki pierwszego rzędu. Z poniższego lematu wynika, że nie możemy tak wyrazić np. języka (aa)*.
Lemat 1. Dla każdej formuły ip £ FO(<,s) o rozmiarze n zachodzi a2" 1= p -*=> a2"+1 [= ip.
Dowód
Dowód polega na nietrudnej analizie gry Ehrenfeuchta na słowach a2 i a2 +1. Szczegóły pozostawiamy czytelnikowi. □
5