Logika dla informatyków/Logika drugiego rzędu: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przemo (dyskusja | edycje)
m Zastępowanie tekstu – „.↵</math>” na „</math>”
 
(Nie pokazano 44 wersji utworzonych przez 3 użytkowników)
Linia 6: Linia 6:
Z przyczyn technicznych tym razem wygodnie nam będzie przyjąć,
Z przyczyn technicznych tym razem wygodnie nam będzie przyjąć,
że podstawowymi spójnikami logicznymi  
że podstawowymi spójnikami logicznymi  
są <math>\displaystyle \lnot, \lor</math> i <math>\displaystyle \exists</math>.
są <math>\lnot, \lor</math> i <math>\exists</math>.


{{definicja|12.1||
{{definicja|12.1||
Linia 13: Linia 13:
podobnie jak analogiczna [[Logika dla informatyków/Język logiki pierwszego rzędu#def-form|Definicja 2.5]] dla logiki
podobnie jak analogiczna [[Logika dla informatyków/Język logiki pierwszego rzędu#def-form|Definicja 2.5]] dla logiki
pierwszego rzędu.  Jednak tym razem nie ustalamy sygnatury z góry.  
pierwszego rzędu.  Jednak tym razem nie ustalamy sygnatury z góry.  
:*Każda formuła atomowa nad sygnaturą <math>\displaystyle \Sigma</math> jest formułą drugiego rzędu nad sygnaturą&nbsp;<math>\displaystyle \Sigma</math>.
:*Każda formuła atomowa nad sygnaturą <math>\Sigma</math> jest formułą drugiego rzędu nad sygnaturą&nbsp;<math>\Sigma</math>.
:*Jeśli <math>\displaystyle \varphi,\psi</math> są formułami drugiego rzędu nad sygnaturą <math>\displaystyle \Sigma</math>, to <math>\displaystyle \varphi\lor\psi</math> jest też formułą drugiego rzędu nad sygnaturą <math>\displaystyle \Sigma</math>.
:*Jeśli <math>\varphi,\psi</math> są formułami drugiego rzędu nad sygnaturą <math>\Sigma</math>, to <math>\varphi\lor\psi</math> jest też formułą drugiego rzędu nad sygnaturą <math>\Sigma</math>.
:*Jeśli <math>\displaystyle \varphi</math> jest formułą drugiego rzędu  nad sygnaturą <math>\displaystyle \Sigma</math>, to <math>\displaystyle \lnot\varphi</math> jest też formułą drugiego rzędu  nad sygnaturą <math>\displaystyle \Sigma</math>.
:*Jeśli <math>\varphi</math> jest formułą drugiego rzędu  nad sygnaturą <math>\Sigma</math>, to <math>\lnot\varphi</math> jest też formułą drugiego rzędu  nad sygnaturą <math>\Sigma</math>.
:*Jeśli <math>\displaystyle \varphi</math> jest formułą drugiego rzędu nad sygnaturą <math>\displaystyle \Sigma</math> a <math>\displaystyle x\in\ZI</math> jest zmienną indywiduową, to <math>\displaystyle \exists x\varphi</math> jest też formułą drugiego rzędu nad sygnaturą <math>\displaystyle \Sigma</math>.
:*Jeśli <math>\varphi</math> jest formułą drugiego rzędu nad sygnaturą <math>\Sigma</math> a <math>x\in\ZI</math> jest zmienną indywiduową, to <math>\exists x\varphi</math> jest też formułą drugiego rzędu nad sygnaturą <math>\Sigma</math>.
:*Jeśli <math>\displaystyle \varphi</math> jest formułą drugiego rzędu nad sygnaturą <math>\displaystyle \Sigma</math>, a <math>\displaystyle R</math> jest symbolem relacji <math>\displaystyle k</math>-argumentowej z&nbsp;<math>\displaystyle \Sigma,</math> to <math>\displaystyle \exists R \varphi</math> jest formułą drugiego rzędu nad sygnaturą <math>\displaystyle \Sigma-
:*Jeśli <math>\varphi</math> jest formułą drugiego rzędu nad sygnaturą <math>\Sigma</math>, a <math>R</math> jest symbolem relacji <math>k</math>-argumentowej z&nbsp;<math>\Sigma</math>, to <math>\exists R \varphi</math> jest formułą drugiego rzędu nad sygnaturą <math>\Sigma-
\{R\}.</math>
\{R\}</math>.
   
   
Definicja semantyki jest też podobna jak dla logiki pierwszego rzędu.  
Definicja semantyki jest też podobna jak dla logiki pierwszego rzędu.  
:*Znaczenie formuł atomowych jest identyczne jak w logice  pierwszego rzędu.
:*Znaczenie formuł atomowych jest identyczne jak w logice  pierwszego rzędu.
:*<math>\displaystyle (\mathfrak{A},\varrho)\vDash\varphi\vee\psi}</math>, gdy zachodzi <math>\displaystyle (\mathfrak{A},\varrho)\vDash\varphi</math> lub zachodzi <math>\displaystyle (\mathfrak{A},\varrho)\vDash\psi</math>.
:*<math>(\mathfrak{A},\varrho)\vDash\varphi\vee\psi}</math>, gdy zachodzi <math>(\mathfrak{A},\varrho)\vDash\varphi</math> lub zachodzi <math>(\mathfrak{A},\varrho)\vDash\psi</math>.
:*<math>\displaystyle (\mathfrak{A},\varrho)\vDash\neg\varphi</math>, gdy nie zachodzi <math>\displaystyle (\mathfrak{A},\varrho)\vDash\varphi</math>.  
:*<math>(\mathfrak{A},\varrho)\vDash\neg\varphi</math>, gdy nie zachodzi <math>(\mathfrak{A},\varrho)\vDash\varphi</math>.  
:*<math>\displaystyle (\mathfrak{A},\varrho)\vDash\exists x\varphi</math> wtedy i tylko wtedy, gdy istnieje takie <math>\displaystyle a\in A</math>, że zachodzi <math>\displaystyle (\mathfrak{A},\varrho^a_x)\vDash\varphi</math>.
:*<math>(\mathfrak{A},\varrho)\vDash\exists x\varphi</math> wtedy i tylko wtedy, gdy istnieje takie <math>a\in A</math>, że zachodzi <math>(\mathfrak{A},\varrho^a_x)\vDash\varphi</math>.
:*Jeśli <math>\displaystyle \mathfrak{A}=\langle A,R_1,\dots,f_1,\dots\rangle</math> jest strukturą sygnatury <math>\displaystyle \Sigma-\{R\}</math> oraz <math>\displaystyle \varrho</math> jest wartościowaniem w tej strukturze, to <math>\displaystyle (\mathfrak{A},\varrho)\vDash\exists R\varphi</math> wtedy i tylko wtedy gdy istnieje struktura&nbsp;<math>\displaystyle \mathfrak{A}'</math> nad sygnaturą <math>\displaystyle \Sigma</math> o postaci <math>\displaystyle \langle A,R,R_1,\dots,f_1\dots\rangle</math> spełniająca <math>\displaystyle (\mathfrak{A},\varrho)\vDash\varphi.</math>
:*Jeśli <math>\mathfrak{A}=\langle A,R_1,\dots,f_1,\dots\rangle</math> jest strukturą sygnatury <math>\Sigma-\{R\}</math> oraz <math>\varrho</math> jest wartościowaniem w tej strukturze, to <math>(\mathfrak{A},\varrho)\vDash\exists R\varphi</math> wtedy i tylko wtedy gdy istnieje struktura&nbsp;<math>\mathfrak{A}'</math> nad sygnaturą <math>\Sigma</math> o postaci <math>\langle A,R,R_1,\dots,f_1\dots\rangle</math> spełniająca <math>(\mathfrak{A}',\varrho)\vDash\varphi</math>.
   
   
}}
}}


Dualny kwantyfikator drugiego rzędu <math>\displaystyle \forall</math> wprowadzamy jako skrót
Dualny kwantyfikator drugiego rzędu <math>\forall</math> wprowadzamy jako skrót
notacyjny:
notacyjny:


<center><math>\displaystyle \forall R\varphi \hspace{4cm} </math>  oznacza <math>\displaystyle \neg\exists R
<center><math>\forall R\varphi \hspace{4cm}</math>  oznacza <math>\neg\exists R
\neg\varphi.
\neg\varphi</math></center>
</math></center>


===Nieaksjomatyzowalność logiki drugiego rzędu===
===Nieaksjomatyzowalność logiki drugiego rzędu===


Spójrzmy na następujący przykład zdania <math>\displaystyle Ind</math> nad sygnaturą
Spójrzmy na następujący przykład zdania <math>Ind</math> nad sygnaturą
arytmetyki:
arytmetyki:


<center><math>\displaystyle \forall R (R(0)\land \forall n (R(n)\to R(s(n)))\to \forall n
<center><math>\forall R (R(0)\land \forall n (R(n)\to R(s(n)))\to \forall n
R(n)).</math></center>
R(n))</math>.</center>


Orzeka ono, że każda relacja jednoargumentowa (czy podzbiór
Orzeka ono, że każda relacja jednoargumentowa (czy podzbiór
uniwersum), która zawiera <math>\displaystyle 0</math> i jest zamknięta ze względu na operację następnika, zawiera wszystkie elementy uniwersum. Jest to wyrażona w języku drugiego rzędu zasada indukcji
uniwersum), która zawiera <math>0</math> i jest zamknięta ze względu na operację następnika, zawiera wszystkie elementy uniwersum. Jest to wyrażona w języku drugiego rzędu zasada indukcji
matematycznej. Twierdzenie Dedekinda orzeka, że po dołożeniu tego
matematycznej. Twierdzenie Dedekinda orzeka, że po dołożeniu tego
aksjomatu do zwykłych aksjomatów arytmetyki Peano PA (z których można
aksjomatu do zwykłych aksjomatów arytmetyki Peano PA (z których można
wtedy usunąć dotychczasowy schemat aksjomatu indukcji), otrzymujemy
wtedy usunąć dotychczasowy schemat aksjomatu indukcji), otrzymujemy
aksjomatyzację ''kategoryczną'', czyli taką, która ma z
aksjomatyzację ''kategoryczną'', czyli taką, która ma z
dokładnością do izomorfizmu tylko jeden model <math>\displaystyle \mathfrak{N}</math> ten
dokładnością do izomorfizmu tylko jeden model <math>\mathfrak{N}</math> - ten
standardowy. Zauważmy przy okazji, że przykład ten wskazuje, iż dla
standardowy. Zauważmy przy okazji, że przykład ten wskazuje, iż dla
logiki drugiego rzędu nie zachodzi górne twierdzenie
logiki drugiego rzędu nie zachodzi górne twierdzenie
Linia 56: Linia 55:


Wracając do poprzedniego przykładu, widzimy, że zbiór wszystkich zdań
Wracając do poprzedniego przykładu, widzimy, że zbiór wszystkich zdań
<math>\displaystyle \varphi</math> logiki pierwszego rzędu, dla których
<math>\varphi</math> logiki pierwszego rzędu, dla których
<math>\displaystyle PA\cup\{Ind\}\models\varphi</math>, jest tożsamy z <math>\displaystyle {\bf Th}(\strN)</math>. Możemy
<math>PA\cup\{Ind\}\models\varphi</math>, jest tożsamy z <math>{\bf Th}(\mathfrak{N})</math>. Możemy
teraz udowodnić, że w&nbsp;odróżnieniu od logiki pierwszego rzędu,
teraz udowodnić, że w&nbsp;odróżnieniu od logiki pierwszego rzędu,


{{twierdzenie|||
{{twierdzenie|12.2||
Logika drugiego rzędu nie ma żadnego pełnego i poprawnego systemu
Logika drugiego rzędu nie ma żadnego pełnego i poprawnego systemu
dowodowego.
dowodowego.
Linia 67: Linia 66:
{{dowod|||
{{dowod|||
Zbiór konsekwencji semantycznych
Zbiór konsekwencji semantycznych
<math>\displaystyle \{\varphi~|~PA\cup\{Ind\}\models\varphi\}={\bf Th}(\strN)</math> nie jest nawet
<math>\{\varphi~|~PA\cup\{Ind\}\models\varphi\}={\bf Th}(\mathfrak{N})</math> nie jest nawet
rekurencyjnie przeliczalny, na mocy Wniosku [[##przescieradlo|Uzupelnic przescieradlo|]].
rekurencyjnie przeliczalny, na mocy [[Logika dla informatyków/Arytmentyka pierwszego rzędu#przescieradlo|Wniosku 9.3]].
Tymczasem dla każdego poprawnego systemu dowodzenia <math>\displaystyle X</math> dla logiki
Tymczasem dla każdego poprawnego systemu dowodzenia <math>X</math> dla logiki
drugiego rzędu, zbiór formuł wyprowadzalnych z rekurencyjnego zbioru
drugiego rzędu, zbiór formuł wyprowadzalnych z rekurencyjnego zbioru
<math>\displaystyle PA\cup\{Ind\}</math> jest rekurencyjnie przeliczalny.
<math>PA\cup\{Ind\}</math> jest rekurencyjnie przeliczalny.
}}
}}


Linia 78: Linia 77:
dotyczących logiki pierwszego rzędu nie zachodzi dla logiki drugiego
dotyczących logiki pierwszego rzędu nie zachodzi dla logiki drugiego
rzędu. Jedynym, co zostaje, to odpowiednia modyfikacja gier
rzędu. Jedynym, co zostaje, to odpowiednia modyfikacja gier
Ehrenfeuchta i metoda Fra{}sse. Jednak ich praktyczna
Ehrenfeuchta i metoda Fraisse. Jednak ich praktyczna
użyteczność jest również znikoma wobec ich złożoności. Np.w grze
użyteczność jest również znikoma wobec ich złożoności. Np.w grze
muszą występować rundy, w których gracze wybierają i&nbsp;zaznaczają całe
muszą występować rundy, w których gracze wybierają i&nbsp;zaznaczają całe
Linia 89: Linia 88:


W dalszym ciągu tego rozdziału dowiemy się, jaki jest stopień
W dalszym ciągu tego rozdziału dowiemy się, jaki jest stopień
trudności pytań o wyrażalność bądĽ niewyrażalność różnych własności w
trudności pytań o wyrażalność bądź niewyrażalność różnych własności w
logice drugiego rzędu.
logice drugiego rzędu.


Linia 106: Linia 105:
automatów skończonych.
automatów skończonych.


Niech <math>\displaystyle \Sigma_n</math> będzie sygnaturą złożoną z symboli
Niech <math>\Sigma_n</math> będzie sygnaturą złożoną z symboli
<math>\displaystyle \leq,X_1,\dots,X_n</math>, w której wszystkie symbole relacyjne <math>\displaystyle X_i</math> są
<math>\leq,X_1,\dots,X_n</math>, w której wszystkie symbole relacyjne <math>X_i</math> są
jednoargumentowe.
jednoargumentowe.


{{definicja|||
{{definicja|12.3||


Model sygnatury <math>\displaystyle \Sigma_n</math> nazwiemy ''modelem-słowem'' gdy jego
Model sygnatury <math>\Sigma_n</math> nazwiemy ''modelem-słowem'' gdy jego
nośnikiem jest skończony odcinek początkowy zbioru liczb naturalnych a
nośnikiem jest skończony odcinek początkowy zbioru liczb naturalnych a
interpretacją symbolu <math>\displaystyle \leq</math> jest naturalny liniowy porządek liczb.
interpretacją symbolu <math>\leq</math> jest naturalny liniowy porządek liczb.
Zbiór modeli-słów nad <math>\displaystyle \Sigma_n</math> będziemy oznaczać <math>\displaystyle W_n</math>.
Zbiór modeli-słów nad <math>\Sigma_n</math> będziemy oznaczać <math>W_n</math>.


Skorzystamy też tutaj z naturalnej wzajemnie jednoznacznej
Skorzystamy też tutaj z naturalnej wzajemnie jednoznacznej
odpowiedniości pomiędzy modelami-słowami a niepustymi słowami nad
odpowiedniości pomiędzy modelami-słowami a niepustymi słowami nad
alfabetem <math>\displaystyle A_n=\{0,1\}^n</math>: słowu <math>\displaystyle w\in A_n^+</math> odpowiada model
alfabetem <math>A_n=\{0,1\}^n</math>: słowu <math>w\in A_n^+</math> odpowiada model
<math>\displaystyle \strA(w)\in W_n</math> o mocy równej długości <math>\displaystyle w,</math> a jego element <math>\displaystyle k</math>
<math>\mathfrak{A}(w)\in W_n</math> o mocy równej długości <math>w</math>, a jego element <math>k</math>
należy do interpretacji relacji&nbsp;<math>\displaystyle X_i</math> wtedy i tylko wtedy, gdy <math>\displaystyle k</math>-ta
należy do interpretacji relacji&nbsp;<math>X_i</math> wtedy i tylko wtedy, gdy <math>k</math>-ta
litera słowa <math>\displaystyle w</math> jest ciągiem zerojedynkowym, który ma jedynkę na
litera słowa <math>w</math> jest ciągiem zerojedynkowym, który ma jedynkę na
pozycji <math>\displaystyle i</math>.
pozycji <math>i</math>.


Odtąd będziemy momentami umyślnie zacierali rozróżnienie pomiędzy
Odtąd będziemy momentami umyślnie zacierali rozróżnienie pomiędzy
słowami a odpowiadającymi im modelami-słowami.  Zbiór <math>\displaystyle \{\strA\in
słowami a odpowiadającymi im modelami-słowami.  Zbiór <math>\{\mathfrak{A}\in
W_n~|~\strA\models\varphi\}</math> można więc naturalnie uważać za język słów
W_n~|~\mathfrak{A}\models\varphi\}</math> można więc naturalnie uważać za język słów
nad <math>\displaystyle A_n</math>.
nad <math>A_n</math>.
}}
}}


Sformułowane przez nas twierdzenie stosuje się wprost tylko do
Sformułowane przez nas twierdzenie stosuje się wprost tylko do
alfabetów o mocy postaci&nbsp;<math>\displaystyle 2^n</math>.  Ponieważ jednak każdy język regularny
alfabetów o mocy postaci&nbsp;<math>2^n</math>.  Ponieważ jednak każdy język regularny
można traktować (po odpowiednim zakodowaniu) jako język nad takim
można traktować (po odpowiednim zakodowaniu) jako język nad takim
właśnie alfabetem, z którego nie wszystkie litery są wykorzystywane,
właśnie alfabetem, z którego nie wszystkie litery są wykorzystywane,
ograniczenie to nie narusza ogólności naszych rozważań.
ograniczenie to nie narusza ogólności naszych rozważań.


{{twierdzenie|Buchi, Elgot||
{{twierdzenie|12.4 (Buchi, Elgot)||


Dla każdego zdania <math>\displaystyle \varphi</math> monadycznej logiki drugiego rzędu
Dla każdego zdania <math>\varphi</math> monadycznej logiki drugiego rzędu
zbiór <math>\displaystyle \{w\in
zbiór <math>\{w\in
A_n^+~|~\strA(w)\models\varphi\}</math> jest regularny, oraz dla każdego języka
A_n^+~|~\mathfrak{A}(w)\models\varphi\}</math> jest regularny, oraz dla każdego języka
regularnego <math>\displaystyle L</math> nad <math>\displaystyle A_n</math> istnieje takie zdanie <math>\displaystyle \varphi</math> logiki { MSO},
regularnego <math>L</math> nad <math>A_n</math> istnieje takie zdanie <math>\varphi</math> logiki MSO, że
że


<center><math>\displaystyle \{w\in A_n^+~|~\strA(w)\models\varphi\}=L-\{\epsilon\}.</math></center>
<center><math>\{w\in A_n^+~|~\mathfrak{A}(w)\models\varphi\}=L-\{\epsilon\}</math>.</center>


Czasami treść tego twierdzenia wyraża się sloganem <math>\displaystyle {\rm MSO}=Reg.</math>
Czasami treść tego twierdzenia wyraża się sloganem <math>{\rm MSO}=Reg</math>.
}}
}}


W myśl tego twierdzenia, MSO można traktować jako jeszcze jeden
W myśl tego twierdzenia, MSO można traktować jako jeszcze jeden
formalizm służący definiowaniu (niepustych) języków regularnych,
formalizm służący definiowaniu języków regularnych nie zawierających słowa pustego,
oprócz powszechnie znanych wyrażeń regularnych, automatów skończonych
oprócz powszechnie znanych wyrażeń regularnych, automatów skończonych
i gramatyk regularnych.
i gramatyk regularnych.


{{dowod|||
{{dowod|||
Zaczniemy od prostszej drugiej części twierdzenia. Niech <math>\displaystyle M=\langle
Zaczniemy od prostszej drugiej części twierdzenia. Niech <math>M=\langle
Q,A_n,q_0,\Delta,F\rangle</math> będzie automatem skończonym rozpoznającym
Q,A_n,q_0,\Delta,F\rangle</math> będzie automatem skończonym rozpoznającym
<math>\displaystyle L</math>, gdzie <math>\displaystyle Q</math> to zbiór stanów, <math>\displaystyle q_0\in Q</math> to stan początkowy,
<math>L</math>, gdzie <math>Q</math> to zbiór stanów, <math>q_0\in Q</math> to stan początkowy,
<math>\displaystyle F\subseteq Q</math> to zbiór stanów akceptujących a <math>\displaystyle \Delta\subseteq
<math>F\subseteq Q</math> to zbiór stanów akceptujących a <math>\Delta\subseteq
Q\times A_n\times Q</math> to relacja przejścia.  Niech
Q\times A_n\times Q</math> to relacja przejścia.  Niech
<math>\displaystyle Q=\{q_1,\dots,q_\ell\}.</math> Chcemy wyrazić za pomocą zdania MSO, że
<math>Q=\{q_1,\dots,q_\ell\}</math>. Chcemy wyrazić za pomocą zdania MSO, że
istnieje akceptujące obliczenie <math>\displaystyle M</math> na danym słowie.
istnieje akceptujące obliczenie <math>M</math> na danym słowie.


Stanom <math>\displaystyle M</math> będą odpowiadały dodatkowe symbole relacji
Stanom <math>M</math> będą odpowiadały dodatkowe symbole relacji
jednoargumentowych <math>\displaystyle X_{n+1},\dots,X_{n+\ell}.</math> Początkowo będziemy
jednoargumentowych <math>X_{n+1},\dots,X_{n+\ell}</math>. Początkowo będziemy
więc mieli do czynienia z modelami-słowami nad większą  
więc mieli do czynienia z modelami-słowami nad większą  
sygnaturą&nbsp;<math>\displaystyle \Sigma_{n+\ell}</math>.  Modele te mają odpowiadać obliczeniom <math>\displaystyle M</math> na
sygnaturą&nbsp;<math>\Sigma_{n+\ell}</math>.  Modele te mają odpowiadać obliczeniom <math>M</math> na
właściwym słowie wejściowym.
właściwym słowie wejściowym.


Formuła <math>\displaystyle \varphi_1</math> postaci <math>\displaystyle \forall x(\Land_{n<i\neq j\leq
Formuła <math>\varphi_1</math> postaci <math>\forall x(\bigwedge_{n<i\neq j\leq
n+\ell}\lnot (X_i(x)\land X_j(x))\land\Lor_{i=n+1}^{n+\ell}X_i(x))</math>
n+\ell}\lnot (X_i(x)\land X_j(x))\wedge\bigvee_{i=n+1}^{n+\ell}X_i(x))</math>
mówi o danym słowie, że w każdym kroku obliczenia automat był w jednym
mówi o danym słowie, że w każdym kroku obliczenia automat był w jednym
i tylko jednym stanie.
i tylko jednym stanie.


Formuła <math>\displaystyle \varphi_2</math> postaci <math>\displaystyle \exists x\forall y(x\leq y \land
Formuła <math>\varphi_2</math> postaci <math>\exists x\forall y(x\leq y \land
X_{n+1}(x))</math> mówi, że w momencie rozpoczęcia obliczenia automat był w
X_{n+1}(x))</math> mówi, że w momencie rozpoczęcia obliczenia automat był w
stanie początkowym.
stanie początkowym.


Formuła <math>\displaystyle \varphi_3</math> postaci <math>\displaystyle \exists x\forall y(y\leq x \land
Formuła <math>\varphi_3</math> postaci <math>\exists x\forall y(y\leq x \wedge
\Lor_{q_i\in F}X_{n+i}(x))</math> mówi, że w momencie zakończenia obliczenia
\bigvee_{q_i\in F}X_{n+i}(x))</math> mówi, że w momencie zakończenia obliczenia
automat był w jednym ze stanów akceptujących.
automat był w jednym ze stanów akceptujących.


Formuła <math>\displaystyle \varphi_4</math> jest postaci <math>\displaystyle \forall x\forall y (\lnot\exists z( x<z\land
Formuła <math>\varphi_4</math> jest postaci <math>\forall x\forall y (\lnot\exists z( x<z\land
z< y)\to \Lor_{\langle q_i,\vec{a},q_k\rangle\in
z< y)\to \bigvee_{\langle q_i,\vec{a},q_k\rangle\in
\Delta}X_{n+i}(x)\land\psi_{\vec{a}}(x)\land X_{n+k}(y))</math>, gdzie
\Delta}X_{n+i}(x)\land\psi_{\vec{a}}(x)\land X_{n+k}(y))</math>, gdzie
<math>\displaystyle \vec{a}=a_1\dots a_n</math> jest literą z <math>\displaystyle A_n</math>, zaś
<math>\vec{a}=a_1\dots a_n</math> jest literą z <math>A_n</math>, zaś
<math>\displaystyle \psi_{\vec{a}}(x)</math> jest formułą <math>\displaystyle \Land_{\{i~|~a_i=1\}}X_i(x)\land
<math>\psi_{\vec{a}}(x)</math> jest formułą <math>\bigwedge_{\{i~|~a_i=1\}}X_i(x)\land
\Land_{\{i~|~a_i=0\}}\lnot X_i(x)</math>.  Formuła ta
\bigwedge_{\{i~|~a_i=0\}}\lnot X_i(x)</math>.  Formuła ta
mówi, że dla
mówi, że dla każdych dwóch bezpośrednio po sobie następujących pozycji w słowie,
każdych dwóch bezpośrednio po sobie następujących pozycji w słowie,
przejście pomiędy nimi odbyło się zgodnie z jedną z możliwości
przejście pomiędy nimi odbyło się zgodnie z jedną z możliwości
dostępnych w relacji przejścia automatu&nbsp;<math>\displaystyle M.</math>
dostępnych w relacji przejścia automatu&nbsp;<math>M</math>.


Teraz zdanie  
Teraz zdanie  


<center><math>\displaystyle \exists X_{n+1}\dots
<center><math>\exists X_{n+1}\dots
X_{n+\ell}(\varphi_1\land\varphi_2\land\varphi_3\land\varphi_4)</math></center>
X_{n+\ell}(\varphi_1\land\varphi_2\land\varphi_3\land\varphi_4)</math></center>


orzeka, że istnieje akceptujące obliczenie automatu <math>\displaystyle M</math> na danym
orzeka, że istnieje akceptujące obliczenie automatu <math>M</math> na danym
słowie.
słowie.


Przechodzimy teraz do dowodu pierwszej części. Tym razem dla danego
Przechodzimy teraz do dowodu pierwszej części. Tym razem dla danego
zdania MSO musimy skonstruować automat skończony, który akceptuje
zdania MSO musimy skonstruować automat skończony, który akceptuje
dokładnie te słowa nad <math>\displaystyle A_n</math>, w których to zdanie jest prawdziwe.
dokładnie te słowa nad <math>A_n</math>, w których to zdanie jest prawdziwe.


W pierwszym kroku zastąpimy MSO przez trochę inną logikę, którą
W pierwszym kroku zastąpimy MSO przez trochę inną logikę, którą
nazwiemy <math>\displaystyle {\rm MSO}_0</math>.  Pokażemy, że jej formuły definiują wszystkie
nazwiemy <math>{\rm MSO}_0</math>.  Pokażemy, że jej formuły definiują wszystkie
języki modeli-słów, które można zdefiniować w&nbsp;MSO.   
języki modeli-słów, które można zdefiniować w&nbsp;MSO.   


Specyficzną cechą <math>\displaystyle {\rm MSO}_0</math> jest to, że nie ma w niej zmiennych
Specyficzną cechą <math>{\rm MSO}_0</math> jest to, że nie ma w niej zmiennych
indywiduowych (czyli tych, których wartościami są elementy) ani
indywiduowych (czyli tych, których wartościami są elementy) ani
wiążących je kwantyfikatorów, a tylko symbole relacji i&nbsp;kwantyfikatory
wiążących je kwantyfikatorów, a tylko symbole relacji i&nbsp;kwantyfikatory
drugiego rzędu.  Natomiast jest znacznie więcej formuł atomowych.
drugiego rzędu.  Natomiast jest znacznie więcej formuł atomowych.


Oto definicja składni i jednocześnie semantyki <math>\displaystyle {\rm MSO}_0</math> --
Oto definicja składni i jednocześnie semantyki <math>{\rm MSO}_0</math> --
oczywiście indukcyjna. Wobec braku zmiennych pierwszego rzędu w
oczywiście indukcyjna. Wobec braku zmiennych pierwszego rzędu w
definicji semantyki nie występuje wartościowanie.  
definicji semantyki nie występuje wartościowanie.  
* Formuła atomowa <math>\displaystyle X_i\subseteq X_j</math> jest prawdziwa w modelu <math>\displaystyle \strA\in
:* Formuła atomowa <math>X_i\subseteq X_j</math> jest prawdziwa w modelu <math>\mathfrak{A}\in
W_n</math> gdy relacja <math>\displaystyle X_i</math> jest zawarta w relacji <math>\displaystyle X_j</math>.
W_n</math> gdy relacja <math>X_i</math> jest zawarta w relacji <math>X_j</math>.
* Formuła atomowa <math>\displaystyle Singl(X_i)</math> jest prawdziwa w modelu <math>\displaystyle \strA\in
 
  W_n</math> gdy relacja <math>\displaystyle X_i</math> jest singletonem (to właśnie kwantyfikowaniem
:* Formuła atomowa <math>Singl(X_i)</math> jest prawdziwa w modelu <math>\mathfrak{A}\in
  po relacjach, które są singletonami zastąpimy kwantyfikację po
W_n</math> gdy relacja <math>X_i</math> jest singletonem (to właśnie kwantyfikowaniem po relacjach, które są singletonami zastąpimy kwantyfikację po elementach obecną w MSO).
  elementach obecną w MSO).
 
* Formuła atomowa <math>\displaystyle LessEq(X_i,X_j)</math> jest prawdziwa w modelu <math>\displaystyle \strA\in
:* Formuła atomowa <math>LessEq(X_i,X_j)</math> jest prawdziwa w modelu <math>\mathfrak{A}\in
  W_n</math>, gdy wszystkie elementy w&nbsp;relacji <math>\displaystyle X_i</math> są mniejsze bądĽ równe
W_n</math>, gdy wszystkie elementy w&nbsp;relacji <math>X_i</math> są mniejsze bądź równe od wszystkich elementów w relacji <math>X_j</math>.
  od wszystkich elementów w relacji <math>\displaystyle X_j.</math>
 
* Jeśli <math>\displaystyle \varphi,\psi</math> są formułami <math>\displaystyle {\rm MSO}_0</math> a <math>\displaystyle X_i</math> jest
:* Jeśli <math>\varphi,\psi</math> są formułami <math>{\rm MSO}_0</math> a <math>X_i</math> jest symbolem relacyjnym, to formułami są także <math>\varphi\lor\psi,\ \lnot\varphi</math> i <math>\exists X_i\varphi</math>, których semantyka jest standardowa.
  symbolem relacyjnym, to formułami są także <math>\displaystyle \varphi\lor\psi,\
  \lnot\varphi</math> i <math>\displaystyle \exists X_i\varphi,</math> których semantyka jest
  standardowa.
   
   
Tłumaczenie danego zdania <math>\displaystyle \varphi</math> z MSO nad <math>\displaystyle \Sigma_n</math> na równoważne
 
mu w <math>\displaystyle W_n</math> zdanie <math>\displaystyle \widetilde\varphi</math> w <math>\displaystyle {\rm MSO}_0</math> definiuje się
Tłumaczenie danego zdania <math>\varphi</math> z MSO nad <math>\Sigma_n</math> na równoważne
następująco. Po pierwsze, zamieniamy nazwy związanych zmiennych
mu w <math>W_n</math> zdanie <math>\widetilde\varphi</math> w <math>{\rm MSO}_0</math> definiuje się następująco. Po pierwsze, zamieniamy nazwy związanych zmiennych pierwszego rzędu tak, że zmienna wiązana przez każdy kwantyfikator jest inna. Bez utraty ogólności możemy założyć, że są to zmienne <math>x_1,\dots,x_\ell</math>. Teraz wszystkim zmiennym występującym w&nbsp;<math>\varphi</math> przypisujemy dodatkowe, nowe symbole relacji, powiedzmy, że zmiennej <math>x_i</math> przypisujemy&nbsp;<math>X_{n+i}</math>.
pierwszego rzędu tak, że zmienna wiązana przez każdy kwantyfikator
 
jest inna. Bez utraty ogólności możemy założyć, że są to zmienne
 
<math>\displaystyle x_1,\dots,x_\ell.</math> Teraz wszystkim zmiennym występującym w&nbsp;<math>\displaystyle \varphi</math>
:*<math>\widetilde{X_i(x_j)}</math> to <math>X_{n+j}\subseteq X_i</math>.
przypisujemy dodatkowe, nowe symbole relacji, powiedzmy, że zmiennej
 
<math>\displaystyle x_i</math> przypisujemy&nbsp;<math>\displaystyle X_{n+i}</math>.
:*<math>\widetilde{(x_i=x_j)}</math> to <math>X_{n+i}\subseteq X_{n+j}\land X_{n+j}\subseteq X_{n+i}</math>.
* <math>\displaystyle \widetilde{X_i(x_j)}</math> to <math>\displaystyle X_{n+j}\subseteq X_i</math>.
 
* <math>\displaystyle \widetilde{(x_i=x_j)}</math> to <math>\displaystyle X_{n+i}\subseteq
:*<math>\widetilde{(x_i\leq x_j)}</math> to <math>LessEq(X_{n+i},X_{n+j})</math>.
  X_{n+j}\land X_{n+j}\subseteq X_{n+i}.</math>
 
* <math>\displaystyle \widetilde{(x_i\leq x_j)}</math> to
:*<math>\widetilde{(\varphi\lor\psi)}</math> ma postać <math>\widetilde\varphi\lor\widetilde\psi</math>.
<math>\displaystyle LessEq(X_{n+i},X_{n+j}).</math>
 
* <math>\displaystyle \widetilde{(\varphi\lor\psi)}</math> ma postać
:*<math>\widetilde{(\lnot\varphi)}</math> ma postać <math>\lnot\widetilde\varphi</math>.
<math>\displaystyle \widetilde\varphi\lor\widetilde\psi</math>.
 
* <math>\displaystyle \widetilde{(\lnot\varphi)}</math> ma postać <math>\displaystyle \lnot\widetilde\varphi</math>.
:*Formułę <math>\widetilde{(\exists x_i\varphi)}</math> definiujemy jako  <math>\exists
* Formułę   <math>\displaystyle \widetilde{(\exists x_i\varphi)}</math> definiujemy jako  <math>\displaystyle \exists
   X_{n+i}(Singl(X_{n+i})\land \widetilde\varphi)</math>.
   X_{n+i}(Singl(X_{n+i})\land \widetilde\varphi).</math>
 
* Formułę <math>\displaystyle \widetilde{(\exists X_i\varphi)}</math> dla <math>\displaystyle i\leq n</math> definiujemy jako
:* Formułę <math>\widetilde{(\exists X_i\varphi)}</math> dla <math>i\leq n</math> definiujemy jako  <math>\exists X_{i}\widetilde\varphi</math>.
   <math>\displaystyle \exists X_{i}\widetilde\varphi.</math>
   
   
Przez indukcję &nbsp;budowę&nbsp;<math>\displaystyle \varphi</math> udowodnimy teraz, że
 
Dla każdego modelu-słowa <math>\displaystyle \<A,X_1,\dots,X_n\></math> i każdych
Przez indukcję ze względu na budowę&nbsp;<math>\varphi</math> udowodnimy teraz, że
<math>\displaystyle a_1,\dots,a_\ell</math> z jego nośnika, następujące warunki są równoważne:
 
* <math>\displaystyle (\<A,X_1,\dots,X_n\>,x_1:a_1,\dots,x_\ell:a_\ell)\models\varphi</math>  
:''Dla każdego modelu-słowa'' <math>\<A,X_1,\dots,X_n\></math> ''i każdych'' <math>a_1,\dots,a_\ell</math> ''z jego nośnika, następujące warunki są równoważne'':
* <math>\displaystyle \<A,X_1,\dots,X_n,\{a_1\},\dots,\{a_\ell\}\>\models\widetilde\varphi</math>  
 
::*<math>(\langle A,X_1,\dots,X_n\rangle,x_1:a_1,\dots,x_\ell:a_\ell)\models\varphi</math>  
::*<math>\langle A,X_1,\dots,X_n,\{a_1\},\dots,\{a_\ell\}\rangle\models\widetilde\varphi</math>  
   
   
Wszystkie kroki indukcji sa całkowicie standardowe i pozostawiamy je
Wszystkie kroki indukcji sa całkowicie standardowe i pozostawiamy je
Linia 263: Linia 258:


Zatem istotnie, każdy zbiór słów-modeli, który można zdefiniować
Zatem istotnie, każdy zbiór słów-modeli, który można zdefiniować
zdaniem MSO można też zdefiniować zdaniem <math>\displaystyle {\rm MSO}_0</math>.  Teraz dla
zdaniem MSO można też zdefiniować zdaniem <math>{\rm MSO}_0</math>.  Teraz dla
takiego zdania pozostaje skonstruować automat skończony, który
takiego zdania pozostaje skonstruować automat skończony, który
akceptuje dokładnie te słowa nad <math>\displaystyle A</math>, w których to zdanie jest
akceptuje dokładnie te słowa nad <math>A</math>, w których to zdanie jest
prawdziwe.
prawdziwe.


Sprawa jest teraz dużo łatwiejsza niż dla oryginalnego MSO, bo każda
Sprawa jest teraz dużo łatwiejsza niż dla oryginalnego MSO, bo każda
formuła <math>\displaystyle {\rm MSO}_0</math> definiuje jakiś język nad <math>\displaystyle A_{n+k}</math>.
formuła <math>{\rm MSO}_0</math> definiuje jakiś język nad <math>A_{n+k}</math>.


Sprawdzenie, że formuły atomowe definiują języki regularne,
Sprawdzenie, że formuły atomowe definiują języki regularne,
pozostawiamy Czytelnikowi jako ćwiczenie.
pozostawiamy Czytelnikowi jako ćwiczenie.


Język definiowany przez <math>\displaystyle \varphi\lor\psi</math> jest sumą języków
Język definiowany przez <math>\varphi\lor\psi</math> jest sumą języków
definiowanych przez <math>\displaystyle \varphi</math> i <math>\displaystyle \psi</math>, czyli jako suma języków
definiowanych przez <math>\varphi</math> i <math>\psi</math>, czyli jako suma języków
regularnych sam jest regularny.
regularnych sam jest regularny.


Język definiowany przez <math>\displaystyle \lnot \varphi</math> jest dopełnieniem regularnego
Język definiowany przez <math>\lnot \varphi</math> jest dopełnieniem regularnego
języka definiowanego przez <math>\displaystyle \varphi</math>, czyli sam też jest regularny.
języka definiowanego przez <math>\varphi</math>, czyli sam też jest regularny.


W wypadku formuły <math>\displaystyle \exists X_i \varphi</math>, o której zakłądamy, że <math>\displaystyle i</math>
W wypadku formuły <math>\exists X_i \varphi</math>, o której zakłądamy, że <math>i</math>
jest najwyższym indeksem symbolu relacyjnego występującego w <math>\displaystyle \varphi,</math>
jest najwyższym indeksem symbolu relacyjnego występującego w <math>\varphi</math>,
bierzemy automat rozpoznający język nad <math>\displaystyle A_i</math> definiowany przez&nbsp;<math>\displaystyle \varphi.</math>  
bierzemy automat rozpoznający język nad <math>A_i</math> definiowany przez&nbsp;<math>\varphi</math>.
Następnie modyfikujemy go tak, by działał nad alfabetem
Następnie modyfikujemy go tak, by działał nad alfabetem
<math>\displaystyle A_{i-1}</math>, przy każdym przejściu niedeterministycznie zgadując, czy
<math>A_{i-1}</math>, przy każdym przejściu niedeterministycznie zgadując, czy
<math>\displaystyle i</math>-tą współrzędną litery z&nbsp;alfabetu <math>\displaystyle A_i</math> znajdującej się  
<math>i</math>-tą współrzędną litery z&nbsp;alfabetu <math>A_i</math> znajdującej się  
w tej komórce taśmy jest 1 czy 0.
w tej komórce taśmy jest 1 czy 0.
}}
}}
Linia 293: Linia 288:
wielu interesujących problemów.
wielu interesujących problemów.


{{wniosek|||
{{wniosek|12.5||
Następujące problemy są rozstrzygalne:
Następujące problemy są rozstrzygalne:
* Czy istnieje model-słowo, w którym dane zdanie <math>\displaystyle \varphi</math> z MSO
:*''Czy istnieje model-słowo, w którym dane zdanie'' <math>\varphi</math> ''z MSO jest prawdziwe?''
  jest prawdziwe?
:*''Czy dane zdanie'' <math>\varphi</math> ''z MSO jest prawdziwe w każdym modelu-słowie?''
* Czy dane zdanie <math>\displaystyle \varphi</math> z MSO jest prawdziwe w każdym
  modelu-słowie?
   
   
}}
}}
Linia 304: Linia 297:
{{dowod|||
{{dowod|||
Procedura rozstrzygająca oba problemy polega na przetworzeniu formuły
Procedura rozstrzygająca oba problemy polega na przetworzeniu formuły
<math>\displaystyle \varphi</math> w&nbsp;równoważny jej automat skończony (np.w sposób opisany w
<math>\varphi</math> w&nbsp;równoważny jej automat skończony (np.w sposób opisany w
dowodzie poprzedniego twierdzenia), a następnie przeprowadzeniu testu
dowodzie poprzedniego twierdzenia), a następnie przeprowadzeniu testu
na automacie.  
na automacie.  
Linia 313: Linia 306:
Naturalne jest pytanie, czy można równie elegancko, jak to zrobił
Naturalne jest pytanie, czy można równie elegancko, jak to zrobił
Buchi, scharakteryzować zbiory modeli definiowalnych w pełnej logice
Buchi, scharakteryzować zbiory modeli definiowalnych w pełnej logice
drugiego rzędu. OdpowiedĽ na to pytanie pojawiła się w dwóch krokach.
drugiego rzędu. Odpowiedź na to pytanie pojawiła się w dwóch krokach.


W pierwszej charakteryzacji występuje ''egzystencjalna logika
W pierwszej charakteryzacji występuje ''egzystencjalna logika drugiego rzędu'', czasami oznaczana symbolem <math>\Sigma_1^1</math>, czyli zbiór tych formuł pełnej logiki drugiego rzędu, w których wszystkie kwantyfikatory drugiego rzędu wystepują na początku formuły, a za nimi jest już tylko zwykłe zdanie pierwszego rzędu:
drugiego rzędu'', czasami oznaczana symbolem <math>\displaystyle \Sigma_1^1,</math> czyli zbiór
tych formuł pełnej logiki drugiego rzędu, w których wszystkie
kwantyfikatory drugiego rzędu wystepują na początku formuły, a za nimi
jest już tylko zwykłe zdanie pierwszego rzędu:


<center><math>\displaystyle \exists X_1~\dots \exists X_n \hspace{-4mm}\underbrace{\varphi(X_1\dots
<center><math>\exists X_1~\dots \exists X_n \hspace{-4mm}\underbrace{\varphi(X_1\dots
   X_n)}_{\text{zdanie pierwszego rzędu}}.</math></center>
   X_n)}_{\text{zdanie pierwszego rzędu}}</math>.</center>


Dla tej logiki sytuacja wygląda następująco:
Dla tej logiki sytuacja wygląda następująco:


{{twierdzenie|Fagin||
{{twierdzenie|12.6 (Fagin)||


Dla każdego zdania <math>\displaystyle \varphi</math> egzystencjalnej logiki drugiego rzędu
Dla każdego zdania <math>\varphi</math> egzystencjalnej logiki drugiego rzędu
zbiór <math>\displaystyle \{w\in A_n^+~|~\strA(w)\models\varphi\}</math> należy do { NP}, oraz dla
zbiór <math>\{w\in A_n^+~|~\mathfrak{A}(w)\models\varphi\}</math> należy do { NP}, oraz dla
każdego języka <math>\displaystyle L\in {\rm NP}</math> istnieje zdanie <math>\displaystyle \varphi</math> egzystencjalnej
każdego języka <math>L\in {\rm NP}</math> istnieje zdanie <math>\varphi</math> egzystencjalnej
logiki drugiego rzędu takie, że
logiki drugiego rzędu takie, że


<center><math>\displaystyle \{w\in A_n^+~|~\strA(w)\models\varphi\}=L-\{\epsilon\}.</math></center>
<center><math>\{w\in A_n^+~|~\mathfrak{A}(w)\models\varphi\}=L-\{\epsilon\}</math>.</center>


Podobnie jak twierdzenie Buchi i Elgota, ono też bywa reprezentowane
Podobnie jak twierdzenie Buchi i Elgota, ono też bywa reprezentowane
sloganem <math>\displaystyle \Sigma_1^1={\rm NP}.</math>
sloganem <math>\Sigma_1^1={\rm NP}</math>.
}}
}}


Oczywiście { NP} to słynna klasa złożoności probelmów rozstrzyganych
Oczywiście NP to słynna klasa złożoności probelmów rozstrzyganych przez niedeterministyczne maszyny Turinga o wielomianowej złożoności czasowej.
przez niedeterministyczne maszyny Turinga o wielomianowej złożoności
czasowej.


Pełna logika drugiego rzędu, oznaczona tu przez SO, też ma analogiczną
Pełna logika drugiego rzędu, oznaczona tu przez SO, też ma analogiczną
charakteryzację, która w postaci sloganu wyraża się przez <math>\displaystyle {\rm
charakteryzację, która w postaci sloganu wyraża się przez <math>{\rm
SO}={\rm PH}</math> i została udowodniona przez Stockmeyera.  Precyzyjna
SO}={\rm PH}</math> i została udowodniona przez Stockmeyera.  Precyzyjna
postać tego twierdzenia jest analogiczna do poprzednich, a PH to
postać tego twierdzenia jest analogiczna do poprzednich, a PH to
Linia 362: Linia 349:
bezskutecznie. Np.dowód, że każdy zbiór słów, który jest
bezskutecznie. Np.dowód, że każdy zbiór słów, który jest
definiowalny formułą logiki drugiego rzędu, jest też definiowalny
definiowalny formułą logiki drugiego rzędu, jest też definiowalny
formułą <math>\displaystyle \Sigma_1^1</math>, implikowałby natychmiast, że <math>\displaystyle {\rm NP}={\rm
formułą <math>\Sigma_1^1</math>, implikowałby natychmiast, że <math>{\rm NP}={\rm
PH},</math> a zatem także <math>\displaystyle {\rm NP}={\rm coNP}</math>. Zauważmy przy tym, że każdy
PH}</math>, a zatem także <math>{\rm NP}={\rm coNP}</math>. Zauważmy przy tym, że każdy
zbiór słów, który jest definiowalny w MSO, jest też definiowalny za
zbiór słów, który jest definiowalny w MSO, jest też definiowalny za
pomocą formuły która należy jednocześnie do MSO i <math>\displaystyle \Sigma_1^1</math>.
pomocą formuły która należy jednocześnie do MSO i <math>\Sigma_1^1</math>.
Wynika to z postaci formuły definiującej zbiory regularne, która
Wynika to z postaci formuły definiującej zbiory regularne, która
pojawia się w dowodzie twierdzenia Buchi.  Zatem na poziomie
pojawia się w dowodzie twierdzenia Buchi.  Zatem na poziomie
Linia 377: Linia 364:
Buchi.  
Buchi.  


Nieskończone pełne drzewo binarne to struktura <math>\displaystyle \strT</math> nad sygnaturą
Nieskończone pełne drzewo binarne to struktura <math>\mathfrak{T}</math> nad sygnaturą
<math>\displaystyle =,s_0,s_1,</math> w której <math>\displaystyle s_0</math> i&nbsp;<math>\displaystyle s_1</math> to symbole jednoargumentowych
<math>=,s_0,s_1</math>, w której <math>s_0</math> i&nbsp;<math>s_1</math> to symbole jednoargumentowych
funkcji. Nośnik <math>\displaystyle \strT</math> to zbiór <math>\displaystyle \{0,1\}^*</math> skończonych słów
funkcji. Nośnik <math>\mathfrak{T}</math> to zbiór <math>\{0,1\}^*</math> skończonych słów
zerojedynkowych, a funkcje są określone przez równości  <math>\displaystyle s_0(w)=w0</math>
zerojedynkowych, a funkcje są określone przez równości  <math>s_0(w)=w0</math>
oraz <math>\displaystyle s_1(w)=w1.</math>  
oraz <math>s_1(w)=w1</math>.


{{twierdzenie|Rabin||
{{twierdzenie|12.7 (Rabin)||


Zbiór zdań logiki MSO, które są prawdziwe w <math>\displaystyle \strT</math> jest
Zbiór zdań logiki MSO, które są prawdziwe w <math>\mathfrak{T}</math> jest
rozstrzygalny.
rozstrzygalny.
}}
}}
Linia 392: Linia 379:
pomyśle, który poznaliśmy w dowodzie twierdzenia Buchi: formuły
pomyśle, który poznaliśmy w dowodzie twierdzenia Buchi: formuły
logiki MSO są tłumaczone na równoważne im automaty w taki sposób, że
logiki MSO są tłumaczone na równoważne im automaty w taki sposób, że
formuła jest prawdziwa w drzewie <math>\displaystyle \strT</math> (poetykietowanym dodatkowymi
formuła jest prawdziwa w drzewie <math>\mathfrak{T}</math> (poetykietowanym dodatkowymi
symbolami w wierzchołkach) wtedy i tylko wtedy, gdy automat akceptuje
symbolami w wierzchołkach) wtedy i tylko wtedy, gdy automat akceptuje
to drzewo.  Szczegóły tych dowodów są zawsze bardzo
to drzewo.  Szczegóły tych dowodów są zawsze bardzo

Aktualna wersja na dzień 21:30, 11 wrz 2023

Logika drugiego rzędu

Składnię logiki drugiego uzyskujemy przez rozszerzenie zbioru reguł składniowych dla logiki pierwszego rzędu o kwantyfikatory wiążące symbole relacyjne. Z przyczyn technicznych tym razem wygodnie nam będzie przyjąć, że podstawowymi spójnikami logicznymi są ¬, i .

Definicja 12.1

Definicja formuł drugiego rzędu jest indukcyjna, podobnie jak analogiczna Definicja 2.5 dla logiki pierwszego rzędu. Jednak tym razem nie ustalamy sygnatury z góry.

  • Każda formuła atomowa nad sygnaturą Σ jest formułą drugiego rzędu nad sygnaturą Σ.
  • Jeśli φ,ψ są formułami drugiego rzędu nad sygnaturą Σ, to φψ jest też formułą drugiego rzędu nad sygnaturą Σ.
  • Jeśli φ jest formułą drugiego rzędu nad sygnaturą Σ, to ¬φ jest też formułą drugiego rzędu nad sygnaturą Σ.
  • Jeśli φ jest formułą drugiego rzędu nad sygnaturą Σ a Parser nie mógł rozpoznać (nieznana funkcja „\ZI”): {\displaystyle x\in\ZI} jest zmienną indywiduową, to xφ jest też formułą drugiego rzędu nad sygnaturą Σ.
  • Jeśli φ jest formułą drugiego rzędu nad sygnaturą Σ, a R jest symbolem relacji k-argumentowej z Σ, to Rφ jest formułą drugiego rzędu nad sygnaturą Σ{R}.

Definicja semantyki jest też podobna jak dla logiki pierwszego rzędu.

  • Znaczenie formuł atomowych jest identyczne jak w logice pierwszego rzędu.
  • Parser nie mógł rozpoznać (błąd składni): {\displaystyle (\mathfrak{A},\varrho)\vDash\varphi\vee\psi}} , gdy zachodzi (𝔄,ϱ)φ lub zachodzi (𝔄,ϱ)ψ.
  • (𝔄,ϱ)¬φ, gdy nie zachodzi (𝔄,ϱ)φ.
  • (𝔄,ϱ)xφ wtedy i tylko wtedy, gdy istnieje takie aA, że zachodzi (𝔄,ϱxa)φ.
  • Jeśli 𝔄=A,R1,,f1, jest strukturą sygnatury Σ{R} oraz ϱ jest wartościowaniem w tej strukturze, to (𝔄,ϱ)Rφ wtedy i tylko wtedy gdy istnieje struktura 𝔄 nad sygnaturą Σ o postaci A,R,R1,,f1 spełniająca (𝔄,ϱ)φ.

Dualny kwantyfikator drugiego rzędu wprowadzamy jako skrót notacyjny:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \forall R\varphi \hspace{4cm}} oznacza ¬R¬φ

Nieaksjomatyzowalność logiki drugiego rzędu

Spójrzmy na następujący przykład zdania Ind nad sygnaturą arytmetyki:

R(R(0)n(R(n)R(s(n)))nR(n)).

Orzeka ono, że każda relacja jednoargumentowa (czy podzbiór uniwersum), która zawiera 0 i jest zamknięta ze względu na operację następnika, zawiera wszystkie elementy uniwersum. Jest to wyrażona w języku drugiego rzędu zasada indukcji matematycznej. Twierdzenie Dedekinda orzeka, że po dołożeniu tego aksjomatu do zwykłych aksjomatów arytmetyki Peano PA (z których można wtedy usunąć dotychczasowy schemat aksjomatu indukcji), otrzymujemy aksjomatyzację kategoryczną, czyli taką, która ma z dokładnością do izomorfizmu tylko jeden model 𝔑 - ten standardowy. Zauważmy przy okazji, że przykład ten wskazuje, iż dla logiki drugiego rzędu nie zachodzi górne twierdzenie Skolema-Lowenheima.

Wracając do poprzedniego przykładu, widzimy, że zbiór wszystkich zdań φ logiki pierwszego rzędu, dla których PA{Ind}φ, jest tożsamy z 𝐓𝐡(𝔑). Możemy teraz udowodnić, że w odróżnieniu od logiki pierwszego rzędu,

Twierdzenie 12.2

Logika drugiego rzędu nie ma żadnego pełnego i poprawnego systemu dowodowego.

Dowód

Zbiór konsekwencji semantycznych {φ|PA{Ind}φ}=𝐓𝐡(𝔑) nie jest nawet rekurencyjnie przeliczalny, na mocy Wniosku 9.3. Tymczasem dla każdego poprawnego systemu dowodzenia X dla logiki drugiego rzędu, zbiór formuł wyprowadzalnych z rekurencyjnego zbioru PA{Ind} jest rekurencyjnie przeliczalny.

Widzimy teraz jasno, że logika drugiego rzędu jest niezwykle skomplikowana w badaniu, gdyż właściwie żadne z pożytecznych twierdzeń dotyczących logiki pierwszego rzędu nie zachodzi dla logiki drugiego rzędu. Jedynym, co zostaje, to odpowiednia modyfikacja gier Ehrenfeuchta i metoda Fraisse. Jednak ich praktyczna użyteczność jest również znikoma wobec ich złożoności. Np.w grze muszą występować rundy, w których gracze wybierają i zaznaczają całe relacje na uniwersum obu struktur. Jednak dla bardzo ograniczonych syntaktycznie fragmentów logiki drugiego rzędu możliwym staje się zapanowanie nad strategiami w odpowiadających im uproszczonych wersjach gry. Tymi właśnie metodami udowodniono kilka twierdzeń o niemożności zdefiniowania w różnych fragmentach logiki drugiego rzędu różnych konkretnych własności.

W dalszym ciągu tego rozdziału dowiemy się, jaki jest stopień trudności pytań o wyrażalność bądź niewyrażalność różnych własności w logice drugiego rzędu.

Równoważność logiki MSO i automatów skończonych

W zastosowaniach często spotyka się różne fragmenty logiki drugiego rzędu, która w całości dla wielu zastosowań jest zbyt silna. W tym rozdziale będziemy zajmowali się monadyczną logiką drugiego rzędu, która jest fragmentem logiki drugiego rzędu, powstałym przez ograniczenie kwantyfikacji drugiego rzędu tylko do relacji jednoargumentowych (czyli zbiorów). Na oznaczenie tej logiki powszechnie stosuje się skrót MSO (od Monadic Second Order).

MSO jest logiką bardzo często pojawiającą się w związku z informatyką. Tutaj zaprezentujemy klasyczny wynik, łączący tę logikę z teorią automatów skończonych.

Niech Σn będzie sygnaturą złożoną z symboli ,X1,,Xn, w której wszystkie symbole relacyjne Xi są jednoargumentowe.

Definicja 12.3

Model sygnatury Σn nazwiemy modelem-słowem gdy jego nośnikiem jest skończony odcinek początkowy zbioru liczb naturalnych a interpretacją symbolu jest naturalny liniowy porządek liczb. Zbiór modeli-słów nad Σn będziemy oznaczać Wn.

Skorzystamy też tutaj z naturalnej wzajemnie jednoznacznej odpowiedniości pomiędzy modelami-słowami a niepustymi słowami nad alfabetem An={0,1}n: słowu wAn+ odpowiada model 𝔄(w)Wn o mocy równej długości w, a jego element k należy do interpretacji relacji Xi wtedy i tylko wtedy, gdy k-ta litera słowa w jest ciągiem zerojedynkowym, który ma jedynkę na pozycji i.

Odtąd będziemy momentami umyślnie zacierali rozróżnienie pomiędzy słowami a odpowiadającymi im modelami-słowami. Zbiór {𝔄Wn|𝔄φ} można więc naturalnie uważać za język słów nad An.

Sformułowane przez nas twierdzenie stosuje się wprost tylko do alfabetów o mocy postaci 2n. Ponieważ jednak każdy język regularny można traktować (po odpowiednim zakodowaniu) jako język nad takim właśnie alfabetem, z którego nie wszystkie litery są wykorzystywane, ograniczenie to nie narusza ogólności naszych rozważań.

Twierdzenie 12.4 (Buchi, Elgot)

Dla każdego zdania φ monadycznej logiki drugiego rzędu zbiór {wAn+|𝔄(w)φ} jest regularny, oraz dla każdego języka regularnego L nad An istnieje takie zdanie φ logiki MSO, że

{wAn+|𝔄(w)φ}=L{ϵ}.

Czasami treść tego twierdzenia wyraża się sloganem MSO=Reg.

W myśl tego twierdzenia, MSO można traktować jako jeszcze jeden formalizm służący definiowaniu języków regularnych nie zawierających słowa pustego, oprócz powszechnie znanych wyrażeń regularnych, automatów skończonych i gramatyk regularnych.

Dowód

Zaczniemy od prostszej drugiej części twierdzenia. Niech M=Q,An,q0,Δ,F będzie automatem skończonym rozpoznającym L, gdzie Q to zbiór stanów, q0Q to stan początkowy, FQ to zbiór stanów akceptujących a ΔQ×An×Q to relacja przejścia. Niech Q={q1,,q}. Chcemy wyrazić za pomocą zdania MSO, że istnieje akceptujące obliczenie M na danym słowie.

Stanom M będą odpowiadały dodatkowe symbole relacji jednoargumentowych Xn+1,,Xn+. Początkowo będziemy więc mieli do czynienia z modelami-słowami nad większą sygnaturą Σn+. Modele te mają odpowiadać obliczeniom M na właściwym słowie wejściowym.

Formuła φ1 postaci x(n<ijn+¬(Xi(x)Xj(x))i=n+1n+Xi(x)) mówi o danym słowie, że w każdym kroku obliczenia automat był w jednym i tylko jednym stanie.

Formuła φ2 postaci xy(xyXn+1(x)) mówi, że w momencie rozpoczęcia obliczenia automat był w stanie początkowym.

Formuła φ3 postaci xy(yxqiFXn+i(x)) mówi, że w momencie zakończenia obliczenia automat był w jednym ze stanów akceptujących.

Formuła φ4 jest postaci xy(¬z(x<zz<y)qi,a,qkΔXn+i(x)ψa(x)Xn+k(y)), gdzie a=a1an jest literą z An, zaś ψa(x) jest formułą {i|ai=1}Xi(x){i|ai=0}¬Xi(x). Formuła ta mówi, że dla każdych dwóch bezpośrednio po sobie następujących pozycji w słowie, przejście pomiędy nimi odbyło się zgodnie z jedną z możliwości dostępnych w relacji przejścia automatu M.

Teraz zdanie

Xn+1Xn+(φ1φ2φ3φ4)

orzeka, że istnieje akceptujące obliczenie automatu M na danym słowie.

Przechodzimy teraz do dowodu pierwszej części. Tym razem dla danego zdania MSO musimy skonstruować automat skończony, który akceptuje dokładnie te słowa nad An, w których to zdanie jest prawdziwe.

W pierwszym kroku zastąpimy MSO przez trochę inną logikę, którą nazwiemy MSO0. Pokażemy, że jej formuły definiują wszystkie języki modeli-słów, które można zdefiniować w MSO.

Specyficzną cechą MSO0 jest to, że nie ma w niej zmiennych indywiduowych (czyli tych, których wartościami są elementy) ani wiążących je kwantyfikatorów, a tylko symbole relacji i kwantyfikatory drugiego rzędu. Natomiast jest znacznie więcej formuł atomowych.

Oto definicja składni i jednocześnie semantyki MSO0 -- oczywiście indukcyjna. Wobec braku zmiennych pierwszego rzędu w definicji semantyki nie występuje wartościowanie.

  • Formuła atomowa XiXj jest prawdziwa w modelu 𝔄Wn gdy relacja Xi jest zawarta w relacji Xj.
  • Formuła atomowa Singl(Xi) jest prawdziwa w modelu 𝔄Wn gdy relacja Xi jest singletonem (to właśnie kwantyfikowaniem po relacjach, które są singletonami zastąpimy kwantyfikację po elementach obecną w MSO).
  • Formuła atomowa LessEq(Xi,Xj) jest prawdziwa w modelu 𝔄Wn, gdy wszystkie elementy w relacji Xi są mniejsze bądź równe od wszystkich elementów w relacji Xj.
  • Jeśli φ,ψ są formułami MSO0 a Xi jest symbolem relacyjnym, to formułami są także φψ, ¬φ i Xiφ, których semantyka jest standardowa.


Tłumaczenie danego zdania φ z MSO nad Σn na równoważne mu w Wn zdanie φ~ w MSO0 definiuje się następująco. Po pierwsze, zamieniamy nazwy związanych zmiennych pierwszego rzędu tak, że zmienna wiązana przez każdy kwantyfikator jest inna. Bez utraty ogólności możemy założyć, że są to zmienne x1,,x. Teraz wszystkim zmiennym występującym w φ przypisujemy dodatkowe, nowe symbole relacji, powiedzmy, że zmiennej xi przypisujemy Xn+i.


  • Xi(xj)~ to Xn+jXi.
  • (xi=xj)~ to Xn+iXn+jXn+jXn+i.
  • (xixj)~ to LessEq(Xn+i,Xn+j).
  • (φψ)~ ma postać φ~ψ~.
  • (¬φ)~ ma postać ¬φ~.
  • Formułę (xiφ)~ definiujemy jako Xn+i(Singl(Xn+i)φ~).
  • Formułę (Xiφ)~ dla in definiujemy jako Xiφ~.


Przez indukcję ze względu na budowę φ udowodnimy teraz, że

Dla każdego modelu-słowa Parser nie mógł rozpoznać (błąd składni): {\displaystyle \<A,X_1,\dots,X_n\>} i każdych a1,,a z jego nośnika, następujące warunki są równoważne:
  • (A,X1,,Xn,x1:a1,,x:a)φ
  • A,X1,,Xn,{a1},,{a}φ~

Wszystkie kroki indukcji sa całkowicie standardowe i pozostawiamy je Czytelnikowi.

Zatem istotnie, każdy zbiór słów-modeli, który można zdefiniować zdaniem MSO można też zdefiniować zdaniem MSO0. Teraz dla takiego zdania pozostaje skonstruować automat skończony, który akceptuje dokładnie te słowa nad A, w których to zdanie jest prawdziwe.

Sprawa jest teraz dużo łatwiejsza niż dla oryginalnego MSO, bo każda formuła MSO0 definiuje jakiś język nad An+k.

Sprawdzenie, że formuły atomowe definiują języki regularne, pozostawiamy Czytelnikowi jako ćwiczenie.

Język definiowany przez φψ jest sumą języków definiowanych przez φ i ψ, czyli jako suma języków regularnych sam jest regularny.

Język definiowany przez ¬φ jest dopełnieniem regularnego języka definiowanego przez φ, czyli sam też jest regularny.

W wypadku formuły Xiφ, o której zakłądamy, że i jest najwyższym indeksem symbolu relacyjnego występującego w φ, bierzemy automat rozpoznający język nad Ai definiowany przez φ. Następnie modyfikujemy go tak, by działał nad alfabetem Ai1, przy każdym przejściu niedeterministycznie zgadując, czy i-tą współrzędną litery z alfabetu Ai znajdującej się w tej komórce taśmy jest 1 czy 0.

Twierdzenie Buchi ma daleko idące konsekwencje dla rozstrzygalności wielu interesujących problemów.

Wniosek 12.5

Następujące problemy są rozstrzygalne:

  • Czy istnieje model-słowo, w którym dane zdanie φ z MSO jest prawdziwe?
  • Czy dane zdanie φ z MSO jest prawdziwe w każdym modelu-słowie?

Dowód

Procedura rozstrzygająca oba problemy polega na przetworzeniu formuły φ w równoważny jej automat skończony (np.w sposób opisany w dowodzie poprzedniego twierdzenia), a następnie przeprowadzeniu testu na automacie.

Informacja o tw. Fagina i Stockmeyera

Naturalne jest pytanie, czy można równie elegancko, jak to zrobił Buchi, scharakteryzować zbiory modeli definiowalnych w pełnej logice drugiego rzędu. Odpowiedź na to pytanie pojawiła się w dwóch krokach.

W pierwszej charakteryzacji występuje egzystencjalna logika drugiego rzędu, czasami oznaczana symbolem Σ11, czyli zbiór tych formuł pełnej logiki drugiego rzędu, w których wszystkie kwantyfikatory drugiego rzędu wystepują na początku formuły, a za nimi jest już tylko zwykłe zdanie pierwszego rzędu:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \exists X_1~\dots \exists X_n \hspace{-4mm}\underbrace{\varphi(X_1\dots X_n)}_{\text{zdanie pierwszego rzędu}}} .

Dla tej logiki sytuacja wygląda następująco:

Twierdzenie 12.6 (Fagin)

Dla każdego zdania φ egzystencjalnej logiki drugiego rzędu zbiór {wAn+|𝔄(w)φ} należy do { NP}, oraz dla każdego języka LNP istnieje zdanie φ egzystencjalnej logiki drugiego rzędu takie, że

{wAn+|𝔄(w)φ}=L{ϵ}.

Podobnie jak twierdzenie Buchi i Elgota, ono też bywa reprezentowane sloganem Σ11=NP.

Oczywiście NP to słynna klasa złożoności probelmów rozstrzyganych przez niedeterministyczne maszyny Turinga o wielomianowej złożoności czasowej.

Pełna logika drugiego rzędu, oznaczona tu przez SO, też ma analogiczną charakteryzację, która w postaci sloganu wyraża się przez SO=PH i została udowodniona przez Stockmeyera. Precyzyjna postać tego twierdzenia jest analogiczna do poprzednich, a PH to hierarchia wielomianowa, również doskonale znana z teorii złożoności.

Przed przejściem do następnego tematu wypada zauważyć, że twierdzenia Fagina i Stockmeyera w istocie obowiązują w zakresie szerszym niż tylko dla modeli-słów. Dotyczą one także dowolnych struktur skończonych, o ile założy się odpowiednio rozsądny sposób opisywania ich we wzajemnie jednoznaczny sposób za pomocą słów.

Po poznaniu twierdzeń Fagina i Stockmeyera lepiej rozumiemy trudności badania logiki drugiego rzędu. Jest to zadanie co najmniej równie niełatwe, jak najtrudniejsze pytania teorii złożoności, z którymi uczeni borykają się od kilkudziesięciu lat, jak dotychczas bezskutecznie. Np.dowód, że każdy zbiór słów, który jest definiowalny formułą logiki drugiego rzędu, jest też definiowalny formułą Σ11, implikowałby natychmiast, że NP=PH, a zatem także NP=coNP. Zauważmy przy tym, że każdy zbiór słów, który jest definiowalny w MSO, jest też definiowalny za pomocą formuły która należy jednocześnie do MSO i Σ11. Wynika to z postaci formuły definiującej zbiory regularne, która pojawia się w dowodzie twierdzenia Buchi. Zatem na poziomie kwantyfikacji wyłącznie po relacjach jednoargumentowych, pożądana równość zachodzi. Jednak przejście do relacji o dowolnej liczbie argumentów wydaje się niezmiernie trudne.

Informacja o tw. Rabina

Twierdzenie Rabina to inne, daleko idące uogólnienie twierdzenia Buchi.

Nieskończone pełne drzewo binarne to struktura 𝔗 nad sygnaturą =,s0,s1, w której s0s1 to symbole jednoargumentowych funkcji. Nośnik 𝔗 to zbiór {0,1}* skończonych słów zerojedynkowych, a funkcje są określone przez równości s0(w)=w0 oraz s1(w)=w1.

Twierdzenie 12.7 (Rabin)

Zbiór zdań logiki MSO, które są prawdziwe w 𝔗 jest rozstrzygalny.

Wszystkie znane dowody twierdzenia Rabina opierają się na tym samym pomyśle, który poznaliśmy w dowodzie twierdzenia Buchi: formuły logiki MSO są tłumaczone na równoważne im automaty w taki sposób, że formuła jest prawdziwa w drzewie 𝔗 (poetykietowanym dodatkowymi symbolami w wierzchołkach) wtedy i tylko wtedy, gdy automat akceptuje to drzewo. Szczegóły tych dowodów są zawsze bardzo skomplikowane. Nagrodą jest za to wynik, który jest jednym z najsilniejszych znanych twierdzeń o rozstrzygalności, nie tylko zresztą w logice. Rozstrzygalność wielu innych problemów decyzyjnych wykazano po raz pierwszy przez ich odpowiednie przetłumaczenie (czyli zredukowanie) na pytanie o prawdziwość zdań MSO w nieskończonym drzewie binarnym.