Logika dla informatyków/Ograniczenia logiki pierwszego rzędu: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 2: | Linia 2: | ||
==Ograniczenia logiki pierwszego rzędu== | ==Ograniczenia logiki pierwszego rzędu== | ||
Ten rozdział poświęcony jest ograniczeniom, którym podlega język | Ten rozdział poświęcony jest ograniczeniom, którym podlega język | ||
Linia 16: | Linia 16: | ||
dalszym ciągu. | dalszym ciągu. | ||
{{definicja||| | {{definicja|||'''Rangę kwantyfikatorową''' <math>QR\var(\varphi)</math> formuły <math>\var\varphi</math> definiujemy jak następuje: | ||
definiujemy jak następuje: | |||
*<math>QR(\bot)=QR(t_1=t_2)=QR(r (t_1,\dots,t_k )) =0</math> dla dowolnych termów <math>t_1,\dots, t_k</math> oraz <math>r\in \Sigma^R_k.</math> | |||
*<math>QR (\var\varphi\to \psi) =\max (QR (\var\varphi) ,QR (\psi)) </math>. | |||
*<math>QR (\forall x\var\varphi) =1+QR (\var\varphi) .</math> | |||
}} | }} | ||
Intuicyjnie <math> | Intuicyjnie <math>QR</math> to głębokość zagnieżdżenia kwantyfikatorów w | ||
formule. Jest to jedna z wielu możliwych miar stopnia komplikacji | formule. Jest to jedna z wielu możliwych miar stopnia komplikacji formuły <math>\varphi.</math> Parametr ten ma następujące znaczenie: jeśli struktura <math>\strA</math> ma <math>n\Delta\vdashl</math> elementów, to pesymistyczny czas sprawdzenia, czy dla zdania <math>\var\varphi</math> zachodzi <math>\strA\models \var\varphi</math> jest asymptotycznie proporcjonalny do <math>n^{QR \var\varphi },</math> gdy użyjemy naturalnego algorytmu do wykonania tego zadania, który dla każdego kwantyfikatora w formule przegląda wszystkie elementy struktury. | ||
formuły <math> | |||
struktura <math>\strA</math> ma <math>n</math> | |||
czy dla zdania <math>\var\varphi</math> zachodzi <math>\strA\models \var\varphi</math> jest | |||
asymptotycznie proporcjonalny do <math>n^{ | |||
naturalnego algorytmu do wykonania tego zadania, który dla każdego | |||
kwantyfikatora w formule przegląda wszystkie | |||
Teraz możemy wyjaśnić, dlaczego nie dopuszczamy symboli funkcyjnych w | Teraz możemy wyjaśnić, dlaczego nie dopuszczamy symboli funkcyjnych w | ||
sygnaturze. Otóż ich obecność zakłóca potrzebne nam własności funkcji | sygnaturze. Otóż ich obecność zakłóca potrzebne nam własności funkcji | ||
<math>QR.</math> Tytułem przykładu, formuła <math>R | <math>QR.</math> Tytułem przykładu, formuła <math>R x,f f x </math> jest atomowa i jej ranga kwantyfikatorowa powinna wynosić <math>0</math>. Tymczasem | ||
jej ranga kwantyfikatorowa powinna wynosić <math>0</math>. Tymczasem | |||
gdy <math>f</math> będziemy reprezentować w strukturze jako dwuargumentową | gdy <math>f</math> będziemy reprezentować w strukturze jako dwuargumentową | ||
relację </math>F<math>, ta sama formuła przybierze postać </math>\exists y\exists z | relację </math>F<math>, ta sama formuła przybierze postać </math>\exists y\exists z F x,y \land F y,z \land R x,z ,</math> której ranga kwantyfikatorowa wynosi 2. Twierdzenia, których dalej dowodzimy, odwołują się do wartości <math>QR</math> zdefiniowanych powyżej dla logiki bez symboli | ||
funkcyjnych. To właśnie jest przyczyna, dla której funkcje wykluczamy z rozważań. | |||
wynosi 2. Twierdzenia, których dalej dowodzimy, odwołują się do | |||
wartości <math>QR</math> zdefiniowanych powyżej dla logiki bez symboli | |||
funkcyjnych. | |||
z rozważań. | |||
===Charakteryzacja Fra\"{\i=== | ===Charakteryzacja Fra\"{\i=== | ||
Linia 70: | Linia 53: | ||
izomorfizmem podstruktur indukowanych </math>h:\strA_{|A'}\cong | izomorfizmem podstruktur indukowanych </math>h:\strA_{|A'}\cong | ||
\strB_{|B'},</math> to mówimy, że <math>h</math> jest \textit{częściowym izomorfizmem z | \strB_{|B'},</math> to mówimy, że <math>h</math> jest \textit{częściowym izomorfizmem z | ||
<math>\strA</math> w <math>\strB</math>.} Jego \textit{dziedzina} to <math>dom | <math>\strA</math> w <math>\strB</math>.} Jego \textit{dziedzina} to <math>dom h =A'</math>, a | ||
\textit{obraz} to <math>rg | \textit{obraz} to <math>rg h =B'.</math> | ||
Na zasadzie konwencji\boldsymbol{s}}\def\blank{\hbox{\sf Bmawiamy się, że <math>\emptyset</math> jest częściowym | Na zasadzie konwencji\boldsymbol{s}}\def\blank{\hbox{\sf Bmawiamy się, że <math>\emptyset</math> jest częściowym | ||
Linia 77: | Linia 60: | ||
Dla dwóch częściowych izomorfizmów <math>g,h</math> z <math>\strA</math> w <math>\strB</math> piszemy | Dla dwóch częściowych izomorfizmów <math>g,h</math> z <math>\strA</math> w <math>\strB</math> piszemy | ||
<math>g\subseteq h</math> gdy <math>dom | <math>g\subseteq h</math> gdy <math>dom g \subseteq dom h </math> oraz <math>g a =h a </math> dla | ||
wszystkich <math>a\in dom | wszystkich <math>a\in dom g ,</math> to jest wtedy, gdy <math>g</math> jest zawarte jako | ||
zbiór w <math>h.</math> | zbiór w <math>h.</math> | ||
}} | }} | ||
Linia 93: | Linia 76: | ||
\begin{description} | \begin{description} | ||
\item[Tam] Dla każdego <math>h\in I_{n+1}</math> oraz każdego <math>a\in A</math> istnieje takie | \item[Tam] Dla każdego <math>h\in I_{n+1}</math> oraz każdego <math>a\in A</math> istnieje takie | ||
<math>g\in I_n</math>, że <math>h\subseteq g</math> oraz <math>a\in dom | <math>g\in I_n</math>, że <math>h\subseteq g</math> oraz <math>a\in dom g .</math> | ||
\item[Z powrotem] Dla każdego <math>h\in I_{n+1}</math> oraz każdego <math>b\in B</math> | \item[Z powrotem] Dla każdego <math>h\in I_{n+1}</math> oraz każdego <math>b\in B</math> | ||
istnieje takie <math>g\in I_n</math>, że <math>h\subseteq g</math> oraz <math>b\in rg | istnieje takie <math>g\in I_n</math>, że <math>h\subseteq g</math> oraz <math>b\in rg g .</math> | ||
\end{description} | \end{description} | ||
Linia 191: | Linia 174: | ||
jest rzadko\boldsymbol{s}}\def\blank{\hbox{\sf Bżywana w praktyce. Wyraża za to istotną z | jest rzadko\boldsymbol{s}}\def\blank{\hbox{\sf Bżywana w praktyce. Wyraża za to istotną z | ||
metodologicznego punktu widzenia informację: jeśli dwie struktury są | metodologicznego punktu widzenia informację: jeśli dwie struktury są | ||
<math>m</math>- elementarnie równoważne, to fakt ten można na pewno\boldsymbol{s}}\def\blank{\hbox{\sf Bdowodnić | |||
posługując się metodą Fra\"{\i}ss\'e, choć oczywiście nie ma | posługując się metodą Fra\"{\i}ss\'e, choć oczywiście nie ma | ||
gwarancji, że będzie to metoda najprostsza. | gwarancji, że będzie to metoda najprostsza. | ||
Linia 202: | Linia 185: | ||
''Niech <math>\{I_n | n\leq m\''</math> będzie rodziną o której mowa w definicji | ''Niech <math>\{I_n | n\leq m\''</math> będzie rodziną o której mowa w definicji | ||
<math>\strA\cong_m\strB</math>, niech <math>\var\varphi</math> będzie formułą o co najwyżej <math>r</math> | <math>\strA\cong_m\strB</math>, niech <math>\var\varphi</math> będzie formułą o co najwyżej <math>r</math> | ||
zmiennych wolnych | zmiennych wolnych bez\boldsymbol{s}}\def\blank{\hbox{\sf Btraty ogólności niech będą to <math>x_1,\dots,x_r</math> | ||
i spełniającą <math>\QR | i spełniającą <math>\QR \var\varphi \leq n\leq m</math> oraz niech <math>g\in I_n.</math> | ||
Wówczas dla dowolnych <math>a_1,\dots,a_r\in dom | Wówczas dla dowolnych <math>a_1,\dots,a_r\in dom g </math> następujące dwa | ||
warunki są równoważne:} | warunki są równoważne:} | ||
<!--% --> | <!--% --> | ||
\[\strA,x_1:a_1,\dots,x_r:a_r\models\var\varphi\] | \[\strA,x_1:a_1,\dots,x_r:a_r\models\var\varphi\] | ||
\[\strB,x_1:g | \[\strB,x_1:g a_1 ,\dots,x_r:g a_r \models\var\varphi.\]\end{quote} | ||
Dla formuł atomowych, powyższa teza wynika wprost z faktu, że <math>g</math> jest | Dla formuł atomowych, powyższa teza wynika wprost z faktu, że <math>g</math> jest | ||
częściowym izomorfizmem | częściowym izomorfizmem przypomnijmy że w sygnaturze nie ma symboli | ||
funkcyjnych i co za tym idzie jedynymi termami są zmienne | funkcyjnych i co za tym idzie jedynymi termami są zmienne . | ||
Gdy <math>\var\varphi</math> ma postać <math>\psi\to\xi,</math> to mamy następujący ciąg | Gdy <math>\var\varphi</math> ma postać <math>\psi\to\xi,</math> to mamy następujący ciąg | ||
Linia 222: | Linia 205: | ||
<math>\strA,x_1:a_1,\dots,x_r:a_r\models\xi</math> | <math>\strA,x_1:a_1,\dots,x_r:a_r\models\xi</math> | ||
*<math>\strA,x_1:g | *<math>\strA,x_1:g a_1 ,\dots,x_r:g a_r \not\models\psi</math> lub | ||
<math>\strA,x_1:g | <math>\strA,x_1:g a_1 ,\dots,x_r:g a_r \models\xi</math> | ||
*<math>\strA,x_1:g | *<math>\strA,x_1:g a_1 ,\dots,x_r:g a_r \models\psi\to\xi,</math> | ||
Linia 233: | Linia 216: | ||
Gdy </math>\var\varphi<math> ma postać </math>\forall x \psi,<math> to, jako że </math>x_{r+1}\notin | Gdy </math>\var\varphi<math> ma postać </math>\forall x \psi,<math> to, jako że </math>x_{r+1}\notin | ||
FV | FV \var\varphi <math> i co za tym idzie </math>\models \forall x\psi | ||
\leftrightarrow \forall x_{r+1} \psi x_{r+1}/x </math> patrz Fakt | |||
[[#alfa-konw]] | [[#alfa-konw]] , możemy bez\boldsymbol{s}}\def\blank{\hbox{\sf Btraty ogólności założyć, że <math>\var\varphi</math> ma | ||
postać <math>\forall x_{r+1} \psi.</math> Z założenia <math>\QR | postać <math>\forall x_{r+1} \psi.</math> Z założenia <math>\QR \var\varphi \leq n</math> | ||
wynika, że <math>\QR | wynika, że <math>\QR \psi \leq n-1</math>. Mamy teraz następujący ciąg | ||
równoważnych warunków: | równoważnych warunków: | ||
*<math> | *<math> \strA,x_1:a_1,\dots,x_r:a_r \models\var\varphi</math> | ||
*Dla każdego <math>a\in A</math> zachodzi | *Dla każdego <math>a\in A</math> zachodzi | ||
<math> | <math> \strA,x_1:a_1,\dots,x_r:a_r,x_{r+1}:a \models\psi</math> | ||
*Dla każdego <math>a\in A</math> istnieje takie <math>h\in I_{n-1}</math>, że <math>g\subseteq h,</math> | *Dla każdego <math>a\in A</math> istnieje takie <math>h\in I_{n-1}</math>, że <math>g\subseteq h,</math> | ||
<math>a\in dom | <math>a\in dom h </math> | ||
oraz | oraz | ||
<math> | <math> \strA,x_1:a_1,\dots,x_r:a_r,x_{r+1}:a \models\psi</math> | ||
*Dla każdego <math>a\in A</math> istnieje takie <math>h\in I_{n-1}</math>, że <math>g\subseteq h,</math> | *Dla każdego <math>a\in A</math> istnieje takie <math>h\in I_{n-1}</math>, że <math>g\subseteq h,</math> | ||
<math>a\in dom | <math>a\in dom h </math> | ||
oraz | oraz | ||
<math> | <math> \strB,x_1:g a_1 ,\dots,x_r:g a_r ,x_{r+1}:h a \models\psi</math> | ||
*Dla każdego <math>b\in B</math> istnieje takie <math>h\in I_{n-1}</math>, że | *Dla każdego <math>b\in B</math> istnieje takie <math>h\in I_{n-1}</math>, że | ||
<math>g\subseteq h,</math> <math>b\in rg | <math>g\subseteq h,</math> <math>b\in rg h </math> oraz | ||
<math> | <math> \strB,x_1:g a_1 ,\dots,x_r:g a_r ,x_{r+1}:b \models\psi</math> | ||
*Dla każdego <math>b\in B</math> zachodzi | *Dla każdego <math>b\in B</math> zachodzi | ||
<math> | <math> \strB,x_1:g a_1 ,\dots,x_r:g a_r ,x_{r+1}:b \models\psi</math> | ||
*<math> | *<math> \strB,x_1:g a_1 ,\dots,x_r:g a_r \models\var\varphi.</math> | ||
Linia 292: | Linia 275: | ||
naszych struktur jak następuje: | naszych struktur jak następuje: | ||
<!--% --> | <!--% --> | ||
\[d_k | \[d_k a,b =\begin{cases} | ||
|b-a|&\text{jeśli <math>|b-a|< 2^k</math>}\\ | |b-a|&\text{jeśli <math>|b-a|< 2^k</math>}\\ | ||
\infty&\text{wpp.} | \infty&\text{wpp.} | ||
Linia 301: | Linia 284: | ||
izomorfizmów </math>g<math> z </math>\strA<math> w </math>\strB<math> takich, że </math>\{\langle | izomorfizmów </math>g<math> z </math>\strA<math> w </math>\strB<math> takich, że </math>\{\langle | ||
0,0\rangle,\langle N,M\rangle\}\subseteq g</math> oraz | 0,0\rangle,\langle N,M\rangle\}\subseteq g</math> oraz | ||
<math>d_k | <math>d_k a,b =d_k g a ,g b </math> dla wszystkich <math>a,b\in dom g .</math> Oczywiście | ||
</math>I_k\neq \emptyset<math> bo </math>\{\langle 0,0\rangle,\langle | </math>I_k\neq \emptyset<math> bo </math>\{\langle 0,0\rangle,\langle | ||
N,M\rangle\}\in I_k.</math> | N,M\rangle\}\in I_k.</math> | ||
Linia 307: | Linia 290: | ||
Pokazujemy własność '''Tam} dla rodziny <math>\{I_k | k\leq m\'''</math>. Niech | Pokazujemy własność '''Tam} dla rodziny <math>\{I_k | k\leq m\'''</math>. Niech | ||
<math>g\in I_{k+1}.</math> Niech <math>a\in\{0,\dots,N\}.</math> Mamy wskazać w <math>I_k</math> | <math>g\in I_{k+1}.</math> Niech <math>a\in\{0,\dots,N\}.</math> Mamy wskazać w <math>I_k</math> | ||
częściowy izomorfizm <math>h\supseteq g</math> taki, że <math>a\in dom | częściowy izomorfizm <math>h\supseteq g</math> taki, że <math>a\in dom h .</math> | ||
Rozróżniamy dwa przypadki: | Rozróżniamy dwa przypadki: | ||
i Jeśli istnieje takie <math>b\in dom g </math>, że <math>d_{k} a,b <\infty</math>, to w | |||
<math>B</math> jest dokładnie jeden\Delta\vdashlement <math>a'</math>, który jest tak samo położony | <math>B</math> jest dokładnie jeden\Delta\vdashlement <math>a'</math>, który jest tak samo położony | ||
względem <math>g | względem <math>g b </math> jak <math>a</math> względem <math>b,</math> oraz spełnia | ||
<math>d_j | <math>d_j a',g b =d_{j} a,b .</math> Kładziemy wówczas <math>h a :=a'</math> i <math>h</math> jest | ||
wtedy częściowym izomorfizmem zachowującym odległości <math>d_j.</math> | wtedy częściowym izomorfizmem zachowującym odległości <math>d_j.</math> | ||
ii Jeśli natomiast takiego <math>b</math> nie ma, to niech <math>a'<a<a'',</math> gdzie | |||
<math>a',a''</math> są najbliższymi <math>b</math>\Delta\vdashlementami po lewej i po prawej, które | <math>a',a''</math> są najbliższymi <math>b</math>\Delta\vdashlementami po lewej i po prawej, które | ||
należą do <math> dom | należą do <math> dom g .</math> Wówczas <math>d_j a',a =d_j a,a'' =\infty,</math> co w myśl | ||
definicji <math>d_j</math> oznacza, że <math>d_{j+1 | definicji <math>d_j</math> oznacza, że <math>d_{j+1} a',a'' =\infty.</math> Zatem na mocy | ||
założenia indukcyjnego także <math>d_{j+1 | założenia indukcyjnego także <math>d_{j+1} g a' ,g a'' =\infty.</math> Istnieje | ||
więc <math>g | więc <math>g a' <b<g a'' </math> takie, że \mbox{<math>d_j g a' ,b =d_j b,g a'' =\infty</math>}, | ||
i wówczas kładąc <math>h | i wówczas kładąc <math>h a :=b</math>\boldsymbol{s}}\def\blank{\hbox{\sf Bzyskujemy żądane rozszerzenie. | ||
}} | }} | ||
Linia 371: | Linia 354: | ||
{{definicja||| | {{definicja||| | ||
\textit{Gra Ehrenfeuchta <math>G_m | \textit{Gra Ehrenfeuchta <math>G_m \strA,\strB </math>} jest rozgrywana przez | ||
dwóch graczy, oznaczanych I i II. Trwa ona przez <math>m</math> rund. | dwóch graczy, oznaczanych I i II. Trwa ona przez <math>m</math> rund. | ||
W <math>i</math>-tej rundzie | W <math>i</math>-tej rundzie <math>i=1,\dots,m</math> najpierw wykonuje ruch gracz I, | ||
wybierając jedną ze struktur oraz jeden z\Delta\vdashlementów jej | wybierając jedną ze struktur oraz jeden z\Delta\vdashlementów jej | ||
nośnika. Jest on oznaczany <math>a_i</math> jeśli pochodzi z <math>A</math>, zaś <math>b_i,</math> | nośnika. Jest on oznaczany <math>a_i</math> jeśli pochodzi z <math>A</math>, zaś <math>b_i,</math> | ||
jeśli z <math>B.</math> Jako drugi wykonuje ruch gracz II, który musi wybrać | jeśli z <math>B.</math> Jako drugi wykonuje ruch gracz II, który musi wybrać | ||
\Delta\vdashlement w pozostałej strukturze | \Delta\vdashlement w pozostałej strukturze czyli w <math>\strA</math>, jeśli I wybrał\Delta\vdashlement | ||
w <math>\strB,</math> oraz w <math>\strB,</math> jeśli I wybrał\Delta\vdashlement w <math>\strA</math> | w <math>\strB,</math> oraz w <math>\strB,</math> jeśli I wybrał\Delta\vdashlement w <math>\strA</math> i oznaczyć go | ||
<math>a_i</math> lub <math>b_i,</math> zależnie od tego, skąd wybierał. | <math>a_i</math> lub <math>b_i,</math> zależnie od tego, skąd wybierał. | ||
Linia 392: | Linia 375: | ||
Mówimy, że gracz II ma {\em strategię wygrywającą\/} w grze | Mówimy, że gracz II ma {\em strategię wygrywającą\/} w grze | ||
<math>G_m | <math>G_m \strA,\strB </math>, jeśli może wygrać każdą rozgrywkę, niezależnie od | ||
posunięć gracza I. | posunięć gracza I. | ||
}} | }} | ||
Linia 399: | Linia 382: | ||
wybieranie\Delta\vdashlementów, które poprzednio były już wybrane. Jest to | wybieranie\Delta\vdashlementów, które poprzednio były już wybrane. Jest to | ||
dogodne, gdyż\boldsymbol{s}}\def\blank{\hbox{\sf Bpraszcza definicję. Gdybyśmy bowiem zakazali tego, | dogodne, gdyż\boldsymbol{s}}\def\blank{\hbox{\sf Bpraszcza definicję. Gdybyśmy bowiem zakazali tego, | ||
to albo niemożliwe byłoby rozegranie gry <math>G_m | to albo niemożliwe byłoby rozegranie gry <math>G_m \strA,\strB </math> gdy choć | ||
jedna ze struktur ma moc mniejszą niż <math>m,</math> albo trzeba by było | jedna ze struktur ma moc mniejszą niż <math>m,</math> albo trzeba by było | ||
wprowadzić w definicji specjalny warunek służący do rozstrzygania | wprowadzić w definicji specjalny warunek służący do rozstrzygania | ||
Linia 413: | Linia 396: | ||
{{twierdzenie||ehrenfeucht| | {{twierdzenie||ehrenfeucht| | ||
*Gracz II ma strategię wygrywającą w grze <math>G_m | *Gracz II ma strategię wygrywającą w grze <math>G_m \strA,\strB </math> wtedy i tylko | ||
wtedy, gdy <math>\strA\cong_{m}\strB.</math> | wtedy, gdy <math>\strA\cong_{m}\strB.</math> | ||
*Gracz II ma dla każdego <math>m</math> strategię wygrywającą w grze | *Gracz II ma dla każdego <math>m</math> strategię wygrywającą w grze | ||
<math>G_m | <math>G_m \strA,\strB </math> wtedy i tylko wtedy, gdy <math>\strA\cong_{fin}\strB.</math> | ||
}} | }} | ||
Linia 438: | Linia 421: | ||
W myśl Twierdzenia [[#ehrenfeucht]] należy pokazać, że dla każdego | W myśl Twierdzenia [[#ehrenfeucht]] należy pokazać, że dla każdego | ||
<math>m</math> gracz II ma strategię wygrywającą w grze <math>G_m | <math>m</math> gracz II ma strategię wygrywającą w grze <math>G_m \strA,\strB .</math> | ||
Opiszemy teraz tę strategię. Jej postać nie zależy od liczby rund do | Opiszemy teraz tę strategię. Jej postać nie zależy od liczby rund do | ||
rozegrania. Pokażemy też, że jeśli po zakończeniu poprzedniej rundy | rozegrania. Pokażemy też, że jeśli po zakończeniu poprzedniej rundy | ||
Linia 465: | Linia 448: | ||
następująco. Niech </math>a_{i_1}<^\strA a_{i_2}<^\strA \dots<^\strA | następująco. Niech </math>a_{i_1}<^\strA a_{i_2}<^\strA \dots<^\strA | ||
a_{i_k}</math> i <math>b_{i_1}<^\strB b_{i_2}<^\strB \dots<^\strB b_{i_k}</math> będą | a_{i_k}</math> i <math>b_{i_1}<^\strB b_{i_2}<^\strB \dots<^\strB b_{i_k}</math> będą | ||
identycznymi na mocy założenia indukcyjnego ciągami indeksów przed | |||
wykonaniem tego ruchu. Ze względu na symetrię sytuacji, możemy bez | wykonaniem tego ruchu. Ze względu na symetrię sytuacji, możemy bez | ||
\boldsymbol{s}}\def\blank{\hbox{\sf Btraty ogólności założyć, że gracz I wybiera strukturę <math>\strA</math>. Może | \boldsymbol{s}}\def\blank{\hbox{\sf Btraty ogólności założyć, że gracz I wybiera strukturę <math>\strA</math>. Może | ||
Linia 492: | Linia 475: | ||
\mathbb{R},\leq\rangle\equiv\langle \mathbb{Q},\leq\rangle.</math> Zatem nie | \mathbb{R},\leq\rangle\equiv\langle \mathbb{Q},\leq\rangle.</math> Zatem nie | ||
ma zdania logiki pierwszego rzędu, które definiuje pojęcie porządku | ma zdania logiki pierwszego rzędu, które definiuje pojęcie porządku | ||
ciągłego | ciągłego tzn. takiego, w którym wszystkie niepuste ograniczone | ||
podzbiory mają kres górny i kres dolny | podzbiory mają kres górny i kres dolny , bo musiałoby ono być prawdziwe | ||
w pierwszej ze struktur, a fałszywe w drugiej. | w pierwszej ze struktur, a fałszywe w drugiej. | ||
Linia 503: | Linia 486: | ||
zbiór postaci <math>\{\var\varphi\ |\ \Gamma\models\var\varphi\}</math>, zwany {\it teorią | zbiór postaci <math>\{\var\varphi\ |\ \Gamma\models\var\varphi\}</math>, zwany {\it teorią | ||
aksjomatyczną\/} wyznaczoną przez <math>\Gamma</math>, czy też postaci | aksjomatyczną\/} wyznaczoną przez <math>\Gamma</math>, czy też postaci | ||
</math>'''Th | </math>'''Th} \K =\{\var\varphi\ |\ \strA\models\var\varphi,\ \mbox{dla każdego'''\ | ||
\strA\in\K\}</math> | \strA\in\K\}</math> | ||
teoria klasy struktur <math>\K</math> albo | |||
<math>'''Th | <math>'''Th} \strA = \{\var\varphi\ |\ \strA\models\var\varphi\'''</math> | ||
teoria modelu <math>\strA</math> . Teorię | |||
<math>\Delta</math> nazywamy \textit{zupełną}, gdy dla każdego zdania | <math>\Delta</math> nazywamy \textit{zupełną}, gdy dla każdego zdania | ||
<math>\var\varphi,</math> dokładnie jedno ze zdań <math>\var\varphi</math> i <math>\lnot\var\varphi</math> należy do | <math>\var\varphi,</math> dokładnie jedno ze zdań <math>\var\varphi</math> i <math>\lnot\var\varphi</math> należy do | ||
Linia 524: | Linia 507: | ||
Teoria o której mówimy nie ma modeli skończonych. W myśl Twierdzenia | Teoria o której mówimy nie ma modeli skończonych. W myśl Twierdzenia | ||
[[#Cantoro]] wszystkie jej modele nieskończone są\Delta\vdashlementarnie | [[#Cantoro]] wszystkie jej modele nieskończone są\Delta\vdashlementarnie | ||
równoważne. Zatem </math>'''Th | równoważne. Zatem </math>'''Th} \mathcal{A''' ='''Th''' \langle | ||
\mathbb{Q},\leq\rangle | \mathbb{Q},\leq\rangle ,</math> a teoria pojedynczego modelu jest zawsze | ||
zupełna. | zupełna. | ||
}} | }} | ||
Linia 548: | Linia 531: | ||
Wywnioskować stąd, że pojęcie dobrego porządku nie jest wyrażalne w logice | Wywnioskować stąd, że pojęcie dobrego porządku nie jest wyrażalne w logice | ||
pierwszego rzędu. | pierwszego rzędu. Zupełnie inny dowód tego faktu poznamy | ||
w Rozdziale [[#zwarciig\leftrightarrowwi]]. | w Rozdziale [[#zwarciig\leftrightarrowwi]]. | ||
#Niech <math>R</math> będzie jednoargumentowym symbolem relacyjnym. | #Niech <math>R</math> będzie jednoargumentowym symbolem relacyjnym. | ||
Linia 556: | Linia 539: | ||
zdań pierwszego rzędu. | zdań pierwszego rzędu. | ||
#Udowodnić, że klasa wszystkich | #Udowodnić, że klasa wszystkich skończonych lub nieskończonych grafów | ||
<math>\strA=\langle A,E\rangle,</math> w których istnieją dwa | <math>\strA=\langle A,E\rangle,</math> w których istnieją dwa | ||
wierzchołki o równych sobie, skończonych stopniach, nie jest | wierzchołki o równych sobie, skończonych stopniach, nie jest | ||
aksjomatyzowalna żadnym zdaniem pierwszego rzędu. | aksjomatyzowalna żadnym zdaniem pierwszego rzędu. | ||
#Udowodnić, że klasa wszystkich | #Udowodnić, że klasa wszystkich skończonych lub nieskończonych grafów | ||
<math>\strA=\langle A,E\rangle,</math> których każdy skończony podgraf jest planarny, | <math>\strA=\langle A,E\rangle,</math> których każdy skończony podgraf jest planarny, | ||
nie jest aksjomatyzowalna żadnym zdaniem pierwszego rzędu. | nie jest aksjomatyzowalna żadnym zdaniem pierwszego rzędu. | ||
Linia 575: | Linia 558: | ||
nad sygnaturą złożoną z jednego dwuargumentowego symbolu | nad sygnaturą złożoną z jednego dwuargumentowego symbolu | ||
relacyjnego. Ich nośnikiem jest | relacyjnego. Ich nośnikiem jest | ||
<math>U=\{1,2,\dots,15\}</math>, relacja <math>R^\strA | <math>U=\{1,2,\dots,15\}</math>, relacja <math>R^\strA x,y </math> zachodzi \wtw, gdy | ||
<math>x|y</math>, a relacja <math>R^\strB | <math>x|y</math>, a relacja <math>R^\strB x,y </math> \wtw, gdy <math>x\equiv y\pmod 2.</math> | ||
Ustalić, jaką minimalną rangę kwantyfikatorową ma zdanie | Ustalić, jaką minimalną rangę kwantyfikatorową ma zdanie | ||
Linia 586: | Linia 569: | ||
Struktury są narysowane poniżej jako grafy skierowane: | Struktury są narysowane poniżej jako grafy skierowane: | ||
<span id=""/> <math> \begi\prooftree array \justifies c|c \using \textrm{ | <span id=""/> <math> \begi\prooftree array \justifies c|c \using \textrm{ W }\endprooftree | ||
\xymatrix | \xymatrix |
Wersja z 10:48, 25 wrz 2006
Linek z wykladu 8 do tw. 4.13. Nazwa linku "Cantoro"
Ograniczenia logiki pierwszego rzędu
Ten rozdział poświęcony jest ograniczeniom, którym podlega język logiki pierwszego rzędu. Okazuje się, że nie każde pojęcie da się w nim wyrazić, a także, że są pojęcia, które dają się wyrazić, ale odpowiednie zdanie lub formuła z konieczności musi być skomplikowane. Rozważania w tym rozdziale będziemy prowadzić przy założeniu, że w sygnaturze występują wyłącznie symbole relacyjne. Wyniki dają się zastosować do sygnatur z symbolami funkcyjnymi, ale wymaga to zakodowania wszystkich funkcji jako relacji.
Zaczniemy od miary skomplikowania formuł, która będzie przydatna w dalszym ciągu.
Definicja
- dla dowolnych termów oraz
- Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle QR (\var\varphi\to \psi) =\max (QR (\var\varphi) ,QR (\psi)) } .
- Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle QR (\forall x\var\varphi) =1+QR (\var\varphi) .}
Intuicyjnie to głębokość zagnieżdżenia kwantyfikatorów w formule. Jest to jedna z wielu możliwych miar stopnia komplikacji formuły Parametr ten ma następujące znaczenie: jeśli struktura Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} ma Parser nie mógł rozpoznać (nieznana funkcja „\vdashl”): {\displaystyle n\Delta\vdashl} elementów, to pesymistyczny czas sprawdzenia, czy dla zdania Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} zachodzi Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\models \var\varphi} jest asymptotycznie proporcjonalny do Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle n^{QR \var\varphi },} gdy użyjemy naturalnego algorytmu do wykonania tego zadania, który dla każdego kwantyfikatora w formule przegląda wszystkie elementy struktury.
Teraz możemy wyjaśnić, dlaczego nie dopuszczamy symboli funkcyjnych w sygnaturze. Otóż ich obecność zakłóca potrzebne nam własności funkcji Tytułem przykładu, formuła jest atomowa i jej ranga kwantyfikatorowa powinna wynosić . Tymczasem gdy będziemy reprezentować w strukturze jako dwuargumentową relację </math>FParser nie mógł rozpoznać (błąd składni): {\displaystyle , ta sama formuła przybierze postać } \exists y\exists z F x,y \land F y,z \land R x,z ,</math> której ranga kwantyfikatorowa wynosi 2. Twierdzenia, których dalej dowodzimy, odwołują się do wartości zdefiniowanych powyżej dla logiki bez symboli funkcyjnych. To właśnie jest przyczyna, dla której funkcje wykluczamy z rozważań.
Charakteryzacja Fra\"{\i
Definicja
relacyjną oraz to struktura Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA_{|B}} tej samej sygnatury co Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} , nazywana \textit{podstrukturą indukowaną przez w Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,} } ma nośnik zaś dla każdego
\[r^{\strA_{=r^\strA\cap B^n.\]
}}
Definicja
strukturami relacyjnymi tej samej sygnatury ponadto niech i . Jeśli funkcja jest
izomorfizmem podstruktur indukowanych </math>h:\strA_{\def\blank{\hbox{\sf Bmawiamy się, że
jest częściowym
izomorfizmem z Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} w Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} o pustej dziedzinie i pustym obrazie.
Dla dwóch częściowych izomorfizmów z Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} w Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} piszemy gdy oraz dla wszystkich to jest wtedy, gdy jest zawarte jako zbiór w }}
Definicja
naturalną. Dwie struktury relacyjne tej samej sygnatury są \textit{-izomorficzne}, co oznaczamy Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong_{m}\strB,} gdy istnieje rodzina Parser nie mógł rozpoznać (błąd składni): {\displaystyle \{I_n | n\leq m\}} w której każdy jest niepustym zbiorem częściowych izomorfizmów z Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} w Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB,} oraz spełniająca następujące dwa warunki:
\begin{description} \item[Tam] Dla każdego oraz każdego istnieje takie , że oraz \item[Z powrotem] Dla każdego oraz każdego istnieje takie , że oraz \end{description}
Samą rodzinę Parser nie mógł rozpoznać (błąd składni): {\displaystyle \{I_n | n\leq m\}} nazywamy wówczas \textit{-izomorfizmem} struktur Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} i Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} , co oznaczamy Parser nie mógł rozpoznać (błąd składni): {\displaystyle \{I_n | n\leq m\}:\strA\cong_m\strB.}
Nieformalne wyjaśnienie jest takie: to zbiór częściowych izomorfizmów, które mogą być rozszerzone -krotnie o dowolne elementy w dziedzinie i obrazie, a kolejne rozszerzenia leżą w
Definicja
\rm
Dwie struktury relacyjne tej samej sygnatury są \textit{skończenie izomorficzne}, symbolicznie Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong_{fin}\strB,} gdy istnieje
rodzina </math>\{I_n
Fakt
- Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong\strB,} to Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong_{fin}\strB.}
- Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong_{fin}\strB} oraz nośnik Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} jest
zbiorem skończonym, to Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong\strB.}
Dowód
Definicja
Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} i Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} tej samej sygnatury są \textit{elementarnie równoważne}, co zapisujemy symbolicznie Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\equiv\strB,} gdy dla każdego zdania Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} logiki pierwszego rzędu nad tą samą sygnaturą, Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\models\var\varphi} wtedy i tylko wtedy, gdy Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB\models\var\varphi.}
Dwie struktry Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} i Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} tej samej sygnatury są \textit{-elementarnie równoważne}, symbolicznie Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\equiv_m\strB,} gdy dla każdego zdania Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} logiki pierwszego rzędu nad tą samą sygnaturą, o randze kwantyfikatorowej nie przekraczającej , zachodzi Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\models\var\varphi} wtedy i tylko wtedy, gdy Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB\models\var\varphi.}
Fakt
gdy dla każdego naturalnego zachodzi Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong_m\strB} .
Dowód
Twierdzenie
Niech będzie dowolną sygnaturą relacyjną zawierającą skończenie wiele symboli, oraz niech Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,\strB} będą dowolnymi strukturami nad
- Dla każdego zachodzi równoważność: Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong_m\strB}
wtedy i tylko wtedy gdy Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\equiv_m\strB} .
- Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong_{fin}\strB} wtedy i tylko wtedy gdy
Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\equiv\strB} .
Dowód
\def\blank{\hbox{\sf Bdowodnimy tylko z lewej do prawej strony. Dowód w stronę
przeciwną jest bardziej zawiły technicznie, a w dodatku ta \rightarrowlikacja jest rzadko\boldsymbol{s}}\def\blank{\hbox{\sf Bżywana w praktyce. Wyraża za to istotną z metodologicznego punktu widzenia informację: jeśli dwie struktury są
- elementarnie równoważne, to fakt ten można na pewno\boldsymbol{s}}\def\blank{\hbox{\sf Bdowodnić
posługując się metodą Fra\"{\i}ss\'e, choć oczywiście nie ma gwarancji, że będzie to metoda najprostsza.
Ustalmy . Dowód tego, że z Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong_m\strB} wynika Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\equiv_m\strB} sprowadza się do wykazania następującego faktu za pomocą indukcji ze względu na budowę Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} :
\begin{quote} Niech Parser nie mógł rozpoznać (błąd składni): {\displaystyle \{I_n | n\leq m\''} będzie rodziną o której mowa w definicji Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong_m\strB} , niech Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} będzie formułą o co najwyżej zmiennych wolnych bez\boldsymbol{s}}\def\blank{\hbox{\sf Btraty ogólności niech będą to i spełniającą Parser nie mógł rozpoznać (nieznana funkcja „\QR”): {\displaystyle \QR \var\varphi \leq n\leq m} oraz niech Wówczas dla dowolnych następujące dwa warunki są równoważne:} \[\strA,x_1:a_1,\dots,x_r:a_r\models\var\varphi\] \[\strB,x_1:g a_1 ,\dots,x_r:g a_r \models\var\varphi.\]\end{quote}
Dla formuł atomowych, powyższa teza wynika wprost z faktu, że jest częściowym izomorfizmem przypomnijmy że w sygnaturze nie ma symboli funkcyjnych i co za tym idzie jedynymi termami są zmienne .
Gdy Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} ma postać to mamy następujący ciąg równoważnych warunków:
- Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,x_1:a_1,\dots,x_r:a_r\models\psi\to\xi}
- Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,x_1:a_1,\dots,x_r:a_r\not\models\psi} lub
Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,x_1:a_1,\dots,x_r:a_r\models\xi}
- Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,x_1:g a_1 ,\dots,x_r:g a_r \not\models\psi} lub
Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,x_1:g a_1 ,\dots,x_r:g a_r \models\xi}
- Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,x_1:g a_1 ,\dots,x_r:g a_r \models\psi\to\xi,}
przy czym druga równoważność wynika z założenia indukcyjnego, a pierwsza i trzecia z definicji semantyki.
Gdy </math>\var\varphiParser nie mógł rozpoznać (błąd składni): {\displaystyle ma postać } \forall x \psi,Parser nie mógł rozpoznać (błąd składni): {\displaystyle to, jako że } x_{r+1}\notin FV \var\varphi \models \forall x\psi
\leftrightarrow \forall x_{r+1} \psi x_{r+1}/x </math> patrz Fakt
#alfa-konw , możemy bez\boldsymbol{s}}\def\blank{\hbox{\sf Btraty ogólności założyć, że Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} ma postać Z założenia Parser nie mógł rozpoznać (nieznana funkcja „\QR”): {\displaystyle \QR \var\varphi \leq n} wynika, że Parser nie mógł rozpoznać (nieznana funkcja „\QR”): {\displaystyle \QR \psi \leq n-1} . Mamy teraz następujący ciąg równoważnych warunków:
- Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,x_1:a_1,\dots,x_r:a_r \models\var\varphi}
- Dla każdego zachodzi
Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,x_1:a_1,\dots,x_r:a_r,x_{r+1}:a \models\psi}
- Dla każdego istnieje takie , że
oraz
Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,x_1:a_1,\dots,x_r:a_r,x_{r+1}:a \models\psi}
- Dla każdego istnieje takie , że
oraz
Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB,x_1:g a_1 ,\dots,x_r:g a_r ,x_{r+1}:h a \models\psi}
- Dla każdego istnieje takie , że
oraz
Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB,x_1:g a_1 ,\dots,x_r:g a_r ,x_{r+1}:b \models\psi}
- Dla każdego zachodzi
Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB,x_1:g a_1 ,\dots,x_r:g a_r ,x_{r+1}:b \models\psi}
- Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB,x_1:g a_1 ,\dots,x_r:g a_r \models\var\varphi.}
Równoważności druga i czwarta zachodzą na mocy warunków Tam i
Z powrotem, trzecia na mocy założenia indukcyjnego, a pozostałe
na mocy definicji spełniania.
}}
Pokażemy teraz pierwszy przykład inherentnego ograniczenia logiki pierwszego rzędu.
Fakt
Jeśli Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,\strB} są dwoma skończonymi liniowymi porządkami o mocach większych niż to Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\equiv_m\strB.}
Dowód
\infty&\text{wpp.} \end{cases} \]
Niech dla będzie zbiorem wszystkich częściowych izomorfizmów </math>g\strA\strBParser nie mógł rozpoznać (błąd składni): {\displaystyle takich, że } \{\langle 0,0\rangle,\langle N,M\rangle\}\subseteq g</math> oraz dla wszystkich Oczywiście </math>I_k\neq \emptyset\{\langle 0,0\rangle,\langle N,M\rangle\}\in I_k.</math>
Pokazujemy własność Tam} dla rodziny Parser nie mógł rozpoznać (błąd składni): {\displaystyle \{I_k | k\leq m\'''} . Niech Niech Mamy wskazać w częściowy izomorfizm taki, że
Rozróżniamy dwa przypadki:
i Jeśli istnieje takie , że , to w
jest dokładnie jeden\Delta\vdashlement , który jest tak samo położony względem jak względem oraz spełnia Kładziemy wówczas i jest wtedy częściowym izomorfizmem zachowującym odległości
ii Jeśli natomiast takiego nie ma, to niech gdzie
są najbliższymi \Delta\vdashlementami po lewej i po prawej, które należą do Wówczas co w myśl definicji oznacza, że Zatem na mocy założenia indukcyjnego także Istnieje więc takie, że \mbox{},
i wówczas kładąc \boldsymbol{s
\def\blank{\hbox{\sf Bzyskujemy żądane rozszerzenie.
}}
Przykład powyższy wskazuje na kilka istotnych ograniczeń logiki pierwszego rzędu. Po pierwsze, nie da się żadnym zdaniem zdefiniować nawet tak prostego pojęcia jak ,,porządek liniowy o parzystej liczbie elementów, i to bez względu na to, jak byśmy je rozumieli dla modeli nieskończonych. Istotnie, zdanie które miałoby definiować taką własność musiałoby mieć jakąś rangę kwantyfikatorową, powiedzmy . Jednak w myśl poprzedniego twierdzenia, porządki o mocach i są -elementarnie równoważne i nasze hipotetyczne zdanie jest albo prawdziwe w obu, albo fałszywe w obu, podczas gdy powinno być w jednym fałszywe, a w drugim prawdziwe.
Drugim ograniczeniem jest fakt, że każda specyfikacja porządku
liniowego o mocy w logice pierwszego rzędu musi z konieczności
mieć rangę kwantyfikatorową co najmniej a więc sugeruje
algorytm sprawdzenia, czy dany obiekt mocy istotnie spełnia tę
specyfikację, którego czas działania ma rząd wielkości
co jest wynikiem fatalnym.\footnote{Na szczęście znamy lepsze
algorytmy wykonujące to zadanie.} Bierze się to stąd, że prawdziwość
zdania o randze kwantyfikatorowej sprawdza się w danej skończonej
strukturze za pomocą zagnieżdżonych pętli, z których każda
przegląda cały nośnik struktury i odpowiada jednemu
kwantyfikatorowi.
Gra Ehrenfeuchta
Charakteryzacja Fra\"{\i}ss\'e jest dość skomplikowana i odpychająca w bezpośrednim\boldsymbol{s}}\def\blank{\hbox{\sf Bżyciu. W praktyce jej popularność ogromnie zwiększyło podanie przez Andrzeja Ehrenfeuchta jej równoważnego opisu w terminach dwuosobowej gry, którą teraz zdefiniujemy. Gra ta doskonale sprawdza się w rozumowaniach intuicyjnych. Praktyczne doświadczenie wskazuje, że próby napisania bardzo formalnego dowodu przy\boldsymbol{s}}\def\blank{\hbox{\sf Bżyciu gry kończą się zwykle wskazaniem rodziny zbiorów częściowych izomorfizmów w duchu Fra\"{\i}ss\'e.
Niech będzie sygnaturą relacyjną i niech Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,\strB} będą strukturami sygnatury
Dla\boldsymbol{s}}\def\blank{\hbox{\sf Bproszczenia zakładamy, że \bigbreak
Definicja
Definicja powyższa dopuszcza powtarzanie ruchów przez obu graczy, czyli wybieranie\Delta\vdashlementów, które poprzednio były już wybrane. Jest to dogodne, gdyż\boldsymbol{s}}\def\blank{\hbox{\sf Bpraszcza definicję. Gdybyśmy bowiem zakazali tego, to albo niemożliwe byłoby rozegranie gry Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle G_m \strA,\strB } gdy choć jedna ze struktur ma moc mniejszą niż albo trzeba by było wprowadzić w definicji specjalny warunek służący do rozstrzygania zwycięstwa w sytuacjach, gdy brak możliwości dalszych ruchów.
W praktyce jednak w dowodach prawie nigdy nie rozpatruje się takich ruchów, gdyż jest oczywiste, że wykonanie takiego posunięcia przez gracza I nie przybliża go do zwycięstwa, zaś gdy wykona je gracz II mimo że nie zrobił tego gracz I, powoduje to jego natychmiastową przegraną.
Twierdzenie
- Gracz II ma strategię wygrywającą w grze Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle G_m \strA,\strB } wtedy i tylko
wtedy, gdy Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong_{m}\strB.}
- Gracz II ma dla każdego strategię wygrywającą w grze
Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle G_m \strA,\strB } wtedy i tylko wtedy, gdy Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\cong_{fin}\strB.}
Dowód
Poniższe twierdzenie ilustruje, w jaki sposób gra może zostać wykorzystana dla wskazania ograniczeń możliwości logiki pierwszego rzędu.
Twierdzenie
<span id="
W myśl Twierdzenia #ehrenfeucht należy pokazać, że dla każdego gracz II ma strategię wygrywającą w grze Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle G_m \strA,\strB .} Opiszemy teraz tę strategię. Jej postać nie zależy od liczby rund do rozegrania. Pokażemy też, że jeśli po zakończeniu poprzedniej rundy warunek wygrywający dla gracza II był spełniony, to po wykonaniu ruchu zgodnie ze wskazaną strategią pozostanie on nadal spełniony. Wówczas na mocy zasady indukcji po rozegraniu dowolnej ilości rund, w których gracz II będzie się stosował do tej strategii, pozostanie on zwycięzcą.
Zauważmy, że warunek o częściowym izomorfizmie w naszej sytuacji oznacza tyle, że zbiory i elementów wybranych w każdej ze struktur, po posortowaniu rosnąco zgodnie z porządkiem odpowiednio Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \leq^\strA} oraz Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \leq^\strB} prowadzą do identycznych ciągów indeksów swoich oznaczeń. Dokładnie, jeśli Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle a_{i_1}<^\strA a_{i_2}<^\strA \dots<^\strA a_{i_k}} i Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle b_{j_1}<^\strB b_{j_2}<^\strB \dots<^\strB b_{j_k}} , to zachodzą równości dla
- Na pierwszy ruch gracza I gracz II odpowiada w dowolny sposób.
Przed tą rundą nie było wybranych\Delta\vdashlementów, czyli przekształcenie opisane w definicji gry było przekształceniem pustym, które na mocy konwencji jest częściowym izomorfizmem. Po wykonaniu ruchu zgodnie ze strategią ciągi indeksów w obu strukturach są oczywiście identyczne.
- We wszystkich kolejnych rundach gracz II określa swój ruch
następująco. Niech </math>a_{i_1}<^\strA a_{i_2}<^\strA \dots<^\strA a_{i_k}</math> i Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle b_{i_1}<^\strB b_{i_2}<^\strB \dots<^\strB b_{i_k}} będą
identycznymi na mocy założenia indukcyjnego ciągami indeksów przed
wykonaniem tego ruchu. Ze względu na symetrię sytuacji, możemy bez \boldsymbol{s" style="font-variant:small-caps">Dowód
\def\blank{\hbox{\sf Btraty ogólności założyć, że gracz I wybiera strukturę Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} . Może
symbolem oznaczyć:
- Element mniejszy od Wówczas gracz II
wybiera\Delta\vdashlement mniejszy od w Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} , który istnieje na mocy założenia, że w Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} nie ma\Delta\vdashlementu najmniejszego. Widać, że nowe ciągi indeksów pozostaną równe.
- Element większy od Wówczas gracz II wybiera\Delta\vdashlement
większy od w Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} , który istnieje na mocy założenia, że w Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} nie ma\Delta\vdashlementu ostatniego. Widać, że także teraz nowe ciągi indeksów pozostaną równe.
- Element </math>aParser nie mógł rozpoznać (błąd składni): {\displaystyle spełniający } a_{i_{\ell}}<^\strA a<^\strA
a_{i_{\ell+1}}</math> dla pewnego W Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} istnieje\Delta\vdashlement spełniający Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle b_{i_{\ell}}<^\strB b<^\strB b_{i_{\ell+1}}} , gdyż Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} jest porządkiem gęstym. Gracz II wybiera taki\Delta\vdashlement i również w tym wypadku widać, że nowe ciągi indeksów pozostaną równe.
Na tym dowód istnienia strategii wygrywającej dla gracza II jest zakończony. }}
Z powyższego wynika między innymi, że </math>\langle \mathbb{R},\leq\rangle\equiv\langle \mathbb{Q},\leq\rangle.</math> Zatem nie ma zdania logiki pierwszego rzędu, które definiuje pojęcie porządku ciągłego tzn. takiego, w którym wszystkie niepuste ograniczone podzbiory mają kres górny i kres dolny , bo musiałoby ono być prawdziwe w pierwszej ze struktur, a fałszywe w drugiej.
Definicja
\strA\in\K\}</math>
teoria klasy struktur Parser nie mógł rozpoznać (nieznana funkcja „\K”): {\displaystyle \K} albo
Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle '''Th} \strA = \{\var\varphi\ |\ \strA\models\var\varphi\'''}
teoria modelu Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} . Teorię
nazywamy \textit{zupełną}, gdy dla każdego zdania Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi,} dokładnie jedno ze zdań Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} i Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \lnot\var\varphi} należy do
Zbiór zdań prawdziwych w\boldsymbol{s\def\blank{\hbox{\sf Bstalonym modelu jest oczywiście zawsze
teorią zupełną. }}
Wniosek
Teoria klasy wszystkich porządków liniowych, gęstych, bez\Delta\vdashlementu pierwszego i ostatniego jest zupełna.
Dowód
\subsection*{Ćwiczenia}\begin{small}
Wykazać, że dla dostatecznie dużych istnieje zdanie o randze kwantyfikatorowej definiujące porządek liniowy o mocy
Adaptując dowód Faktu #qq\boldsymbol{s}}\def\blank{\hbox{\sf Bdowodnić, że struktury Parser nie mógł rozpoznać (błąd składni): {\displaystyle \<\{1-1/n | n=1,2,\dots\},\leq\>} oraz Parser nie mógł rozpoznać (błąd składni): {\displaystyle \<\bigcup_{n=1}^\infty\{1-1/n,1+1/n,3-1/n\},\leq\>} , gdzie jest w obu wypadkach standardowym porządkiem liczb wymiernych, są elementarnie równoważne.
Wywnioskować stąd, że pojęcie dobrego porządku nie jest wyrażalne w logice pierwszego rzędu. Zupełnie inny dowód tego faktu poznamy w Rozdziale #zwarciig\leftrightarrowwi.
- Niech będzie jednoargumentowym symbolem relacyjnym.
Udowodnić, że klasa wszystkich takich struktur </math>\strA=\langle A,R\rangle</math>, że , nie jest aksjomatyzowalna żadnym zbiorem zdań pierwszego rzędu.
- Udowodnić, że klasa wszystkich skończonych lub nieskończonych grafów
Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA=\langle A,E\rangle,} w których istnieją dwa wierzchołki o równych sobie, skończonych stopniach, nie jest aksjomatyzowalna żadnym zdaniem pierwszego rzędu.
- Udowodnić, że klasa wszystkich skończonych lub nieskończonych grafów
Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA=\langle A,E\rangle,} których każdy skończony podgraf jest planarny, nie jest aksjomatyzowalna żadnym zdaniem pierwszego rzędu.
- Pokazać, że klasa wszystkich relacji równoważności, których
wszystkie skończone klasy abstrakcji mają parzystą moc, nie jest aksjomatyzowalna żadnym zdaniem pierwszego rzędu.
Dane są dwie struktury relacyjne </math>\strA=\langle U,R^\strA\rangle</math> i Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB=\langle U,R^\strB\rangle} nad sygnaturą złożoną z jednego dwuargumentowego symbolu relacyjnego. Ich nośnikiem jest , relacja Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle R^\strA x,y } zachodzi \wtw, gdy , a relacja Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle R^\strB x,y } \wtw, gdy
Ustalić, jaką minimalną rangę kwantyfikatorową ma zdanie Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} takie, że Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\models\var\varphi} i Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB\not\models\var\varphi.}
- Dane są dwie sześcioelementowe
struktury relacyjne Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} i Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB} nad sygnaturą złożoną z jednego dwuargumentowego symbolu relacyjnego. Struktury są narysowane poniżej jako grafy skierowane:
Parser nie mógł rozpoznać (nieznana funkcja „\begi”): {\displaystyle \begi\prooftree array \justifies c|c \using \textrm{ W }\endprooftree \xymatrix { *{\ast} \ar@{<->}[r] \ar@{<->}[d] \ar@{<->}[dr] & *{\ast} \ar@{<->}[d] \ar@{<->}[l] \ar@{<->}[dl] & *{\ast} & \\ *{\ast} \ar@{<->}[r] & *{\ast} & *{\ast} & *{\relax} } & \xymatrix { *{\ast} \ar@{<->}[d] \ar@{<->}[dr] & *{\ast} & *{\ast} & \\ *{\ast} \ar@{<->}[r] & *{\ast} & *{\ast} & *{\relax} } \end{array} }
Ustalić, jaką minimalną rangę kwantyfikatorową ma zdanie Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} takie, że Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA\models\var\varphi} i Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle \strB\not\models\var\varphi.}
\end{small}