Це цікаве питання. Очевидно , не можна очікувати , щоб мати програму , яка вирішує для кожного e чи ∀kT(e,k) є, чи ні, оскільки це вирішить проблему зупинки. Як уже згадувалося, існує кілька способів обчислення доказів: розширення Кері-Говарда, усвідомлюваність, діалектика тощо. Але всі вони обчислювально інтерпретували б теорему, яку ви згадали більш-менш, наступним чином.
Для простоти розглянемо еквівалентну класичну теорему
(1) ∃i∀j(¬T(e,j)→¬T(e,i))
Це (конструктивно) еквівалентно одній згаданої тому , що з урахуванням можна вирішити , слід чи ∀ до Т ( е , до ) має місце чи ні, просто перевіряючи значення ¬ Т ( е , я ) . Якщо ¬ T ( e , i ) виконується, то ∃ i ¬ T ( e , i ) і, отже, ¬ ∀ i T ( e , i ) . Якщо з іншого бокуi∀kT(e,k)¬T(e,i)¬T(e,i)∃i¬T(e,i)¬∀iT(e,i) не дотримується тоді (1) маємо ∀ j ( ¬ T ( e , j ) → ⊥ ), з чого випливає ∀ j T ( e , j ) .¬T(e,i)∀j(¬T(e,j)→⊥)∀jT(e,j)
Тепер знову ми не можемо обчислити в (1) для кожного даного e, оскільки ми знову вирішимо задачу зупинки. Усі інтерпретації, про які було сказано вище, мали б поглянути на еквівалентну теоремуie
(2) ∀ f∃ i'( ¬ Т( е , ф( я') ) → ¬ Т( е , я') )
Функція називається функцією Гербранда. Він намагається обчислити зустрічний приклад j для кожного даного потенційного свідка i . Зрозуміло, що (1) і (2) рівнозначні. Зліва направо це конструктивно, просто візьміть i ′ = i в (2), де i є припущеним свідком (1). Справа наліво треба міркувати класично. Припустимо, що (1) не відповідає дійсності. Потім,fjii'= ii
(3) ∀ i ∃ j ¬ ( ¬ T( е , j ) → ¬ Т( е , і ) )
Нехай - функція, що свідчить про це, тобтоf'
(4) ∀ i ¬ ( ¬ T( е , ф'( i ) ) → ¬ T( е , і ) )
Тепер візьмемо в (2) і маємо ( ¬ T ( e , f ′ ( i ′ ) ) → ¬ T ( e , i ′ ) ) , для деякого i ′ . Але беручи i = i ′ в (4), ми отримуємо заперечення цього, протиріччя. Звідси (2) випливає (1).f= f'( ¬ Т( е , ф'( я') ) → ¬ Т( е , я') )i'i = i'
Отже, маємо, що (1) і (2) класично рівнозначні. Але цікавим є те, що (2) зараз є дуже простим конструктивним свідком. Просто візьміть якщо T ( e , f ( 0 ) ) не виконується, тому що тоді висновок (2) істинний; інакше візьмемо i ′ = 0, якщо T ( e , f ( 0 ) ) виконується, тому що тоді ¬ T ( e , f ( 0 )i'= f( 0 )Т( е , ф( 0 ) )i'= 0Т( е , ф( 0 ) )¬ Т( е , ф( 0 ) ) не втримується, а передумова (2) хибна, що робить його знову істинним.
Отже, спосіб обчислювальної інтерпретації класичної теореми типу (1) - це дивитись на (класично) еквівалентну формулювання, що може бути конструктивно доведено в нашому випадку (2).
Різні трактування, згадані вище, розходяться лише у тому, як функція з'являється. У випадку реалізації та інтерпретації діалектики це явно дається інтерпретацією, коли вона поєднується з деякою формою негативного перекладу (як, наприклад, Гедель-Генцен). У випадку розширень Curry-Howard з операторами call-cc та продовження функція f виникає з того, що програмі дозволено "знати", як буде використовуватися певне значення (у нашому випадку i ), тому f - це продовження програми навколо точки, де я обчислюється.ffifi
Ще одним важливим моментом є те, що ви хочете, щоб перехід від (1) до (2) був "модульним", тобто якщо (1) використовується для доказування (1 '), то його інтерпретацію (2) слід використовувати аналогічно довести інтерпретацію (1 '), скажімо, (2'). Усі трактування, згадані вище, роблять це, включаючи негативний переклад Геделя-Генцена.