{{TOC float}}

{{Sources| Tohle je poněkud obšírnější výcuc ke <Státnice> z <Státnice_-Informatika-Vyčíslitelnost> pro obory <Státnice-Informatika-_I3:Matematická_lingvistika> a <Státnice-Informatika-_I2:_Softwarové_systémy>, pocházející ze Strojilových skript, papírových zápisků A. Kazdy a zápisků z předmětu Vyčíslitelnost I ze <Studnice%20vědomostí> -- User:Tuetschek 14:01, 17 Aug 2010 (CEST)

}}

Částečně rekurzivní funkce

wen:Kurt%20Gödel v 30. letech vynalezl primitivní rekurzivní funkce, později společně s dalšími částečně rekurzivní funkce. Jde o funkcionální přístup k algoritmům. Lze se na ně dívat i jako na logiku 1. řádu: základní funkce jsou axiomy, máme operátory -- odvozovací pravidla -- a z toho vyrábíme formule -- rekurzivní funkce.

Definice (Podmíněná rovnost, konvergence, divergence)

  •  ⁣ \simeq\,\! značí "podmíněnou rovnost", tj. v případě, že alespoň jedna strana má smysl, tak má smysl i druhá a rovnají se.

  • P1(D) ⁣ ⁣ ⁣ P_1(D)\!\!\downarrow\,\! značí, že predikát je definován, tj "konverguje" (občas se značí ! ⁣ !\,\! místo  ⁣ \downarrow\,\!)

  • P1(D) ⁣ ⁣ ⁣ P_1(D)\!\!\uparrow\,\! značí, že predikát není definován, tj. "diverguje"

Značky konvergence, divergence i podmíněné rovnosti se vztahují jak na predikáty, tak na funkce.

Definice (Základní funkce)

  • o(x)0xN ⁣ o(x)\simeq 0\quad \forall x\in\mathbb{N}\,\! ("nula")

  • s(x)x+1xN ⁣ s(x)\simeq x + 1\quad \forall x\in\mathbb{N}\,\! ("následník")

  • Inj(x1,,xn)xj1jn ⁣ I_n^j(x_1,\dots,x_n) \simeq x_j\quad 1\leq j\leq n\,\! ("projekce", vybrání jedne ze složek)

Definice (Základní operátory)

  • Rn(n1) ⁣ R_n\quad (n\geq 1)\,\! -- primitivní rekurze Funkcím f ⁣ f\,\! (n1 ⁣ n-1\,\! proměnných) a g ⁣ g\,\! (n+1 ⁣ n+1\,\! proměnných) přiřadí Rn(f,g)=h ⁣ R_n(f,g)=h\,\!, kde h(0,x2,,xn)f(x2,,xn) ⁣ h(0,x_2,\dots,x_n)\simeq f(x_2,\dots,x_n)\,\! a h(y+1,x2,,xn)g(y,h(y,x2,,xn),x2,,xn) ⁣ h(y+1,x_2,\dots,x_n)\simeq g(y,h(y,x_2,\dots,x_n),x_2,\dots,x_n)\,\! (analogické k for-cyklu).

  • Snm ⁣ S^m_n\,\! -- substituce Funkci f ⁣ f\,\! (m ⁣ m\,\! proměnných) a m ⁣ m\,\! funkcím gi ⁣ g_i\,\! (všechny n ⁣ n\,\! proměnných) přiřadí funkci h ⁣ h\,\! (n ⁣ n\,\! proměnných) předpisem h=Snm(f,g1,,gm)h(x1,,xn)f(g1(x1,,xn),,gm(x1,,xn)) ⁣ h=S_n^m(f,g_1,\dots,g_m) \equiv h(x_1,\dots,x_n)\simeq f(g_1(x_1,\dots,x_n),\dots,g_m(x_1,\dots,x_n))\,\! (analogické k podprogramu).

  • Mn ⁣ M_n\,\! -- minimalizace Funkci f ⁣ f\,\! (n+1 ⁣ n+1\,\! proměnných) přiřadí h ⁣ h\,\! (n ⁣ n\,\! proměnných) tak, že <center>h(x1,,xn) ⁣ ⁣h(x1,,xn)yf(x1,,xn,y) ⁣ ⁣,0f(x1,,xn,j) ⁣ ⁣,≄0 j<y ⁣h(x_1,\dots,x_n)\!\!\downarrow \wedge h(x_1,\dots,x_n)\simeq y \equiv f(x_1,\dots,x_n,y)\!\!\downarrow, \simeq 0 \wedge f(x_1,\dots,x_n, j)\!\!\downarrow, \not\simeq 0\ \forall j<y\,\!</center> (analogické k while-cyklu).

