{{Template:TIN064 Skripta}}
Základní definice
*množina je rekurzivní, jestliže její charakteristická fce je ORF
**rekurzivní množina je taková, že o každém prvku dokážeme efektivně zjistit, zda do množiny patří či nikoliv **Rekurzivní množina je právě efektivně (algoritmicky) rozhodnutelná
*množina je rekurzivně spočetná, jestliže je definičním oborem nějaké ČRF **rekurzivně spočetné množiny se nějaký program pouze zastaví, když prvek do množiny patří, jinak nic nevíme
**tzn. , kde označuje číslo ČRF jejímž je M definičním oborem, někdy se v této souvislosti říká -tá rekurzivně spočetná množina, značí se . **jistý náhled dává anglické pojmenování "recursively enumerable" - rekurzivně spočetné množiny jsou takové, kde máme k dispozici program, který postupně generuje prvky do množiny patřící; φ<sub>x</sub>(m) pak čeká, jestli program vyrobí i m; pokud ne, čeká stále dál a neví, jestli už už přijde, nebo bude čekat pořád...
*dle stejných pravidel pojmenováváme i relace ("predikáty") , množiny výše odpovídají unárním relacím.
Některé z vlastností
Věta: Konjunkce a disjunkce (průnik a sjednocení) zachovávají rekurzivní spočetnost (pro množiny i pro predikáty)
Důkaz: Tvrzení je "od oka" vidět - co by se tak mohlo rozbít? Formálně na to můžeme jít přes s-m-n větu:
(vyrobili jsme "ze souřadnic" s, s' číslo w - viz předchozí kapitolka)
(e je snadno vyrobitelná ČRF, která spustí paralelně a, b se správnými parametry - a ještě dobře zasubstituujeme l a r)
s-m-n věta nám vyrobila hledaný kód konjunkce - !
Disjunkce pravděpodobně jen mírným zesložitěním kódu e.
Pozn.: Negace resp. doplněk samozřejmě RS nezachovává.
Věta: Omezená obecná kvantifikace a existenční kvantifikace zachovávají rekurzivní spočetnost
Důkaz: Opět to vypadá zřejmě. Formálně:
(x je jen k-1 prvků)
kde je -tice prvků - pro každou hodnotu y jeden
y můžeme zkoušet primitivní rekurzí, w minimalizací, tzn. vyrobíme nový RS program e
Nudný trik odminule: , zbytek jako obvykle.
Pozn.: Neomezená obecná kvantifikace je strašná věc, která nezachovává vůbec nic.
Věta (Postova): Množina M je rekurzivní <=> a její doplněk jsou rekurzivně spočetné. Predikát P je ORP <=> P a jeho doplněk P' jsou RSP.
Důkaz: Pro množiny dvě implikace. Predikát se dokáže snadno, ale až po přečtení věty o selektoru o trochu níže.
M rekurzivní. Pak M je jistě RS, a její doplněk je také dokonce rekurzivní (triv. - v konečném čase jsme se dozvěděli, že prvek do M patří nebo ne, to jen znegujeme - kdyby M byla RS, je situace tíživější).
M a jsou RS. Jednoduše spustíme hledání paralelně v obou a v konečném čase se alespoň jedno hledání zastaví.
Věta (Rekurzivní spočetnost )
# jsou rekurzivně spočetné predikáty, ale nejsou rekurzivní
# nejsou r.s. # nelze rozšířit do ORF
Důkaz
#R.s. přímo z definice, kdyby byly rekurzivní, pak jejich negace je r.s., takže stačí ukázat 2) #Stačí ukázat pro . Pro spor nechť je r.s. Pak existuje ČRF taková, že ale má nějaký kód , po dosazení dostáváme klasický spor.
#Měli jste si rozmyslet za domácí úkol z minulé stránky! Je to jednoduše varianta důkazu neexistence univerzální PRF. A jak tedy zachránit ČRF od stejného osudu? nesmí pro kód g konvergovat - dokonce takto lze pro libovolnou ČRF efektivně nalézt .
Věta o selektoru
Pro každý RSP k+1 proměnných existuje ČRF k proměnných, pro kterou platí
.
Druhá řádka říká, že pro každý RSP umíme zkonstruovat takovou ČRF , která lze dosadit za poslední proměnnou (respektive její výsledek y) a pokud konverguje, tak platí. První řádka říká, že "se snaží seč může", tedy pokud nějaké y existuje, tak ho najde. (Nebýt této podmínky, šlo by za zvolit třeba prázdnou funkci.)
Graf rekurzivní funkce
Predikát k+1 proměnných si můžeme představit jako relaci či graf (grafem se zde rozumí množina bodů čili diagram průběhu, žádné kombinatorické hrany a vrcholy) v k+1 rozměrném prostoru (přirozených čísel ovšem, jak jinak). Predikát určuje, zda bod je v grafu, či nikoli. můžeme chápat jako funkci na k rozměrném prostoru takovou, že v grafu vybere v poslední proměnné právě jeden bod (pokud existuje).
Proto se jmenujeme věta (či lemma) o selektoru a říká se, že ČRF mají RS graf. Nemusí být moc jasné, proč jsme se tímhle směrem vůbec pustili. Zdá se, že tyto úvahy vedou k alternativní interpretaci efektivní vyčíslitelnosti, aritmetickým hierarchiím a dalším děsivě znějícím věcem. Každopádně v rámci Vyčíslitelnosti I se ke grafům již nevrátíme, takže na tohle můžete prozatím opět zapomenout.
Důkaz
Pro RSP existuje TS , který se zastaví v přijímacím stavu, pokud .
Definujme ORF
přijme vstup
ParseError: KaTeX parse error: Undefined control sequence: \mbox at position 14: x_1,...,x_k,y\̲m̲b̲o̲x̲{ za }j
krokůPožadovaná ČRF je pak:
Pokud totiž pro existuje nějaké takové, že platí , tak se odpovídající TS zastaví nejvýše po krocích, a my to zjistíme v -té iteraci minimalizační funkce .
Poznámka: Může to být zřejmé, ale stejně je dobré si uvědomit, že dvojici <y,j> máme zakódovánu jako přirozené číslo (např. pomocí Cantorova diagonálního uspořádání) a procházíme tedy možnosti pro y a j pěkně postupně.
Důsledky
Funkce je ČRF <=> má rekurzivně spočetný graf, kde graf je .
Důkaz: Z predikátu grafu si selektorem vytáhneme ČRF funkci. Dopředná implikace ještě triviálněji z definice.
Každá rekurzivně spočetná množina je oborem hodnot nějaké ČRF.
Důkaz: Máme rekurzivně spočetnou množinu . Vytvoříme množinu dvojic prvků (graf) , která je též rekurzivně spočetná. Selektor na ní je hledaná ČRF , pro kterou platí .
Každý obor hodnot ČRF je rekurzivně spočetná množina.
Tedy .
Důkaz: Buď minimalizací a univerzální funkcí, nebo vytáhneme selektor z