ожини Dom (g) відрізнялося від W x у njxці х. Тому будемо домагатіся того, щоб
x ГЋ Dom (g) Г›x ГЏW x
Візначімо тепер функцію g у такий способ:
g (x) = 0, ЯКЩО xГЏ W x (тоб ЯКЩО f (x) = 0),
НЕ Визначи, ЯКЩО xГЋ W x (тоб ЯКЩО f (x) = 1). p> Оскількі функція f обчіслювана, то (за тезі Черча) обчіслювана и функція g , что и Дає необхідне протіріччя. (Більш докладно, оскількі функція g обчіслювана, візьмемо таке т, что g = f m , тоді т ГЋ W m Г› т ГЋ Dom (g) Г› т ГЏ W m , чого НЕ может бути.) p> Отже, ми Робимо Висновок, что функція f НЕ є обчислюваного, І, отже, проблема В« x ГЋ W x В» нерозв'язна. Гї
Зауважімо, что ця теорема зовсім НЕ Затверджує, что мі не можемо для будь-якого конкретного числа а Сказати, чи буде визначене Значення f a ( a ). Для Деяк чисел сделать це Дуже просто. Наприклад, ЯКЩО ми написали програму Р, что обчіслює тотально функцію, и Р = Р a , то ми відразу знаємо, что Значення f a ( a ) Визначи. Теорема говорити позбав, что НЕ існує єдиного загально методом решение питання про ті, чи буде f x (х) Визначи; іншімі словами, не існує методу, что працює при всех х.
Простий наслідок цього результату Полягає в Наступний.
1.2. Наслідок. Існує обчіслювана функція h, для Якої обідві проблеми В«x ГЋ Dom (h) В» и В« х ГЋ Ran (h) В» нерозв'язні.
Доведення. Покладемо
x, ЯКЩО xГЋ W x
h (x) =
НЕ Визначи, ЯКЩО xГЏ W x
Тоді в силу тези Черча и обчіслюваності універсальної Функції y u функція h обчіслювана (більш формально ми маємо h (x) @ x1 (y u (х, х)) , а ця функція обчіслювана як результат підстановкі). Ясно, что x ГЋ Dom (h) Г› xГЋ W x Г›x ГЋ Ran (h), так что обідві Проблема В«x ГЋ Dom (h)В» и В«х ГЋ Ran (h)В» нерозв'язні.
Зх теореми 1.1 виводу ще одна ВАЖЛИВО нерозв'язна проблема:
1.3. Теорема (проблема зупинка). Проблема В«функція ф x (у) Визначи В»(чі в еквівалентній ФОРМІ В« Р x (y) ВЇ, чі В«y ГЋ W x В»нерозв'язна.
Доведення. Міркуючі неформально, ми відразу Бачимо, что Якби проблема В«функція ф x (у) Визначи В» би була розв'язна, то би була розв'язна и більш проста проблема В« функція ф x (х) Визначи В», что суперечіть теоремі 1.1.
Щоб провести ВСІ ці міркування більш докладно, розглянемо характеристичностью функцію проблеми ^ В«функція ф х (у) ВизначиВ» , что має Наступний вид:
1, ЯКЩО ф х (у) Визначи
g (x, y) =
0, ЯКЩО ф х (у) НЕ Визначи
Якби функція g булу обчіслювана, то обчислюваного булу б і функція f (x) = g (X, х), альо f є типова функція проблеми В«х ГЋ W x В» І, отже, чи не обчіслювана чинності теореми 1.1. Отже, функція g НЕ обчіслювана, и тім самим проблема В«ф x (y) ВизначиВ» нерозв'язна. Гї
Теорему 1.3 часто інтерпретують як Твердження про нерозв'язність проблеми зупинка (для МНР-програм), у якому говоритися про ті, что НЕ існує ніякого ефективного Загальне методом Установити, чі Зупини Деяка конкретна програма, запущена после Введення в неї Деяк конкретного набору початкових даніх. Зміст цього Твердження для теоретичного програмування очевидна: існує зовсім загально методу перевіркі програм на наявність у них нескінченніх ціклів.
Розглянуто в теоремі 1.1 нерозв'язна проблема В«х ГЋ W x В» ВАЖЛИВО з кількох причин. Одна З них Полягає в тому, что нерозв'язність багатьох проблем можна довести, показавши, что смороду прінаймні НЕ простіші, чем ця. Саме таким путем ми довели, что проблема зупинка (теорема 1.3) нерозв'язна: цею процес назівається Зведення однієї проблеми до Іншої.
Узагалі розглянемо Деяк проблему М (х). Часто вдається показати, что решение Загальної проблеми М (х) призвело б до решение Загальної проблеми В«х ГЋ W x В», Тоді говорять, что проблема В«х ГЋ W x В» зводіться до проблеми М (х). Іншімі словами, ЯКЩО мається дозволяюча процедура для проблеми М (x) , то Ми ...