Další značení:

  • μyP(x,y)\mu_y P(x, y) je funkce proměnné xx, která vrátí nejmenší yy takové, aby platil predikát P(x,y)P(x, y). Lze jí sestrojit pomocí operátoru minimalizace.

Definice (Třída primitivně a částečně rekurzivních funkcí)

  • Třída primitivně rekurzivních funkcí je nejmenší třída funkcí f:NkN ⁣ f:\mathbb{N}^k\to\mathbb{N}\,\!, která obsahuje základní funkce a je uzavřená na Rn ⁣ R_n\,\! a Snm ⁣ S_n^m\,\!.

  • Třída částečně rekurzivních funkcí je nejmenší třída, která obsahuje zákl. funkce a je uzavřená na Rn ⁣ R_n\,\!, Snm ⁣ S_n^m\,\! a Mn ⁣ M_n\,\!.

Poznámka (Vlastnosti zákl. funkcí a operátorů)

  • Všechny zákl. funkce jsou všude definované ("totální") a efektivně vyčíslitelné.

  • Všechny zákl. operátory zachovávají efektivní vyčíslitelnost.

  • Rn ⁣ R_n\,\!, Snm ⁣ S_n^m\,\! zachovávají totálnost.

  • PRF jsou efektivně vyčíslitelné a totální.

Definice (Odvození funkce)

Odvození funkce je konečná posloupnost funkcí, z nichž každá je buď funkce základní, nebo vzniká z už odvozených funkcí pomocí nějakého operátoru. Ke každé funkci si pamatujeme, jak vznikla (toto v praxi hraje roli programu).

Definice (Obecně rekurzivní funkce)

Funkce je obecně rekurzivní (ORF), jestliže je ČRF a totální.

Operace s PRF, predikáty

Poznámka (Některé PRF)

Pomocí PRF lze popsat např.:

  • součet

  • součin

  • mocninu, faktoriál

  • operaci x˙y ⁣ x\dot{-} y\,\!, kde x˙y=xy ⁣ x\dot{-} y = x-y\,\! pro xy ⁣ x\geq y\,\!, jinak 0 ⁣ 0\,\!

  • operátory sg ⁣ \mathrm{sg}\,\! a sg ⁣ \overline{\mathrm{sg}}\,\! (testy na nenulovost, resp. nulovost argumentu)

  • minimum, maximum, absolutní hodnotu rozdílu

Definice (Charakteristická funkce)

Mějme predikát P ⁣ P\,\! (libovolné tvrzení) o n ⁣ n\,\! proměnných. Potom cP ⁣ c_P\,\! je jeho charakteristická funkce, když je to všude definovaná funkce daná následovně:

:

