{{theorem | hh je ČRF nn proměnných ⇒ hh je Turingovsky vyčíslitelná

| ČRF ⇒ TS }}

:💡 Přesněji, existuje Turingův stroj MhM_h takový, že pro každou nn-tici přirozených čísel x1,x2,,xnx_1, x_2, \dots, x_n platí

:: Mh((x1)B#(x2)B##(xn)B)h(x1,x2,,xn)M_h((x_1)_B\#(x_2)_B\#\dots\# (x_n)_B)\downarrow\Leftrightarrow h(x_1, x_2, \dots, x_n)\downarrow :: a platí-li h(x1,x2,,xn)=yh(x_1, x_2, \dots, x_n)\downarrow=y, potom výpočet Turingova stroje MhM_h vydá na výstupu řetězec (y)B(y)_B.

Dk (zakladni funkce vycislim; substituci provedu paralelne na nekolika paskach; prim. rekurzi delam pocitadlem cyklu; minimalizaci taky) ::

:: definujeme TS pro základní funkce a operátory pro odvození hh: * Základní fce * nulová funkce o(x)=0o(x)=0 * ekvivalentní této operaci na TS: smaže celou pásku a zapíše 0 * následník s(x)s(x) * implementuje přičtení 1 k bin.číslu * projekce Inj(x1,..,xn)I^j_n (x_1,..,x_n) Image:projekce.png * smaže prvních j1j-1 bloků * přeskočí jj (na něj děláme projekci) * smaže zbytek * vrátí se na jediný nesmazaný jj * Operátory * substituce SnmS_n^m pomocí **3 páskového TS MhM_h: ** :: kde: h(x1,...,xn)f(g1(x1,...,xn),...,gm(x1,...,xn))h(x_1,...,x_n) ≃ f(g_1(x_1,...,x_n),...,g_m(x_1,...,x_n)) * na 1. pásce je vstup * postupne simulujeme stroje MgiM_{gi} na 2. pásce (vždy jí smažeme a zkopírumeme na ní 1.), výsledky prekopirujeme na konec 3. (💡 oddělovač #) * na 3. pasce pustime stroj MfM_f (výsledek pak bude na 3. pásce) * primitivní rekurze RnR_n pomocí 3 páskového TS MhM_h (for-cyklus): :: kde: h(0,x2,...,xn)f(x2,...,xn)h(0, x_2, ..., x_n) ≃ f(x_2, ..., x_n) :: h(i+1,x2,...,xn)g(i,h(i,x2,...,xn),x2,...,xn)h(i+1, x_2, ..., x_n) ≃ g(i, h(i,x_2,...,x_n), x_2,..., x_n)
* (init-for-cyklu): * na 1. pásce je vstup, na 2.pásce 0 (čítač pro for) * na 3. je 1. bez prvního čísla a pak na ní pustíme MfM_f * (for-cyklus): dokud je číslo na 2. <číslo na začátku 1. (x1 x_1) * 2.pásku zkopírujem před výsledek na 3. a na konec zkopirujem 1. (bez prvního čísla) * na 3. pasce pustime stroj MgM_g * výsledek je pak na 3. pásce * minimalizace Mn(f)=hM_n(\mathbf{f})=\mathbf{h} pomocí 2 páskového TS MhM_h (while-cyklus): :: h(x1,...,xn)min{yf(x1,...,xn,y)=0az<y:f(x1,...,xn,z)0}\mathbf{h}(x_1,...,x_n)\downarrow ≃ min \{ y|\mathbf{f}(x_1,...,x_n,y)\downarrow = 0 \quad a \quad \forall z<y: \mathbf{f}(x_1,...,x_n,z)\downarrow \ne 0\} * na 1. pásce je vstup + #0 (čítač pro while) * (while-cyklus): dokud simulace MfM_f na 2.pásce nevrátí 0 * smaz 2. a nahraj naní 1. pásku s čítačem+1 * nasimuluj MfM_f na 2. * čítač y zapiš na 1.