Опубликован: 16.03.2007 | Уровень: профессионал | Доступ: платный
Лекция 4:

Свойства главных нумераций

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >

Перечислимые свойства функций

Мы уже видели (теорема 21), что никакие (нетривиальные) свойства функций не являются разрешимыми. Но некоторые являются перечислимыми (в том смысле, что множество всех номеров всех функций, обладающих этим свойством, перечислимо). Например, таково свойство функции " быть где-то определенной" (см. выше). Другой пример: свойство " f(19) определено и равно 98 ".

Имеется довольно простое описание всех перечислимых свойств. Чтобы его сформулировать, нам потребуются некоторые определения.

Будем называть образцом функцию с натуральными аргументами и значениями, имеющую конечную область определения. Другими словами, образец есть конечный список пар \langle\text{аргумент},\text{значение}\rangle (в котором все аргументы различны). Образцы можно рассматривать как конструктивные объекты (кодировать двоичными словами, натуральными числами и т.п.). Это позволяет говорить о разрешимом множестве образцов, перечислимом множестве образцов и т.п.

Каждому образцу t соответствует свойство функции " продолжать этот образец ", то есть множество \Gamma (t) всех (вычислимых) функций, которые являются продолжениями t. (Заметим в скобках, что множества \Gamma (t) образуют базу топологии на множестве всех вычислимых функций.) Легко проверить, что для любого t и для любой вычислимой нумерации U множество всех номеров всех функций из \Gamma (t) перечислимо. В самом деле, надо параллельно вычислять значения Un(x) для всех n и x ; как только накопленные данные позволяют утверждать, что U_{n} \in  \Gamma (t), надо печатать n. (Если U_{n} \in  \Gamma (t), то это обнаружится на конечном шаге, так как область определения образца t конечна.)

Пусть T произвольное множество образцов. Через \Gamma (T) обозначим множество всех вычислимых функций, которые продолжают хотя бы один образец из T, то есть объединение множеств \Gamma (t) по всем t \in  T. Теперь мы можем сформулировать обещанный результат:

Теорема 24. (a) Пусть T произвольное перечислимое множество образцов, а U вычислимая универсальная функция для класса вычислимых функций одного аргумента. Тогда множество всех U -номеров всех функций из \Gamma (T) перечислимо. (б) Пусть U главная универсальная функция (для класса вычислимых функций одного аргумента). Пусть G некоторое подмножество этого класса. Если множество \{  n | U_{n} \in  G\} всех U -номеров всех функций из класса G перечислимо, то G = \Gamma (T) для некоторого перечислимого множества образцов T.

Например, упоминавшийся выше класс где-то определенных функций соответствует множеству всех непустых образцов (а также, скажем, множеству всех образцов с одноэлементной областью определения).

Часть (а) утверждения доказывается легко: надо параллельно вычислять все значения U(n,x) и перечислять все образцы из T ; как только обнаруживается, что какая-то из функций Un является продолжением какого-то образца из T, следует печатать n.

Содержательной является часть (б), где мы используем тот факт, что нумерация является главной. Нам понадобятся две леммы.

Лемма 1. Если вычислимая функция h является продолжением вычислимой функции g, принадлежащей классу G, то и функция h принадлежит классу G.

Лемма 2. Если вычислимая функция g принадлежит классу G, то существует функция h с конечной областью определения (образец), принадлежащая классу G, продолжением которой g является.

(Замечание в скобках. В совокупности эти две леммы утверждают, что любое перечислимое свойство G является открытым в описанной выше топологии.)

Покажем, как из этих лемм вытекает требуемое утверждение. Заметим, что множество T всех образцов, принадлежащих классу G, перечислимо. В самом деле, по образцу как конструктивному объекту (т.е. по списку пар \langle\text{аргумент},\text{значение}\rangle ) можно получить его U -номер, поскольку функция U является главной. (Формально: рассмотрим функцию \langle t,x\rangle\hm\mapsto\text{(значение}$ образца~$t$ в точке~$x) и применим определение главной универсальной функции.) Поэтому множество T является перечислимым как прообраз перечислимого множества всех U -номеров всех функций из класса G.

Леммы 1 и 2 гарантируют, что G = \Gamma (T). В самом деле, по лемме 1 любая функция из \Gamma (T) принадлежит классу G, так как некоторая ее часть принадлежит G. С другой стороны, лемма 2 гарантирует, что всякая функция g из G имеет конечную часть, принадлежащую G (тем самым и T ) и потому g \in \Gamma (T).

Осталось доказать леммы 1 и 2. Пусть, в противоречии с леммой 1, некоторая функция g принадлежит классу G, а ее продолжение h нет. Возьмем перечислимое неразрешимое множество K и рассмотрим такую функцию двух аргументов:

V(n,x)= \left\{
           \begin{aligned}
            &\text{$h(x)$, если $n\in K$,}\\
            &\text{$g(x)$, если $n\notin K$.}
           \end{aligned}
        \right.

Эта функция вычислима. В самом деле, ее график, как легко проверить, перечислим как объединение графика g, умноженного на N, и графика h, умноженного на K. Другими словами, чтобы вычислить V(n,x), мы запускаем процесс перечисления K, а также (параллельно с этим процессом) вычисления g(x) и h(x). Результат выдается, если завершилось вычисление g(x) (в этом случае уже неважно, лежит ли n в K, так как h есть продолжение g ) или если завершилось вычисление h(x) и к тому же n обнаружилось в K.

Поскольку функция U является главной, существует всюду определенная функция s с таким свойством:

  • n \in  K \Rightarrow  U_{s(n)}=h \Rightarrow  U_{s(n)} \notin  G ;
  • n \notin  K \Rightarrow  U_{s(n)}=g \Rightarrow  U_{s(n)} \in  G.

Тем самым дополнение к K является прообразом перечислимого множества номеров функций из G при вычислимом отображении s и потому (теорема 5) перечислимо. Полученное противоречие завершает доказательство леммы 1.

Лемма 2 доказывается аналогичным рассуждением. Пусть (вопреки утверждению леммы) функция g принадлежит классу G, но никакая ее конечная часть не принадлежит этому классу. Рассмотрим функцию

V(n,x)= \left\{
           \begin{aligned}
            &\text{g(x), } &\text{если после x шагов перечисления K}\\
            &                &\text{число n еще не появилось,}\\
            &\hbox to 0pt{\text{не определено, если появилось.}\hss}
           \end{aligned}
        \right.

Легко видеть, что при n \notin  K функция Vn совпадает с g, и потому принадлежит G, а при n \in  K функция Vn является конечной частью функции g и потому не принадлежит G. Далее рассуждаем как в лемме 1.

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >
Жансерик Амзеев
Жансерик Амзеев
Казахстан, Алматы
Виталий Федоров
Виталий Федоров
Россия, Ярославская область