313
правок
Изменения
→Рекурсивные функции
# Проекция. <tex>\mathrm{U^n_i}: \mathbb{N}^{n} \rightarrow \mathbb{N}</tex>, <tex>\mathrm{U^n_i} (x_1, ... x_n) = x_i</tex>
# Подстановка. Если <tex>\mathrm{f}: \mathbb{N}^{n} \rightarrow \mathbb{N}</tex> и <tex>\mathrm{g_1}, ... \mathrm{g_n}: \mathbb{N}^{m} \rightarrow \mathbb{N}</tex>, то <tex>\mathrm{S}\langle{}\mathrm{f},\mathrm{g_1},...\mathrm{g_n}\rangle: \mathbb{N}^{m} \rightarrow \mathbb{N}</tex>. При этом <tex>\mathrm{S}\langle{}\mathrm{f},\mathrm{g_1},...\mathrm{g_n}\rangle (x_1,...x_m) = \mathrm{f}(\mathrm{g_1}(x_1,...x_m), ... \mathrm{g_n}(x_1,...x_m))</tex>
# Примитивная рекурсия. Если <tex>\mathrm{f}: \mathbb{N}^{n} \rightarrow \mathbb{N}</tex> и <tex>\mathrm{g}:\mathbb{N}^{n+2} \rightarrow \mathbb{N}</tex>, то <tex>\mathrm{R}\langle{}\mathrm{f},\mathrm{g}\rangle: \mathrmmathbb{N}^{n+1}} \rightarrow \mathrmmathbb{N}</tex>, при этом <tex>\mathrm{R}\langle{}\mathrm{f},\mathrm{g}\rangle (x_1,...x_n,y) = \left\{\begin{array}{ll}
\mathrm{f}(x_1,...x_n) & , y = 0\\
\mathrm{g}(x_1,...x_n,y-1,\mathrm{R}\langle{}\mathrm{f},\mathrm{g}\rangle(x_1,...x_n,y-1)) &, y > 0
\end{array}\right.</tex>
# Минимизация. Если <tex>\mathrm{f}: \mathrmmathbb{N}^{n+1}} \rightarrow \mathrmmathbb{N}</tex>, то <tex>\mu \langle{}\mathrm{f}\rangle: \mathrmmathbb{N}^n} \rightarrow \mathrmmathbb{N}</tex>, при этом <tex>\mu \langle{}\mathrm{f}\rangle (x_1,...x_n)</tex> — такое минимальное число <tex>y</tex>, что <tex>\mathrm{f}(x_1,...x_n,y) = 0</tex>. Если такого <tex>y</tex> нет, результат данного примитива неопределен.
Если некоторая функция <tex>\mathrmmathbb{N}^{n} \rightarrow \mathrmmathbb{N}</tex> может быть задана с помощью данных примитивов, то она называется рекурсивной. Если некоторую функцию можно собрать исключительно из первых 5 примитивов (то есть без использования операции минимизации), то такая функция называется примитивно-рекурсивной.
===Примитивно рекурсивные функции===