Logika dla informatyków/Ograniczenia logiki pierwszego rzędu: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
Linek z wykladu 8 do tw. 4.13. Nazwa linku "Cantoro" | Linek z wykladu 8 do tw. 4.13. Nazwa linku "Cantoro" | ||
==Ograniczenia logiki pierwszego rzędu== | |||
\setcounte\prooftree twierdzenie \justifies 0 \using \textrm{\begin{eqnarray*}W\end{eqnarray*}}\endprooftree | |||
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||| | |||
{{ | \textit{Rangę kwantyfikatorową} <math>\QR\begin{eqnarray*}\var\varphi\end{eqnarray*}</math> formuły <math>\var\varphi</math> | ||
definiujemy jak następuje: | |||
*<math>\QR\begin{eqnarray*}\bot\end{eqnarray*}=\QR\begin{eqnarray*}t_1=t_2\end{eqnarray*}=\QR\begin{eqnarray*}r\begin{eqnarray*}t_1,\dots,t_k\end{eqnarray*}\end{eqnarray*}=0</math> dla dowolnych | |||
<math>QR | termów <math>t_1,\dots, t_k</math> oraz <math>r\in \Sigma^R_k.</math> | ||
*<math>\QR\begin{eqnarray*}\var\varphi\to \psi\end{eqnarray*}=\max\begin{eqnarray*}\QR\begin{eqnarray*}\var\varphi\end{eqnarray*},\QR\begin{eqnarray*}\psi\end{eqnarray*}\end{eqnarray*}</math>. | |||
*<math>\QR\begin{eqnarray*}\forall x\var\varphi\end{eqnarray*}=1+\QR\begin{eqnarray*}\var\varphi\end{eqnarray*}.</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 | |||
formuły <math>\var\varphi.</math> Parametr ten ma następujące znaczenie: jeśli | |||
struktura <math>\strA</math> ma <math>n</math>\Delta\vdashlementó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\begin{eqnarray*}\var\varphi\end{eqnarray*}},</math> gdy\boldsymbol{s}}\def\blank{\hbox{\sf Bżyjemy | |||
naturalnego algorytmu do wykonania tego zadania, który dla każdego | |||
kwantyfikatora w formule przegląda wszystkie\Delta\vdashlementy struktury. | |||
Teraz możemy wyjaśnić, dlaczego nie dopuszczamy symboli funkcyjnych w | |||
sygnaturze. Otóż ich obecność zakłóca potrzebne nam własności funkcji | |||
<math>QR.</math> Tytułem przykładu, formuła <math>R\begin{eqnarray*}x,f\begin{eqnarray*}f\begin{eqnarray*}x\end{eqnarray*}\end{eqnarray*}\end{eqnarray*}</math> jest atomowa i | |||
jej ranga kwantyfikatorowa powinna wynosić <math>0</math>. Tymczasem | |||
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 | |||
\begin{eqnarray*}F\begin{eqnarray*}x,y\end{eqnarray*}\land F\begin{eqnarray*}y,z\end{eqnarray*}\land R\begin{eqnarray*}x,z\end{eqnarray*}\end{eqnarray*},</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. \Rightarrow właśnie jest przyczyna, dla której funkcje wykluczamy | |||
z rozważań. | |||
===Charakteryzacja Fra\"{\i=== | |||
{{definicja||| | |||
relacyjną oraz <math>\emptyset\neq B\subseteq A,</math> to struktura <math>\strA_{|B}</math> | |||
tej samej sygnatury <math>\Sigma</math> co <math>\strA</math>, nazywana \textit{podstrukturą | |||
indukowaną przez <math>B</math> w <math>\strA,</math>} ma nośnik <math>B,</math> zaś dla każdego | |||
<math>r\in\Sigma^R_n</math> | |||
<!--% --> | |||
\[r^{\strA_{|B}}=r^\strA\cap B^n.\] | |||
}} | |||
{{definicja||| | |||
strukturami relacyjnymi tej samej sygnatury <math>\Sigma,</math> ponadto niech | |||
<math>A'\subseteq A</math> i <math>B'\subseteq B</math>. Jeśli funkcja <math>h:A'\to B'</math> jest | |||
izomorfizmem podstruktur indukowanych </math>h:\strA_{|A'}\cong | |||
\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\begin{eqnarray*}h\end{eqnarray*}=A'</math>, a | |||
\textit{obraz} to <math>rg\begin{eqnarray*}h\end{eqnarray*}=B'.</math> | |||
Na zasadzie konwencji\boldsymbol{s}}\def\blank{\hbox{\sf Bmawiamy się, że <math>\emptyset</math> jest częściowym | |||
izomorfizmem z <math>\strA</math> w <math>\strB</math> o pustej dziedzinie i pustym obrazie. | |||
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\begin{eqnarray*}g\end{eqnarray*}\subseteq dom\begin{eqnarray*}h\end{eqnarray*}</math> oraz <math>g\begin{eqnarray*}a\end{eqnarray*}=h\begin{eqnarray*}a\end{eqnarray*}</math> dla | |||
wszystkich <math>a\in dom\begin{eqnarray*}g\end{eqnarray*},</math> to jest wtedy, gdy <math>g</math> jest zawarte jako | |||
zbiór w <math>h.</math> | |||
}} | |||
{{definicja||| | |||
naturalną. Dwie struktury relacyjne tej samej sygnatury są | |||
\textit{<math>m</math>-izomorficzne}, co oznaczamy <math>\strA\cong_{m}\strB,</math> gdy istnieje | |||
rodzina <math>\{I_n | n\leq m\}</math> w której każdy <math>I_n</math> jest niepustym zbiorem | |||
częściowych izomorfizmów z <math>\strA</math> w <math>\strB,</math> oraz spełniająca | |||
następujące dwa warunki: | |||
Dla | \begin{description} | ||
\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\begin{eqnarray*}g\end{eqnarray*}.</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\begin{eqnarray*}g\end{eqnarray*}.</math> | |||
\end{description} | |||
Samą rodzinę <math>\{I_n | n\leq m\}</math> nazywamy wówczas | |||
\textit{<math>m</math>-izomorfizmem} struktur <math>\strA</math> i <math>\strB</math>, co oznaczamy | |||
<math>\{I_n | n\leq m\}:\strA\cong_m\strB.</math> | |||
}} | |||
{{ | Nieformalne wyjaśnienie jest takie: <math>I_{n}</math> to zbiór częściowych | ||
izomorfizmów, które mogą być rozszerzone <math>n</math>-krotnie o dowolne | |||
elementy w dziedzinie i obrazie, a kolejne rozszerzenia leżą w | |||
<math>I_{n-1},\dots,I_0.</math> | |||
{{definicja||| | |||
\rm | |||
}} | Dwie struktury relacyjne tej samej sygnatury są \textit{skończenie | ||
izomorficzne}, symbolicznie <math>\strA\cong_{fin}\strB,</math> gdy istnieje | |||
rodzina </math>\{I_n | n\in\omega\}<math>, taka, że każda podrodzina </math>\{I_n | n\leq | |||
m\}</math> jest <math>m</math>-izomorfizmem. | |||
Jeśli <math>\{I_n | n\leq m\}</math> ma powyższe własności, to piszemy | |||
<math>\{I_n | n\leq m\}:\strA\cong_{fin}\strB</math>, a samą rodzinę nazywamy | |||
\textit{skończonym izomorfizmem}. | |||
}} | |||
{{ | {{fakt||| | ||
\ | *Jeśli <math>\strA\cong\strB,</math> to <math>\strA\cong_{fin}\strB.</math> | ||
*Jeśli <math>\strA\cong_{fin}\strB</math> oraz nośnik <math>\strA</math> jest | |||
zbiorem skończonym, to <math>\strA\cong\strB.</math> | |||
}} | |||
{{dowod|| | |||
Ćwiczenie. | |||
}} | |||
{{definicja||| | |||
{ | <math>\strA</math> i <math>\strB</math> tej samej sygnatury są \textit{elementarnie | ||
równoważne}, co zapisujemy symbolicznie <math>\strA\equiv\strB,</math> gdy dla | |||
każdego zdania <math>\var\varphi</math> logiki pierwszego rzędu nad tą samą sygnaturą, | |||
<math>\strA\models\var\varphi</math> wtedy i tylko wtedy, gdy <math>\strB\models\var\varphi.</math> | |||
Dwie struktry <math>\strA</math> i <math>\strB</math> tej samej sygnatury są | |||
\textit{<math>m</math>-elementarnie równoważne}, symbolicznie | |||
<math>\strA\equiv_m\strB,</math> gdy dla każdego zdania <math>\var\varphi</math> logiki | |||
pierwszego rzędu nad tą samą sygnaturą, o randze kwantyfikatorowej nie | |||
przekraczającej <math>m</math>, zachodzi <math>\strA\models\var\varphi</math> wtedy i tylko | |||
wtedy, gdy <math>\strB\models\var\varphi.</math> | |||
}} | |||
{{fakt||| | |||
gdy dla każdego naturalnego <math>m</math> zachodzi <math>\strA\cong_m\strB</math>. | |||
}} | |||
{{dowod|| | |||
Wynikanie z lewej do prawej jest oczywiste. Załóżmy teraz, że dla | |||
każdego <math>m</math> istnieje rodzina <math>\{I^m_n | n\leq m\}</math> spełniająca warunki | |||
z definicji relacji <math>\cong_m.</math> Rozważmy rodzinę <math>\{J_n | n\in\omega\},</math> | |||
gdzie <math>J_n=\bigcup_{m\in\omega}I_n^m.</math> Bezpośrednie sprawdzenie | |||
pokazuje natychmiast, że spełnia ona warunki definicji relacji | |||
<math>\cong_{fin}.</math> | |||
}} | |||
{{twierdzenie||fraisse| | |||
Niech <math>\Sigma</math> będzie dowolną sygnaturą relacyjną zawierającą | |||
skończenie wiele symboli, oraz niech <math>\strA,\strB</math> będą dowolnymi | |||
strukturami nad <math>\Sigma.</math> | |||
*Dla każdego <math>m\in\N</math> zachodzi równoważność: <math>\strA\cong_m\strB</math> | |||
wtedy i tylko wtedy gdy <math>\strA\equiv_m\strB</math>. | |||
*<math>\strA\cong_{fin}\strB</math> wtedy i tylko wtedy gdy | |||
<math>\strA\equiv\strB</math>. | |||
{{ | }} | ||
{{dowod|| | |||
Jest oczywiste, że druga równoważnośc wynika z pierwszej. Pierwszą z | |||
kolei\boldsymbol{s}}\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ą | |||
\begin{eqnarray*}<math>m</math>-\end{eqnarray*}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 <math>m\in \N</math>. Dowód tego, że z <math>\strA\cong_m\strB</math> wynika | |||
<math>\strA\equiv_m\strB</math> sprowadza się do wykazania następującego | |||
faktu za pomocą indukcji ze względu na budowę <math>\var\varphi</math>: | |||
{{ | \begin{quote} | ||
''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> | |||
zmiennych wolnych \begin{eqnarray*}bez\boldsymbol{s}}\def\blank{\hbox{\sf Btraty ogólności niech będą to <math>x_1,\dots,x_r</math>\end{eqnarray*} | |||
i spełniającą <math>\QR\begin{eqnarray*}\var\varphi\end{eqnarray*}\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\begin{eqnarray*}g\end{eqnarray*}</math> 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\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*}\models\var\varphi.\]\end{quote} | |||
Dla formuł atomowych, powyższa teza wynika wprost z faktu, że <math>g</math> jest | |||
częściowym izomorfizmem \begin{eqnarray*}przypomnijmy że w sygnaturze nie ma symboli | |||
funkcyjnych i co za tym idzie jedynymi termami są zmienne\end{eqnarray*}. | |||
Gdy <math>\var\varphi</math> ma postać <math>\psi\to\xi,</math> to mamy następujący ciąg | |||
równoważnych warunków: | |||
*<math>\strA,x_1:a_1,\dots,x_r:a_r\models\psi\to\xi</math> | |||
*<math>\strA,x_1:a_1,\dots,x_r:a_r\not\models\psi</math> lub | |||
<math>\strA,x_1:a_1,\dots,x_r:a_r\models\xi</math> | |||
*<math>\strA,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*}\not\models\psi</math> lub | |||
<math>\strA,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*}\models\xi</math> | |||
*<math>\strA,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*}\models\psi\to\xi,</math> | |||
przy czym druga równoważność wynika z założenia indukcyjnego, a | |||
pierwsza i trzecia z definicji semantyki. | |||
Gdy </math>\var\varphi<math> ma postać </math>\forall x \psi,<math> to, jako że </math>x_{r+1}\notin | |||
FV\begin{eqnarray*}\var\varphi\end{eqnarray*}<math> i co za tym idzie </math>\models \begin{eqnarray*}\forall x\psi | |||
\end{eqnarray*}\leftrightarrow \forall x_{r+1} \psi\begin{eqnarray*}x_{r+1}/x\end{eqnarray*}</math> \begin{eqnarray*}patrz Fakt | |||
[[#alfa-konw]]\end{eqnarray*}, 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\begin{eqnarray*}\var\varphi\end{eqnarray*}\leq n</math> | |||
wynika, że <math>\QR\begin{eqnarray*}\psi\end{eqnarray*}\leq n-1</math>. Mamy teraz następujący ciąg | |||
równoważnych warunków: | |||
*<math>\begin{eqnarray*}\strA,x_1:a_1,\dots,x_r:a_r\end{eqnarray*}\models\var\varphi</math> | |||
*Dla każdego <math> | *Dla każdego <math>a\in A</math> zachodzi | ||
* | <math>\begin{eqnarray*}\strA,x_1:a_1,\dots,x_r:a_r,x_{r+1}:a\end{eqnarray*}\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> | |||
<math>a\in dom\begin{eqnarray*}h\end{eqnarray*}</math> | |||
oraz | |||
<math>\begin{eqnarray*}\strA,x_1:a_1,\dots,x_r:a_r,x_{r+1}:a\end{eqnarray*}\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> | |||
<math>a\in dom\begin{eqnarray*}h\end{eqnarray*}</math> | |||
oraz | |||
<math>\begin{eqnarray*}\strB,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*},x_{r+1}:h\begin{eqnarray*}a\end{eqnarray*}\end{eqnarray*}\models\psi</math> | |||
*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\begin{eqnarray*}h\end{eqnarray*}</math> oraz | |||
<math>\begin{eqnarray*}\strB,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*},x_{r+1}:b\end{eqnarray*}\models\psi</math> | |||
*<math>\ | *Dla każdego <math>b\in B</math> zachodzi | ||
<math>\begin{eqnarray*}\strB,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*},x_{r+1}:b\end{eqnarray*}\models\psi</math> | |||
*<math>\begin{eqnarray*}\strB,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*}\end{eqnarray*}\models\var\varphi.</math> | |||
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||qq| | |||
Jeśli <math>\strA,\strB</math> są dwoma skończonymi liniowymi porządkami o mocach | |||
większych niż <math>2^m,</math> to <math>\strA\equiv_m\strB.</math> | |||
}} | |||
{{dowod|| | |||
<math>A=\{0,\dots,N\},</math> <math>B=\{0,\dots,M\},</math> przy czym <math>2^m<N\leq M</math>, a | |||
porządek jest porządkiem naturalnym. Dowód przeprowadzamy | |||
wykorzystując Twierdzenie [[#fraisse]], czyli w istocie wykazujemy, | |||
że <math>\strA\cong_m\strB.</math> | |||
Dla danego <math>k\leq m</math> określmy ,,odległość'' <math>d_k</math> pomiędzy\Delta\vdashlementami | |||
naszych struktur jak następuje: | |||
<!--% --> | |||
\[d_k\begin{eqnarray*}a,b\end{eqnarray*}=\begin{cases} | |||
|b-a|&\text{jeśli <math>|b-a|< 2^k</math>}\\ | |||
\infty&\text{wpp.} | |||
\end{cases} | |||
\] | |||
Niech <math>I_k</math> dla <math>k\leq m </math> będzie zbiorem wszystkich częściowych | |||
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 | |||
<math>d_k\begin{eqnarray*}a,b\end{eqnarray*}=d_k\begin{eqnarray*}g\begin{eqnarray*}a\end{eqnarray*},g\begin{eqnarray*}b\end{eqnarray*}\end{eqnarray*}</math> dla wszystkich <math>a,b\in dom\begin{eqnarray*}g\end{eqnarray*}.</math> Oczywiście | |||
</math>I_k\neq \emptyset<math> bo </math>\{\langle 0,0\rangle,\langle | |||
N,M\rangle\}\in I_k.</math> | |||
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> | |||
częściowy izomorfizm <math>h\supseteq g</math> taki, że <math>a\in dom\begin{eqnarray*}h\end{eqnarray*}.</math> | |||
Rozróżniamy dwa przypadki: | |||
*<math>\begin{eqnarray*}\ | \begin{eqnarray*}i\end{eqnarray*} Jeśli istnieje takie <math>b\in dom\begin{eqnarray*}g\end{eqnarray*}</math>, że <math>d_{k}\begin{eqnarray*}a,b\end{eqnarray*}<\infty</math>, to w | ||
<math>B</math> jest dokładnie jeden\Delta\vdashlement <math>a'</math>, który jest tak samo położony | |||
względem <math>g\begin{eqnarray*}b\end{eqnarray*}</math> jak <math>a</math> względem <math>b,</math> oraz spełnia | |||
<math>d_j\begin{eqnarray*}a',g\begin{eqnarray*}b\end{eqnarray*}\end{eqnarray*}=d_{j}\begin{eqnarray*}a,b\end{eqnarray*}.</math> Kładziemy wówczas <math>h\begin{eqnarray*}a\end{eqnarray*}:=a'</math> i <math>h</math> jest | |||
wtedy częściowym izomorfizmem zachowującym odległości <math>d_j.</math> | |||
\begin{eqnarray*}ii\end{eqnarray*} 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 | |||
należą do <math> dom\begin{eqnarray*}g\end{eqnarray*}.</math> Wówczas <math>d_j\begin{eqnarray*}a',a\end{eqnarray*}=d_j\begin{eqnarray*}a,a''\end{eqnarray*}=\infty,</math> co w myśl | |||
definicji <math>d_j</math> oznacza, że <math>d_{j+1}\begin{eqnarray*}a',a''\end{eqnarray*}=\infty.</math> Zatem na mocy | |||
założenia indukcyjnego także <math>d_{j+1}\begin{eqnarray*}g\begin{eqnarray*}a'\end{eqnarray*},g\begin{eqnarray*}a''\end{eqnarray*}\end{eqnarray*}=\infty.</math> Istnieje | |||
więc <math>g\begin{eqnarray*}a'\end{eqnarray*}<b<g\begin{eqnarray*}a''\end{eqnarray*}</math> takie, że \mbox{<math>d_j\begin{eqnarray*}g\begin{eqnarray*}a'\end{eqnarray*},b\end{eqnarray*}=d_j\begin{eqnarray*}b,g\begin{eqnarray*}a''\end{eqnarray*}\end{eqnarray*}=\infty</math>}, | |||
i wówczas kładąc <math>h\begin{eqnarray*}a\end{eqnarray*}:=b</math>\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 | |||
<math>q</math>. Jednak w myśl poprzedniego twierdzenia, porządki o mocach <math>2^q+1</math> i | |||
<math>2^q+2</math> są <math>q</math>-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 <math>n</math> w logice pierwszego rzędu musi z konieczności | |||
mieć rangę kwantyfikatorową co najmniej <math>\log_2 n,</math> a więc sugeruje | |||
algorytm sprawdzenia, czy dany obiekt mocy <math>m</math> istotnie spełnia tę | |||
specyfikację, którego czas działania ma rząd wielkości <math>m^{\log_2 n},</math> | |||
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 <math>q</math> sprawdza się w danej skończonej | |||
strukturze za pomocą <math>q</math> 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 <math>\Sigma</math> będzie sygnaturą relacyjną i niech <math>\strA,\strB</math> będą | |||
strukturami sygnatury <math>\Sigma.</math> | |||
Dla\boldsymbol{s}}\def\blank{\hbox{\sf Bproszczenia zakładamy, że <math>A\cap B=\emptyset.</math> \bigbreak | |||
{{definicja||| | |||
\textit{Gra Ehrenfeuchta <math>G_m\begin{eqnarray*}\strA,\strB\end{eqnarray*}</math>} jest rozgrywana przez | |||
dwóch graczy, oznaczanych I i II. Trwa ona przez <math>m</math> rund. | |||
W <math>i</math>-tej rundzie \begin{eqnarray*}<math>i=1,\dots,m</math>\end{eqnarray*} najpierw wykonuje ruch gracz I, | |||
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> | |||
jeśli z <math>B.</math> Jako drugi wykonuje ruch gracz II, który musi wybrać | |||
\Delta\vdashlement w pozostałej strukturze \begin{eqnarray*}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>\end{eqnarray*} i oznaczyć go | |||
<math>a_i</math> lub <math>b_i,</math> zależnie od tego, skąd wybierał. | |||
W ciągu <math>m</math> rund wybrane zostają\Delta\vdashlementy <math>a_1,\dots,a_m\in A</math> oraz | |||
<math>b_1,\dots,b_m\in B.</math> | |||
Gracz II wygrywa rozgrywkę, jeśli funkcja </math>h=\{\langle | |||
a_i,b_i\rangle | i=1,\dots,m\}</math> jest częściowym | |||
izomorfizmem z <math>\strA</math> w <math>\strB.</math> W przeciwnym wypadku wygrywa gracz I. | |||
{{ | Mówimy, że gracz II ma {\em strategię wygrywającą\/} w grze | ||
<math>G_m\begin{eqnarray*}\strA,\strB\end{eqnarray*}</math>, jeśli może wygrać każdą rozgrywkę, niezależnie od | |||
posunięć gracza I. | |||
}} | |||
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 <math>G_m\begin{eqnarray*}\strA,\strB\end{eqnarray*}</math> gdy choć | |||
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 | |||
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||ehrenfeucht| | ||
<math> | *Gracz II ma strategię wygrywającą w grze <math>G_m\begin{eqnarray*}\strA,\strB\end{eqnarray*}</math> wtedy i tylko | ||
wtedy, gdy <math>\strA\cong_{m}\strB.</math> | |||
*Gracz II ma dla każdego <math>m</math> strategię wygrywającą w grze | |||
<math>G_m\begin{eqnarray*}\strA,\strB\end{eqnarray*}</math> wtedy i tylko wtedy, gdy <math>\strA\cong_{fin}\strB.</math> | |||
}} | |||
{{dowod|| | |||
Ćwiczenie. | |||
}} | |||
Poniższe twierdzenie ilustruje, w jaki sposób gra może zostać | |||
wykorzystana dla wskazania ograniczeń możliwości logiki pierwszego | |||
rzędu. | |||
{{twierdzenie||Cantoro| | |||
Jeśli </math>\strA=\langle A,\leq^\strA\rangle<math> i </math>\strB=\langle | |||
B,\leq^\strB\rangle</math> są dwoma porządkami liniowymi, gęstymi, bez | |||
elementu pierwszego i ostatniego, | |||
to <math>\strA\equiv\strB.</math> | |||
}} | |||
{{dowod|| | |||
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\begin{eqnarray*}\strA,\strB\end{eqnarray*}.</math> | |||
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 <math>\{a_1,\dots,a_k\}</math> i <math>\{b_1,\dots,b_k\}</math> | |||
elementów wybranych w każdej ze struktur, po posortowaniu rosnąco | |||
zgodnie z porządkiem odpowiednio <math>\leq^\strA</math> oraz <math>\leq^\strB</math> | |||
prowadzą do identycznych ciągów indeksów swoich oznaczeń. Dokładnie, | |||
jeśli <math>a_{i_1}<^\strA a_{i_2}<^\strA \dots<^\strA a_{i_k}</math> i | |||
<math>b_{j_1}<^\strB b_{j_2}<^\strB \dots<^\strB b_{j_k}</math>, to zachodzą | |||
równości <math>i_\ell=j_\ell</math> dla <math>\ell=1,\dots,k.</math> | |||
*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 <math>b_{i_1}<^\strB b_{i_2}<^\strB \dots<^\strB b_{i_k}</math> będą | |||
\begin{eqnarray*}identycznymi na mocy założenia indukcyjnego\end{eqnarray*} ciągami indeksów przed | |||
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 | |||
symbolem <math>a_{k+1}</math> oznaczyć: | |||
**Element mniejszy od <math>a_{i_1}.</math> Wówczas gracz II | |||
wybiera\Delta\vdashlement mniejszy od <math>b_{i_1}</math> w <math>\strB</math>, który istnieje na mocy | |||
założenia, że w <math>\strB</math> nie ma\Delta\vdashlementu najmniejszego. Widać, że nowe | |||
ciągi indeksów pozostaną równe. | |||
**Element większy od <math>a_{i_k}.</math> Wówczas gracz II wybiera\Delta\vdashlement | |||
większy od <math>b_{i_k}</math> w <math>\strB</math>, który istnieje na mocy założenia, że w | |||
<math>\strB</math> nie ma\Delta\vdashlementu ostatniego. Widać, że także teraz nowe ciągi | |||
indeksów pozostaną równe. | |||
**Element </math>a<math> spełniający </math>a_{i_{\ell}}<^\strA a<^\strA | |||
a_{i_{\ell+1}}</math> dla pewnego <math>\ell.</math> W <math>\strB</math> istnieje\Delta\vdashlement <math>b</math> | |||
spełniający <math>b_{i_{\ell}}<^\strB b<^\strB b_{i_{\ell+1}}</math>, gdyż | |||
<math>\strB</math> 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 \begin{eqnarray*}tzn. takiego, w którym wszystkie niepuste ograniczone | |||
podzbiory mają kres górny i kres dolny\end{eqnarray*}, bo musiałoby ono być prawdziwe | |||
w pierwszej ze struktur, a fałszywe w drugiej. | |||
{{definicja||slmFOjof| | |||
''Teorią\/'' nazywamy dowolny zbiór zdań, zamknięty \zwn konsekwencje | |||
semantyczne, tj. taki zbiór zdań <math>\Delta</math>, że <math>\Delta\models\var\varphi</math> | |||
zachodzi tylko dla <math>\var\varphi\in\Delta</math>. Przykładem teorii jest każdy | |||
zbiór postaci <math>\{\var\varphi\ |\ \Gamma\models\var\varphi\}</math>, zwany {\it teorią | |||
aksjomatyczną\/} wyznaczoną przez <math>\Gamma</math>, czy też postaci | |||
</math>'''Th}\begin{eqnarray*}\K\end{eqnarray*}=\{\var\varphi\ |\ \strA\models\var\varphi,\ \mbox{dla każdego'''\ | |||
\strA\in\K\}</math> | |||
\begin{eqnarray*}teoria klasy struktur <math>\K</math>\end{eqnarray*} albo | |||
<math>'''Th}\begin{eqnarray*}\strA\end{eqnarray*}= \{\var\varphi\ |\ \strA\models\var\varphi\'''</math> | |||
\begin{eqnarray*}teoria modelu <math>\strA</math>\end{eqnarray*}. Teorię | |||
<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>\Delta.</math> Zbiór zdań prawdziwych w\boldsymbol{s}}\def\blank{\hbox{\sf Bstalonym modelu jest oczywiście zawsze | |||
teorią zupełną. | |||
}} | |||
{{wniosek||zupa| | |||
Teoria klasy <math>\mathcal{A}</math> wszystkich porządków liniowych, gęstych, | |||
bez\Delta\vdashlementu pierwszego i ostatniego jest zupełna. | |||
}} | |||
{{dowod|| | |||
Teoria o której mówimy nie ma modeli skończonych. W myśl Twierdzenia | |||
[[#Cantoro]] wszystkie jej modele nieskończone są\Delta\vdashlementarnie | |||
równoważne. Zatem </math>'''Th}\begin{eqnarray*}\mathcal{A'''\end{eqnarray*}='''Th'''\begin{eqnarray*}\langle | |||
\mathbb{Q},\leq\rangle\end{eqnarray*},</math> a teoria pojedynczego modelu jest zawsze | |||
zupełna. | |||
}} | |||
\subsection*{Ćwiczenia}\begin{small} | |||
#<span id="c" \> | |||
Wykazać, że dla dostatecznie dużych <math>q</math> istnieje zdanie o randze | |||
kwantyfikatorowej <math>q</math> definiujące porządek liniowy o mocy <math>2^q.</math> | |||
# | |||
Adaptując dowód Faktu [[#qq]]\boldsymbol{s}}\def\blank{\hbox{\sf Bdowodnić, że struktury | |||
<math>\<\{1-1/n | n=1,2,\dots\},\leq\></math> oraz | |||
<math>\<\bigcup_{n=1}^\infty\{1-1/n,1+1/n,3-1/n\},\leq\></math>, gdzie <math>\leq</math> 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. \begin{eqnarray*}Zupełnie inny dowód tego faktu poznamy | |||
w Rozdziale [[#zwarciig\leftrightarrowwi]].\end{eqnarray*} | |||
#Niech <math>R</math> będzie jednoargumentowym symbolem relacyjnym. | |||
Udowodnić, że klasa wszystkich takich struktur </math>\strA=\langle | |||
A,R\rangle</math>, że <math>|R|=|A- R|</math>, nie jest aksjomatyzowalna żadnym zbiorem | |||
zdań pierwszego rzędu. | |||
#Udowodnić, że klasa wszystkich \begin{eqnarray*}skończonych lub nieskończonych\end{eqnarray*} grafów | |||
<math>\strA=\langle A,E\rangle,</math> 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 \begin{eqnarray*}skończonych lub nieskończonych\end{eqnarray*} grafów | |||
<math>\strA=\langle A,E\rangle,</math> 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 <math>\strB=\langle U,R^\strB\rangle</math> | |||
nad sygnaturą złożoną z jednego dwuargumentowego symbolu | |||
relacyjnego. Ich nośnikiem jest | |||
<math>U=\{1,2,\dots,15\}</math>, relacja <math>R^\strA\begin{eqnarray*}x,y\end{eqnarray*}</math> zachodzi \wtw, gdy | |||
<math>x|y</math>, a relacja <math>R^\strB\begin{eqnarray*}x,y\end{eqnarray*}</math> \wtw, gdy <math>x\equiv y\pmod 2.</math> | |||
Ustalić, jaką minimalną rangę kwantyfikatorową ma zdanie | |||
<math>\var\varphi</math> takie, że <math>\strA\models\var\varphi</math> i <math>\strB\not\models\var\varphi.</math> | |||
#Dane są dwie sześcioelementowe | |||
struktury relacyjne <math>\strA</math> i <math>\strB</math> | |||
nad sygnaturą złożoną z jednego dwuargumentowego symbolu relacyjnego. | |||
Struktury są narysowane poniżej jako grafy skierowane: | |||
<span id=""/> <math> \begi\prooftree array \justifies c|c \using \textrm{\begin{eqnarray*}W\end{eqnarray*}}\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} | |||
</math> | |||
Ustalić, jaką minimalną rangę kwantyfikatorową ma zdanie <math>\var\varphi</math> | |||
takie, że <math>\strA\models\var\varphi</math> i <math>\strB\not\models\var\varphi.</math> | |||
Ustalić, jaką minimalną rangę kwantyfikatorową ma zdanie<math>\var\varphi</math> | |||
\end{small} | \end{small} |
Wersja z 11:14, 22 wrz 2006
Linek z wykladu 8 do tw. 4.13. Nazwa linku "Cantoro"
Ograniczenia logiki pierwszego rzędu
\setcounte\prooftree twierdzenie \justifies 0 \using \textrm{\begin{eqnarray*}W\end{eqnarray*}}\endprooftree
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
\textit{Rangę kwantyfikatorową} Parser nie mógł rozpoznać (nieznana funkcja „\QR”): {\displaystyle \QR\begin{eqnarray*}\var\varphi\end{eqnarray*}} formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi} definiujemy jak następuje:
- Parser nie mógł rozpoznać (nieznana funkcja „\QR”): {\displaystyle \QR\begin{eqnarray*}\bot\end{eqnarray*}=\QR\begin{eqnarray*}t_1=t_2\end{eqnarray*}=\QR\begin{eqnarray*}r\begin{eqnarray*}t_1,\dots,t_k\end{eqnarray*}\end{eqnarray*}=0} dla dowolnych
termów oraz
- Parser nie mógł rozpoznać (nieznana funkcja „\QR”): {\displaystyle \QR\begin{eqnarray*}\var\varphi\to \psi\end{eqnarray*}=\max\begin{eqnarray*}\QR\begin{eqnarray*}\var\varphi\end{eqnarray*},\QR\begin{eqnarray*}\psi\end{eqnarray*}\end{eqnarray*}} .
- Parser nie mógł rozpoznać (nieznana funkcja „\QR”): {\displaystyle \QR\begin{eqnarray*}\forall x\var\varphi\end{eqnarray*}=1+\QR\begin{eqnarray*}\var\varphi\end{eqnarray*}.}
Intuicyjnie Parser nie mógł rozpoznać (nieznana funkcja „\QR”): {\displaystyle \QR} to głębokość zagnieżdżenia kwantyfikatorów w formule. Jest to jedna z wielu możliwych miar stopnia komplikacji formuły Parser nie mógł rozpoznać (nieznana funkcja „\var”): {\displaystyle \var\varphi.} Parametr ten ma następujące znaczenie: jeśli struktura Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} ma \Delta\vdashlementó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 „\QR”): {\displaystyle n^{\QR\begin{eqnarray*}\var\varphi\end{eqnarray*}},} gdy\boldsymbol{s}}\def\blank{\hbox{\sf Bżyjemy naturalnego algorytmu do wykonania tego zadania, który dla każdego kwantyfikatora w formule przegląda wszystkie\Delta\vdashlementy 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 Parser nie mógł rozpoznać (błąd składni): {\displaystyle R\begin{eqnarray*}x,f\begin{eqnarray*}f\begin{eqnarray*}x\end{eqnarray*}\end{eqnarray*}\end{eqnarray*}} 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 \begin{eqnarray*}F\begin{eqnarray*}x,y\end{eqnarray*}\land F\begin{eqnarray*}y,z\end{eqnarray*}\land R\begin{eqnarray*}x,z\end{eqnarray*}\end{eqnarray*},</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. \Rightarrow 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 Parser nie mógł rozpoznać (błąd składni): {\displaystyle dom\begin{eqnarray*}g\end{eqnarray*}\subseteq dom\begin{eqnarray*}h\end{eqnarray*}} oraz Parser nie mógł rozpoznać (błąd składni): {\displaystyle g\begin{eqnarray*}a\end{eqnarray*}=h\begin{eqnarray*}a\end{eqnarray*}} dla wszystkich Parser nie mógł rozpoznać (błąd składni): {\displaystyle a\in dom\begin{eqnarray*}g\end{eqnarray*},} 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 Parser nie mógł rozpoznać (błąd składni): {\displaystyle a\in dom\begin{eqnarray*}g\end{eqnarray*}.} \item[Z powrotem] Dla każdego oraz każdego istnieje takie , że oraz Parser nie mógł rozpoznać (błąd składni): {\displaystyle b\in rg\begin{eqnarray*}g\end{eqnarray*}.} \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ą \begin{eqnarray*}-\end{eqnarray*}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 \begin{eqnarray*}bez\boldsymbol{s}}\def\blank{\hbox{\sf Btraty ogólności niech będą to \end{eqnarray*} i spełniającą Parser nie mógł rozpoznać (nieznana funkcja „\QR”): {\displaystyle \QR\begin{eqnarray*}\var\varphi\end{eqnarray*}\leq n\leq m} oraz niech Wówczas dla dowolnych Parser nie mógł rozpoznać (błąd składni): {\displaystyle a_1,\dots,a_r\in dom\begin{eqnarray*}g\end{eqnarray*}} 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\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*}\models\var\varphi.\]\end{quote}
Dla formuł atomowych, powyższa teza wynika wprost z faktu, że jest częściowym izomorfizmem \begin{eqnarray*}przypomnijmy że w sygnaturze nie ma symboli funkcyjnych i co za tym idzie jedynymi termami są zmienne\end{eqnarray*}.
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\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*}\not\models\psi} lub
Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*}\models\xi}
- Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*}\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\begin{eqnarray*}\var\varphi\end{eqnarray*}\models \begin{eqnarray*}\forall x\psi \end{eqnarray*}\leftrightarrow \forall x_{r+1} \psi\begin{eqnarray*}x_{r+1}/x\end{eqnarray*}</math> \begin{eqnarray*}patrz Fakt #alfa-konw\end{eqnarray*}, 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\begin{eqnarray*}\var\varphi\end{eqnarray*}\leq n} wynika, że Parser nie mógł rozpoznać (nieznana funkcja „\QR”): {\displaystyle \QR\begin{eqnarray*}\psi\end{eqnarray*}\leq n-1} . Mamy teraz następujący ciąg równoważnych warunków:
- Parser nie mógł rozpoznać (błąd składni): {\displaystyle \begin{eqnarray*}\strA,x_1:a_1,\dots,x_r:a_r\end{eqnarray*}\models\var\varphi}
- Dla każdego zachodzi
Parser nie mógł rozpoznać (błąd składni): {\displaystyle \begin{eqnarray*}\strA,x_1:a_1,\dots,x_r:a_r,x_{r+1}:a\end{eqnarray*}\models\psi}
- Dla każdego istnieje takie , że
Parser nie mógł rozpoznać (błąd składni): {\displaystyle a\in dom\begin{eqnarray*}h\end{eqnarray*}} oraz
Parser nie mógł rozpoznać (błąd składni): {\displaystyle \begin{eqnarray*}\strA,x_1:a_1,\dots,x_r:a_r,x_{r+1}:a\end{eqnarray*}\models\psi}
- Dla każdego istnieje takie , że
Parser nie mógł rozpoznać (błąd składni): {\displaystyle a\in dom\begin{eqnarray*}h\end{eqnarray*}} oraz
Parser nie mógł rozpoznać (błąd składni): {\displaystyle \begin{eqnarray*}\strB,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*},x_{r+1}:h\begin{eqnarray*}a\end{eqnarray*}\end{eqnarray*}\models\psi}
- Dla każdego istnieje takie , że
Parser nie mógł rozpoznać (błąd składni): {\displaystyle b\in rg\begin{eqnarray*}h\end{eqnarray*}} oraz
Parser nie mógł rozpoznać (błąd składni): {\displaystyle \begin{eqnarray*}\strB,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*},x_{r+1}:b\end{eqnarray*}\models\psi}
- Dla każdego zachodzi
Parser nie mógł rozpoznać (błąd składni): {\displaystyle \begin{eqnarray*}\strB,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*},x_{r+1}:b\end{eqnarray*}\models\psi}
- Parser nie mógł rozpoznać (błąd składni): {\displaystyle \begin{eqnarray*}\strB,x_1:g\begin{eqnarray*}a_1\end{eqnarray*},\dots,x_r:g\begin{eqnarray*}a_r\end{eqnarray*}\end{eqnarray*}\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 Parser nie mógł rozpoznać (błąd składni): {\displaystyle d_k\begin{eqnarray*}a,b\end{eqnarray*}=d_k\begin{eqnarray*}g\begin{eqnarray*}a\end{eqnarray*},g\begin{eqnarray*}b\end{eqnarray*}\end{eqnarray*}} dla wszystkich Parser nie mógł rozpoznać (błąd składni): {\displaystyle a,b\in dom\begin{eqnarray*}g\end{eqnarray*}.} 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 Parser nie mógł rozpoznać (błąd składni): {\displaystyle a\in dom\begin{eqnarray*}h\end{eqnarray*}.}
Rozróżniamy dwa przypadki:
\begin{eqnarray*}i\end{eqnarray*} Jeśli istnieje takie Parser nie mógł rozpoznać (błąd składni): {\displaystyle b\in dom\begin{eqnarray*}g\end{eqnarray*}} , że Parser nie mógł rozpoznać (błąd składni): {\displaystyle d_{k}\begin{eqnarray*}a,b\end{eqnarray*}<\infty} , to w jest dokładnie jeden\Delta\vdashlement , który jest tak samo położony względem Parser nie mógł rozpoznać (błąd składni): {\displaystyle g\begin{eqnarray*}b\end{eqnarray*}} jak względem oraz spełnia Parser nie mógł rozpoznać (błąd składni): {\displaystyle d_j\begin{eqnarray*}a',g\begin{eqnarray*}b\end{eqnarray*}\end{eqnarray*}=d_{j}\begin{eqnarray*}a,b\end{eqnarray*}.} Kładziemy wówczas Parser nie mógł rozpoznać (błąd składni): {\displaystyle h\begin{eqnarray*}a\end{eqnarray*}:=a'} i jest wtedy częściowym izomorfizmem zachowującym odległości
\begin{eqnarray*}ii\end{eqnarray*} Jeśli natomiast takiego nie ma, to niech gdzie są najbliższymi \Delta\vdashlementami po lewej i po prawej, które należą do Parser nie mógł rozpoznać (błąd składni): {\displaystyle dom\begin{eqnarray*}g\end{eqnarray*}.} Wówczas Parser nie mógł rozpoznać (błąd składni): {\displaystyle d_j\begin{eqnarray*}a',a\end{eqnarray*}=d_j\begin{eqnarray*}a,a''\end{eqnarray*}=\infty,} co w myśl definicji oznacza, że Parser nie mógł rozpoznać (błąd składni): {\displaystyle d_{j+1}\begin{eqnarray*}a',a''\end{eqnarray*}=\infty.} Zatem na mocy założenia indukcyjnego także Parser nie mógł rozpoznać (błąd składni): {\displaystyle d_{j+1}\begin{eqnarray*}g\begin{eqnarray*}a'\end{eqnarray*},g\begin{eqnarray*}a''\end{eqnarray*}\end{eqnarray*}=\infty.} Istnieje więc Parser nie mógł rozpoznać (błąd składni): {\displaystyle g\begin{eqnarray*}a'\end{eqnarray*}<b<g\begin{eqnarray*}a''\end{eqnarray*}} takie, że \mbox{Parser nie mógł rozpoznać (błąd składni): {\displaystyle d_j\begin{eqnarray*}g\begin{eqnarray*}a'\end{eqnarray*},b\end{eqnarray*}=d_j\begin{eqnarray*}b,g\begin{eqnarray*}a''\end{eqnarray*}\end{eqnarray*}=\infty} },
i wówczas kładąc Parser nie mógł rozpoznać (błąd składni): {\displaystyle h\begin{eqnarray*}a\end{eqnarray*}:=b} \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ć (błąd składni): {\displaystyle G_m\begin{eqnarray*}\strA,\strB\end{eqnarray*}} 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ć (błąd składni): {\displaystyle G_m\begin{eqnarray*}\strA,\strB\end{eqnarray*}} 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ć (błąd składni): {\displaystyle G_m\begin{eqnarray*}\strA,\strB\end{eqnarray*}} 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ć (błąd składni): {\displaystyle G_m\begin{eqnarray*}\strA,\strB\end{eqnarray*}.} 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ą \begin{eqnarray*}identycznymi na mocy założenia indukcyjnego\end{eqnarray*} 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 \begin{eqnarray*}tzn. takiego, w którym wszystkie niepuste ograniczone podzbiory mają kres górny i kres dolny\end{eqnarray*}, bo musiałoby ono być prawdziwe w pierwszej ze struktur, a fałszywe w drugiej.
Definicja
\strA\in\K\}</math> \begin{eqnarray*}teoria klasy struktur Parser nie mógł rozpoznać (nieznana funkcja „\K”): {\displaystyle \K} \end{eqnarray*} albo Parser nie mógł rozpoznać (błąd składni): {\displaystyle '''Th}\begin{eqnarray*}\strA\end{eqnarray*}= \{\var\varphi\ |\ \strA\models\var\varphi\'''} \begin{eqnarray*}teoria modelu Parser nie mógł rozpoznać (nieznana funkcja „\strA”): {\displaystyle \strA} \end{eqnarray*}. 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. \begin{eqnarray*}Zupełnie inny dowód tego faktu poznamy w Rozdziale #zwarciig\leftrightarrowwi.\end{eqnarray*}
- 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 \begin{eqnarray*}skończonych lub nieskończonych\end{eqnarray*} 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 \begin{eqnarray*}skończonych lub nieskończonych\end{eqnarray*} 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\begin{eqnarray*}x,y\end{eqnarray*}} zachodzi \wtw, gdy , a relacja Parser nie mógł rozpoznać (nieznana funkcja „\strB”): {\displaystyle R^\strB\begin{eqnarray*}x,y\end{eqnarray*}} \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{\begin{eqnarray*}W\end{eqnarray*}}\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}