ParseError: KaTeX parse error: Undefined control sequence: \mbox at position 49: …ases}1 \quad & \̲m̲b̲o̲x̲{ pokud } P(x_1…

Částečná charakteristická funkce pro nějaký predikát P ⁣ P\,\! o n ⁣ n\,\! proměnných je funkce f ⁣ f\,\! o n ⁣ n\,\! proměnných taková, že f(x1,,xn)P(x1,,xn) ⁣ f(x_1,\dots,x_n)\downarrow\Leftrightarrow P(x_1,\dots,x_n)\,\! a f(x1,,xn)f(x1,,xn)=1 ⁣f(x_1,\dots,x_n)\downarrow\Rightarrow f(x_1,\dots,x_n) = 1\,\!.

Definice (PR, OR, RS Predikáty)

Řekneme, že predikát je primitivně (obecně) rekurzivní, jestliže jeho charakteristická funkce je primitivně (obecně) rekurzivní. Predikát je rekurzivně spočetný, jestliže jeho částečná charakteristická funkce je částečně rekurzivní.

S funkcemi a predikáty se operuje docela nedůsledně, dají se v podstatě ztotožnit.

Poznámka (Jiná možnost nahlížení)

ČRF odpovídají funkcionální logice 1. řádu:

  • termy číselné: 0,x,x+1, ⁣ 0,x,x+1,\dots\,\!

  • termy funkční: o,I11,s,R2(I11,S31(s,I32)), ⁣ o,I_1^1,s,R_2(I_1^1,S_3^1(s,I_3^2)),\dots\,\!

  • pravidlo aplikace: Ap(f,x)==f(x) ⁣ Ap(f,x)=\dots=f(x)\,\! (kde " ⁣ \dots\,\!" je proces vyhodnocení termu, potenciálně nekonečný, dává z funkce číselný term)

  • pravidlo zobecnění: λxy(x+y) ⁣ \lambda{xy} (x+y)\,\! dává z číselného termu x+y ⁣ x+y\,\! funkci

Poznámka (Operace zachovávající PR)

PR jsou:

  • Rozšíření počtu proměnných, konstantní funkce

  • Permutace a ztotožnění proměnných

  • Kódování Nk ⁣ \mathbb{N}^k\,\! do N ⁣ \mathbb{N}\,\! -- iterace Cantorova diagonálního kódování dvojic (x,y2=(x+y)(x+y+1)2+x ⁣ \langle x,y\rangle_2 = \frac{(x+y)(x+y+1)}{2}+x\,\!)

  • Opačná operace -- dekódování

  • Funkce p(i) ⁣ p(i)\,\! -- i ⁣ i\,\!-té prvočíslo

  • Predikát rovnosti a < ⁣ <\,\!, > ⁣ >\,\!

  • Logické spojky ,,¬ ⁣ \vee, \wedge, \neg\,\!, omezené kvantifikátory (kvantifikace spočetně mnoha prvků)

  • Gödelovo prvočíselné kódování: slovo ai0aik ⁣ a_{i_0}\dots a_{i_k}\,\! do p(0)i0p(k)ik ⁣ p(0)^{i_0}\cdot\dots\cdot p(k)^{i_k}\,\!

Ackermannova funkce

Definice (Ackermannova funkce)

Ackermannova funkce je funkce definovaná jako:

:A(0,x)={1x=02x=1x+2x>1A(0,x) = \begin{cases} 1 \quad & x = 0 \\ 2 \quad & x = 1 \\ x + 2 \quad & x > 1 \end{cases}

:A(y,0)=1 ⁣A(y,0) = 1\,\! :A(y+1,x+1)=A(y,A(y+1,x)) ⁣A(y+1,x+1) = A(y, A(y+1,x) )\,\!

Definice (Strukturální složitost)

Definujeme strukturální složitost -- hloubku rekurze (intuitivně: počet vnořených for-cyklů -- syntakticky, ne výpočtem) jako 0 ⁣ 0\,\! pro základní funkce a

:h(Rn(P,Q))=max(h(P),h(Q)+1) ⁣h(R_n(P,Q)) = \max(h(P), h(Q)+1)\,\!, h(Snm(P,Q0,,Qk))=max(h(P),h(Q0),,h(Qk))h(S_n^m(P,Q_0,\dots,Q_k)) = \max(h(P),h(Q_0),\dots,h(Q_k))

Pak Ri ⁣ \mathcal{R}_i\,\! je třída PRF, které lze získat pomocí PR-termů hloubky i ⁣ \leq i\,\! a PRF samo je i=1Ri ⁣ \cup_{i=1}^{\infty}\mathcal{R}_i\,\!

Věta (O Ackermannově funkci)

Ackermannova funkce není PRF, ale je ORF.

Důkaz

  • Určitě je ORF -- důkaz se provádí transfinitní indukcí typu ω2 ⁣ \omega^2\,\!; pro výpočet každé hodnoty potřebuji jen konečně mnoho předchozích hodnot -- stačí mi μz ⁣ \mu_z\,\!, kde z ⁣ z\,\! je nejmenší kus N2 ⁣ \mathbb{N}^2\,\!, který stačí k výpočtu A(y,x) ⁣ A(y,x)\,\! (dá práci dokázat, že je konečný, potřeba ordinálů, lexikografického uspořádání).

  • A ⁣ A\,\! roste rychleji než každá PRF: φ ⁣ \forall\varphi\,\! PRF (jedné proměnné) x0:xx0:φ(x)<A(x,x) ⁣ \exists x_0: \forall x\geq x_0: \varphi(x)<A(x,x)\,\!.

  • Uvažujme A(y,x) ⁣ A(y,x)\,\! jako matici funkcí fy(x) ⁣ f_y(x)\,\!. Potom určitě fiRi\Ri1 ⁣ f_i \in \mathcal{R}_i\backslash \mathcal{R}_{i-1}\,\! a fy(x) ⁣ f_y(x)\,\! je (až na konečně mnoho x ⁣ x\,\!) rostoucí. Navíc pro libovolnou φRi ⁣ \varphi\in\mathcal{R}_i\,\! existuje x0 ⁣ x_0\,\! takové, že xx0:φ(x)<fi+1(x) ⁣ \forall x\geq x_0: \varphi(x)<f_{i+1}(x)\,\!, tedy fi+1 ⁣ f_{i+1}\,\! majorizuje všechny funkce z Ri ⁣ \mathcal{R}_i\,\!

  • Nechť pro spor má A(x,x) ⁣ A(x,x)\,\! hloubku i ⁣ i\,\!. Potom A(x,x)=φ(x)<fi+1(x) ⁣ A(x,x)=\varphi(x)<f_{i+1}(x)\,\! pro nějaké pevné i ⁣ i\,\!. Potom ale A(x,x)<fi+1(x)<fx(x)=A(x,x) ⁣ A(x,x)<f_{i+1}(x)<f_x(x) = A(x,x)\,\!, tj. pro x>i+1x>i+1 máme spor.

Věta (O vztahu PRF, ORF a ČRF)

Platí PRF ⁣ \subset\,\! ORF  ⁣ \subset\,\! ČRF a inkluze jsou ostré.

Důkaz

Pro ORF ⁣ \subset\,\! ČRF mám funkci g(x,y)y+1 ⁣ g(x,y)\simeq y + 1\,\! a h(x)μy(g(x,y)0) ⁣ h(x)\simeq \mu_y(g(x,y)\simeq 0)\,\!, ta není nikde definovaná. Pro PRF ⁣ \subset\,\! ORF mám Ackermannovu funkci.

Univerzální funkce

Definice (Univerzální funkce)

Mějme T ⁣ \mathcal{T}\,\! -- spočetnou množinu ČRF jedné proměnné. Potom U(i,x) ⁣ \mathcal{U}(i,x)\,\! je univerzální funkce třídy T ⁣ \mathcal{T}\,\!, jestliže:

  •  ⁣ \forall\,\! přirozené i:λxU(i,x)T ⁣ i: \lambda x \mathcal{U}(i,x)\in\mathcal{T}\,\!

  • φT:i0:φ=λxU(i0,x) ⁣ \forall \varphi \in \mathcal{T}: \exists i_0 : \varphi = \lambda x \mathcal{U}(i_0,x)\,\!

A U ⁣ \mathcal{U}\,\! tedy indexuje všechny funkce třídy T ⁣ \mathcal{T}\,\!. Podobně se definují i univerzální funkce pro ČRF více proměnných. Platí, že {λxU(i,x)}y0 ⁣ \{\lambda x \mathcal{U}(i,x)\}_{y\geq 0}\,\! je posloupnost všech funkcí z T ⁣ \mathcal{T}\,\!, takže U ⁣ \mathcal{U}\,\! určuje numeraci prvků T ⁣ \mathcal{T}\,\!

Věta (O univerzální funkci PRF)

Existuje ORF, která je univerzální pro třídu PRF (jedné proměnné). Taková funkce pak nemůže být PRF.

Důkaz

  • Seřadím všechny PR-termy (PR-programy) do posloupnosti (máme 3 axiomy a 3 odvozovací pravidla, seřazení je možné).

  • Potom U(x,y):=hx(y) ⁣ U(x,y):= h_x(y)\,\!, kde hx ⁣ h_x\,\! vyčísluje x ⁣ x\,\!-tý program.

  • Sporem nechť U(x,y) ⁣ U(x,y)\,\! je PRF. Pak i U(x,x) ⁣ U(x,x)\,\! je PRF, 1˙U(x,x) ⁣ 1\dot{-} U(x,x)\,\! je PRF, z toho 1˙U(x,x)=U(x0,x) ⁣ 1\dot{-} U(x,x)=U(x_0,x)\,\!. Dosadím x=x0 ⁣ x=x_0\,\! a mám spor, neboť obě strany jsou definovány (toto je příklad použití Cantorovy diagonální metody).

Definice (Turingovsky vyčíslitelná funkce)

Vezmeme Turingovy stroje s vnější abecedou, jejíž prvním znakem je " ⁣ |\,\!". Čísla 0,1, ⁣ 0,1,\dots\,\! zapisujme na pásku jako ,,, ⁣ |, ||, |||,\dots\,\!, n-tice oddělujme znakem λ ⁣ \lambda\,\!. Potom:

  • Řekneme, že stroj M ⁣ M\,\! je n ⁣ n\,\!-aritmetický, pokud pro každou n ⁣ n\,\!-tici přir. čísel x1,,xn ⁣ x_1,\dots,x_n\,\! reprezentovanou počáteční konfigurací S ⁣ S\,\! platí: je-li M ⁣ M\,\! použitelný k SS (zastaví-li se výpočet nad ní) a je-li výsledná konfigurace T ⁣ T\,\!, pak v T ⁣ T\,\! je na pásce nějaké jedno přirozené číslo a hlava stroje M ⁣ M\,\! stojí nad jeho posledním znakem  ⁣ |\,\!.

  • Stroj je dále n ⁣ n\,\!-aritmetický typu 0/1 ⁣ 0/1\,\!, pokud má abecedu {,λ} ⁣ \{|,\lambda\}\,\! a jediný koncový stav.

  • Řekneme, že M ⁣ M\,\! vyčísluje funkci f ⁣ f\,\! o n ⁣ n\,\! proměnných, pokud M ⁣ M\,\! je n ⁣ n\,\!-aritmetický a pro každou n ⁣ n\,\!-tici přir. čísel x1,,xn ⁣ x_1,\dots,x_n\,\! v poč. konfiguraci S ⁣ S\,\! platí: M ⁣ M\,\! je použitelný, právě když je f ⁣ f\,\! pro x1,,xn ⁣ x_1,\dots,x_n\,\! definovaná a je-li f ⁣ f\,\! definovaná, pak ve výsledné konfiguraci T ⁣ T\,\! je na pásce stroje číslo f(x1,,xn) ⁣ f(x_1,\dots,x_n)\,\! a hlava stojí nad jeho posledním znakem.

  • Řekneme, že funkce je turingovsky vyčíslitelná, pokud existuje nějaký n ⁣ n\,\!-aritmetický TS (typu 0/1 ⁣ 0/1\,\!), který ji vyčísluje.

Věta (O ekvivalenci TS a ČRF)

Funkce n ⁣ n\,\! proměnných je částečně rekurzivní, právě když existuje n ⁣ n\,\!-aritmetický Turingův stroj typu 0/1 ⁣ 0/1\,\!, který ji vyčísluje.

Důkaz

" ⁣ \Rightarrow\,\!": Každá ČRF je T-vyčíslitelná.

Důkaz indukcí podle složitosti funkce -- pro základní funkce to jistě platí, Rn,Mn,Snm ⁣ R_n, M_n, S^m_n\,\! toto zachovávají (Snm ⁣ S^m_n\,\! znamená použití více pásek, vyčíslení a složení, RnR_n znamená vyčíslení ff a yy-krát "otočení" gg, MnM_n je vyčíslování ff na vstupu a zvětšujícím se počítadle cyklů, dokud nedostanu 00 -- pak vrátím hodnotu počítadla).

" ⁣ \Leftarrow\,\!": Pro každý TS M ⁣ M\,\! existuje ČRF, která dává stejný výsledek

Je nutné zavést kódy konfigurací; TS navíc nemají žádné podtřídy, tedy nelze postupovat induktivně. Platí:

  • stepM(X) ⁣ \mathrm{step}_M(X)\,\! -- jeden krok stroje je PR záležitost (pracuje se nad <Státnice_-Algoritmicky_nerozhodnutelné_problémy#Definice.28Konfigurace_TS.2FPostovo_slovo.29> UqsVUqsV, z obou stran obalenými spec. znakem h ⁣ h\,\!, pak slovo není nekonečné a lok. změna se dá spočítat). Existuje určitě PR funkce, která popisuje lokální změnu (jde vlastně o rozhodovací strom, který se staví pomocí RnR_n).

  • compM(X,i) ⁣ \mathrm{comp}_M(X,i)\,\! -- výsledek stroje po i ⁣ i\,\! krocích práce je stále PR (for-cyklus -- RnR_n)

  • ParseError: KaTeX parse error: Undefined control sequence: \mbox at position 28: …rm{comp}_M(X,i)\̲m̲b̲o̲x̲{ obsahuje }q_0…

    -- q0 ⁣ q_0\,\! je koncový stav (pracuj, dokud neskončíš -- while)

  • Potom výsledná ČRF g ⁣ g\,\! je dána jako

    ParseError: KaTeX parse error: Undefined control sequence: \mbox at position 77: …rm{comp}_M(X,i)\̲m̲b̲o̲x̲{ obsahuje }q_0…

    , kde result je jednoduchá funkce smazání okrajů atp. BÚNO je takový stroj úplný a q0 ⁣ q_0\,\! jeho jediný koncový stav. Operátor minimalizace se vyskytuje jen jednou, proto je vhodné ho vysunout co nejvíce "ven" v uzávorkování.

Pak také platí, že mám-li nějakou částečnou funkci (tj. nemusí být totální), která je turingovsky vyčíslitelná, pak je ČR.

Kleenova věta

Věta (Kleenova o normální formě)

Pro každé k1 ⁣ k \geq 1\,\! existují

  • ČRF Ψk ⁣ \Psi_k\,\! k+1 ⁣ k+1\,\! proměnných

  • PRP Tk ⁣ T_k\,\! k+2 ⁣ k+2\,\! proměnných (Kleeneův predikát)

  • PRF U ⁣ U\,\! jedné proměnné

  • PRF sk ⁣ s_k\,\! k+1 ⁣ k+1\,\! proměnných

takové, že:

  1. Ψk ⁣ \Psi_k\,\! je univerzální funkcí pro třídu všech ČRF k ⁣ k\,\! proměnných. Ψk(e,x1,,xk) ⁣ \Psi_k(e,x_1,\ldots,x_k)\,\! vyčísluje e ⁣ e\,\!-tou ČRF k ⁣ k\,\! proměnných. Navíc z odvození ČRF lze efektivně získat e ⁣ e\,\! a naopak z e ⁣ e\,\! lze efektivně získat odvození příslušné ČRF.

  2. Ψk(e,x1,,xk)U(μyTk(e,x1,,xk,y)) ⁣ \Psi_k(e,x_1,\ldots,x_k) \simeq U(\mu_y T_k(e,x_1,\ldots,x_k,y))\,\!, kde TkT_k odpovídá výpočtu Turingova stroje, y=y0,y1y=\langle y_0,y_1\rangle, y0y_0 je doba výpočtu, y1y_1 výsledek a UU vydělí z y0,y1\langle y_0,y_1\rangle druhou složku.

  3. sk ⁣ s_k\,\! je prostá funkce rostoucí ve všech proměnných, o které platí (tato část Věty o normální formě se nazývá S-m-n věta): Ψm+n(e,z1,,zm,x1,,xn)Ψn(sm(e,z1,,zm),x1,,xn) ⁣ \Psi_{m+n}(e,z_1,\ldots,z_m,x_1,\ldots,x_n) \simeq \Psi_n(s_m(e,z_1,\ldots,z_m),x_1,\ldots,x_n)\,\! Tm+n(e,z,x)Tn(sm(e,z),x) ⁣ T_{m+n}(e,\vec{z},\vec{x}) \equiv T_n(s_m(e,\vec{z}),\vec{x})\,\!

  4. Tk(e,x1,,xk,y)Tk(e,x1,,xk,z)y=z ⁣ T_k(e,x_1,\ldots,x_k,y) \wedge T_k(e,x_1,\ldots,x_k,z) \Rightarrow y=z\,\!

Díky tomu lze ČRF efektivně očíslovat. φe(x1,,xk)\varphi_e(x_1,\dots,x_k) pak značí ee-tou funkci kk proměnných. Indexu ee se říká Gödelovo číslo funkce.

Důkaz

  • Oklikou přes <Státnice%20-%20Algoritmicky%20nerozhodnutelné%20problémy>: ke každé ČRF máme TS a jeho kód e ⁣ e\,\!. Vezmeme si proto UTS, který s kódy umí počítat, a hledáme jeho ČRF.

  • Páska univerzálního stroje vypadá v obecném případě následovně: <center>

    ParseError: KaTeX parse error: Undefined control sequence: \mbox at position 2: Y\̲m̲b̲o̲x̲{ blok1 }Y\mbox…

    </center> První blok je aktuální konfigurace, druhý číslo stavu a třetí aktuální políčko, zbytek je program. Čísla kódujeme unárně (x ⁣ x\,\! jako x+1 ⁣ x+1\,\! čar).

  • Základní idea -- bez proměnných x1,xkx_1,\dots x_k páska UTS vypadá takto:

    ParseError: KaTeX parse error: Undefined control sequence: \mbox at position 8: Y\ M\ Y\̲m̲b̲o̲x̲{ blok2 }\Delta…

    (MM je kód programu).

  • Konstrukce Ψm(e,x1,,xm) ⁣ \Psi_m(e,x_1,\ldots,x_m)\,\!:

    • Zkontrolujeme, zda e ⁣ e\,\! po rozkódování obsahuje nějaký kód programu MM.

    • Jestliže ne, je výsledkem nulová funkce (syntax error).

    • Jestliže ano, nejlevější výskyt MM nahradíme λλλM ⁣ ||\ldots| \lambda ||\ldots|\lambda \ldots \lambda ||\ldots|M\,\! (kódování vstupních dat x1,,xnx_1,\dots,x_n; substituce) a spustíme program e ⁣ e\,\! na UTS, podle toho získáme výsledek -- Ψk ⁣ \Psi_k\,\!

  • sk(e,y1,,yk) ⁣ s_k(e,y_1,\dots,y_k)\,\! odpovídá: čekej na x1,,xj ⁣ x_1,\dots,x_j\,\!, přidej k nim y1,,yk ⁣ y_1,\dots,y_k\,\! a spusť program e ⁣ e\,\!.

Věta (Vlastnosti predikátu Ψk ⁣ \Psi_k\,\!)

  1. Predikát Ψk(e,x1,,xk) ⁣ ⁣ ⁣ \Psi_k(e,x_1,\ldots,x_k)\!\!\downarrow\,\! je rekurzivně spočetný, není rekurzivní.

  2. jeho negace Ψk(e,x1,,xk) ⁣ ⁣ ⁣ \Psi_k(e,x_1,\dots,x_k)\!\!\uparrow\,\! není rekurzivně spočetná.

  3. Dále Ψk ⁣ \Psi_k\,\! nelze rozšířit do ORF. Dokonce pokud α ⁣ \alpha\,\! je ČRF, která je rozšířením Ψk ⁣ \Psi_k\,\!, potom lze efektivně nalézt vstup z ⁣ \vec{z}\,\! takový, že α(z) ⁣ ⁣ ⁣ \alpha(\vec{z})\!\!\uparrow\,\!.

Univerzální funkce pro danou třídu funkcí tedy buď nemůže patřit do této třídy, nebo nemůže být totální.

Důkaz

  • Z definice je zřejmé, že Ψk() ⁣ ⁣ ⁣ \Psi_k(\ldots)\!\!\downarrow\,\! je rekurzivně spočetný predikát. Stačí ukázat, že Ψk() ⁣ ⁣ ⁣ \Psi_k(\ldots)\!\!\uparrow\,\! není rekurzivně spočetný. Z toho přímo plyne, že Ψk() ⁣ ⁣ ⁣ \Psi_k(\ldots)\!\!\downarrow\,\! není rekurzivní.

  • Bez újmy na obecnosti uvažujme k ⁣ ⁣= ⁣ ⁣1 ⁣ k\!\!=\!\!1\,\!. Použijeme Cantorovu diagonální metodu.

  • Kdyby Ψ1() ⁣ ⁣ ⁣ \Psi_1(\ldots)\!\!\downarrow\,\! byl rekurzivní, potom by Ψ1(x,x) ⁣ ⁣ ⁣ \Psi_1(x,x)\!\!\uparrow\,\! byl také rekurzivní, tím spíše rekurzivně spočetný. Tedy pro nějakou ČRF φ ⁣ \varphi\,\! by platilo Ψ1(x,x) ⁣ ⁣φ(x) ⁣ ⁣ ⁣ \Psi_1(x,x)\!\!\uparrow \Leftrightarrow \varphi(x)\!\!\downarrow\,\!. Vezmeme-li index funkce φ ⁣ \varphi\,\! (označme jej x0 ⁣ x_0\,\!), dostáváme Ψ1(x,x) ⁣ ⁣Ψ1(x0,x) ⁣ ⁣ ⁣ \Psi_1(x,x)\!\!\uparrow \Leftrightarrow \Psi_1(x_0,x)\!\!\downarrow\,\!, po dosazení x=x0 ⁣ x=x_0\,\! dostáváme Ψ1(x0,x0) ⁣ ⁣Ψ1(x0,x0) ⁣ ⁣ ⁣ \Psi_1(x_0,x_0)\!\!\uparrow\Leftrightarrow\Psi_1(x_0,x_0)\!\!\downarrow\,\!, což je spor.

  • Pro důkaz zbytku tvrzení předpokládejme, že h(e,x) ⁣ h(e,x)\,\! je ORF rozšířením Ψ1(e,x) ⁣ \Psi_1(e,x)\,\!. Potom 1˙h(x,x) ⁣ 1\dot{-} h(x,x)\,\! je ORF g ⁣ g\,\!. Nechť g ⁣ g\,\! má index x0 ⁣ x_0\,\!, tj. g(x)Ψ1(x0,x) ⁣ g(x)\simeq \Psi_1(x_0,x)\,\!. Protože g ⁣ g\,\! je ORF, pro všechna x ⁣ x\,\! platí Ψ1(x0,x) ⁣ ⁣ ⁣ \Psi_1(x_0,x)\!\!\downarrow\,\!, tedy Ψ1(x0,x0) ⁣ ⁣ ⁣ \Psi_1(x_0,x_0)\!\!\downarrow\,\!. Dostáváme h(x0,x0)=Ψ1(x0,x0) ⁣ h(x_0,x_0)=\Psi_1(x_0,x_0)\,\!, což ovšem vede ke sporu: 1˙Ψ1(x0,x0)h(x0,x0)Ψ1(x0,x0) ⁣ 1\dot{-} \Psi_1(x_0,x_0) \simeq h(x_0,x_0) \simeq \Psi_1(x_0,x_0)\,\!.

  • Pokud nějaká ČRF β ⁣ \beta\,\! je rozšířením Ψ1 ⁣ \Psi_1\,\!, umím pro β ⁣ \beta\,\! (podle předch. důkazu) najít e ⁣ e\,\! takové, že β(e,e) ⁣ ⁣ ⁣ \beta(e,e)\!\!\uparrow\,\!.

  • Myšlenka obsažená v předchozím důkazu je založená na Cantorově diagonální metodě. Spor na diagonále si vynutí divergenci, neboť rovnost funkcí je jenom podmíněná, tedy v případě divergence je vše v pořádku.

{{Statnice I3}}