Теорема о рекурсии — различия между версиями
Vincent (обсуждение | вклад) |
Vincent (обсуждение | вклад) |
||
| Строка 10: | Строка 10: | ||
|statement= Пусть на натуральных числах задано отношение эквивалентности <tex>\equiv</tex>. Тогда следующие два утверждения не могут быть выполнены одновременно: <br> | |statement= Пусть на натуральных числах задано отношение эквивалентности <tex>\equiv</tex>. Тогда следующие два утверждения не могут быть выполнены одновременно: <br> | ||
# Пусть <tex>f</tex> {{---}} вычислимая функция. Тогда существует всюду определённое вычислимое <tex>\equiv</tex> {{---}} продолжение <tex>g</tex> функции <tex>f</tex>, то есть такая <tex>g</tex>, что <tex>D(g)=N</tex> и <tex>\forall x</tex> такого, что <tex>f(x) \ne \perp</tex>, выполнено <tex>f(x) \equiv g(x)</tex>. | # Пусть <tex>f</tex> {{---}} вычислимая функция. Тогда существует всюду определённое вычислимое <tex>\equiv</tex> {{---}} продолжение <tex>g</tex> функции <tex>f</tex>, то есть такая <tex>g</tex>, что <tex>D(g)=N</tex> и <tex>\forall x</tex> такого, что <tex>f(x) \ne \perp</tex>, выполнено <tex>f(x) \equiv g(x)</tex>. | ||
| − | # Найдётся такая всюду определенная вычислимая <tex>h</tex>, что <tex>\forall n </tex> | + | # Найдётся такая всюду определенная вычислимая <tex>h</tex>, что <tex>\forall n </tex> выполнено <tex>h(n) \not\equiv n</tex>. |
|proof= | |proof= | ||
Приведем доказательство от противного. Пусть оба утверждения выполнены. <br> | Приведем доказательство от противного. Пусть оба утверждения выполнены. <br> | ||
Версия 04:47, 23 января 2012
Теорема о рекурсии
| Теорема (о рекурсии): | ||||||
Пусть — универсальная функция, — всюду определённая вычислимая функция. Тогда найдется такое , что . | ||||||
| Доказательство: | ||||||
|
Начнём с доказательства леммы.
Теперь определим отношение так: . Покажем, что для него выполнено первое утверждение леммы. | ||||||
Теорему о рекурсии можно переформулировать следущим образом.
| Теорема (О рекурсии): |
Пусть — вычислимая функция.Тогда найдется такая вычислимая , что . |
| Доказательство: |
|
Так как — универсальная, то для любой вычислимой всюду определенной найдется такая вычислимая всюду определенная , что . Тогда найдется такая что . По доказанному найдется такое что . Возьмем . Тогда . |
Если говорить неформально, теорема о рекурсии утверждает, что внутри программы можно использовать ее код. Это упрощает доказательство некоторых теорем.
Пример использования
Используя теорему о рекурсии приведём простое доказательство неразрешимости языка .
| Утверждение: |
Язык неразрешим. |
|
Предположим обратное, тогда существует программа разрещающая .
Рассмотрим следущую программу:
p(x)
if r(p)
return 1
while true
Пусть . Тогда условие выполняется и . Противоречие. Если , то не выполняется и . Противоречие. |
Источники
Литература
- Верещагин Н. К., Шень А. Лекции по математической логике и теории алгоритов. Часть 3. Вычислимые функции — М.: МЦНМО, 1999 - С. 176