Теорема Райса-Шапиро

Материал из Викиконспекты
Версия от 19:27, 17 января 2012; Tsar (обсуждение | вклад) (Теорема Райса-Шапиро: Доказательство самой теоремы)
Перейти к: навигация, поиск

Определение образца

Определение:
Пусть γ={<x1,y1>,<x2,y2>,...,<xn,yn>}.
Тогда γ называется образцом.


Свойство образца

Определение:
Пусть Aγ={p|p(x1)=y1p(x2)=y2...p(xn)=yn}, где <xi,yi>∈γ.
Тогда Aγ называется свойством образца γ.


Лемма о перечислимости свойства образца

Лемма:
Свойство Aγ перечислимо для любого образца γ.
Доказательство:

Очевидно, как строится программа, которая возвращает 1, если pAγ (запускаем p на x-ах и проверяем, что программа вернёт соответствующие y-ки).

Такой программы достаточно для доказательства перечислимости.


Лемма о перечислимости свойства перечислимого множества образцов

Лемма:
Пусть Γ - перечислимое множество образцов, AΓ=γΓAγ. Тогда AΓ - перечислимо.
Доказательство:

Приведём программу, выдающую 1, если pAΓ:

q(p):
  for k=1..+
      for γΓ[1..k]
          if (pAγ)|TL(k)
              return 1
Такой программы достаточно для доказательства перечислимости.


Теорема Райса-Шапиро

Теорема:
Свойство функций A перечислимо тогда и только тогда, когда Γ:A=AΓ, где Γ - перечислимое множество образцов.
Доказательство:

Очевидно (перебор по TL).


Здесь нам потребуются две вспомогательные леммы.

Лемма:
Пусть A - перечислимое свойство функций, gA, h - продолжение g. Тогда hA.
Доказательство:

Докажем от противного. Пусть gA, h - продолжение g, hA.

Рассмотрим перечислимое и неразрешимое множество K и следующую программу:

V(n,x)={h(x), if nK;g(x), else.

V - вычислимая (можно параллельно запустить g(x) и проверку, принадлежит ли n множеству K (просто перечисляя это множество); если g(x) успешно выполнится, то вернуть её результат).

Пусть p(x)=V(n,x).

Тогда программа, которая запускает параллельно проверку, принадлежит ли n множеству K (просто перечисляя это множество), и проверку, принадлежит ли p множеству A, является разрешающей программой для множества K (так как если pA, то nK по построению V(n,x)).

Противоречие, так как брали неразрешимое K.


Лемма:
Если A - перечислимое свойство функций, gA, то h, такое что |Dom(h)|<+, g - продолжение h, hA.
Доказательство:

Рассмотрим перечислимое и неразрешимое множество K и следующую программу:

V(n,x)={g(x), if (1);, else;

где условие (1) следующее: через x шагов перечисления K число n не появилось.

Если nK, то V(n,x)=g(x).

Если nK, то V(n,x)=g(x) при x=0t1 для какого-то t.

Запустим параллельно проверку, принадлежит ли n множеству K и проверку, принадлежит ли V(n,x) множеству A.

<продолжение доказательства леммы>


Вернёмся к доказательству теоремы.

Функции с конечной областью определения записываются так:

f(x):
    if x=x1
        return y1
    
    if x=xi
        return yi
    
    

Такие функции перечислимы. Значит такие функции, удоволетворяющие A, тоже перечислимы.

AΓA по первой вспомогательной лемме.

AAΓ по второй вспомогательной лемме.

Значит A=AΓ. Теорема доказана.