Алгоритм визначення рівності функції на просто набраному лямбдальному обчисленні?


10

Ми знаємо, що бета-рівність просто введених лямбда-термінів можна вирішити. З огляду на M, N: σ → τ, чи вирішується чи для всіх X: σ, MX β NX?


Просто набрана вібрація від Lambda Calculus / STLC . Оскільки його не є Тьюрінгом повним, чи є якась інша основна модель обчислення, яка є її еквівалентом? це також може бути корисним для вивчення алгоритму виявлення зупинок, який відповідно до Вікіпедії визначається для STLC ...
vzn

3
@Marzio: Насправді, я думаю, проблема тут полягає в тому, як формулюється питання, що є досить неточним. Коли це правильно сформульовано, це питання на рівні досліджень. Кращою формулюванням було б: ми знаємо, що бета-рівність просто введених лямбда-термінів можна вирішити. З огляду на M,N:στ , чи вирішується чи для всіх X:σ , MXβNX ? Відповідь загалом негативна (тому не існує такого алгоритму, як той, який шукає Вікліб). Хоча це, можливо, очікувалося, це апріорі не очевидно і є наслідком пари паперів з 90-х.
Даміано Мацца

@DamianoMazza: гаразд, я дійсно не голосував за його закриття ... Я видалю свій коментар, залиште ваш і чекаю коментаря / редагування ОП.
Marzio De Biasi

@DamianoMazza та Marzio, я не знаю достатньо, щоб поставити таке формальне запитання. Хочеться, що я і зробив, але це не те, чого я навчаюсь у своїй школі. Насправді, навіть гуггінг щодо «бета-рівності», що я насправді намагався перед тим, як задати питання, дає мені так мало результатів, що майже так, як цей термін навіть не існував. Тож я навіть не маю уявлення, де ти дізнаєшся і прочитаєш про все це. Чи б ви, хлопці, ласкаво вказали мене на потрібне місце, щоб почати самостійно вивчати тему? Питання оновлено.
MaiaVictor

1
@Viclib: бета-еквівалентність - це технічне поняття, я уникав згадувати це у своїй відповіді. Приблизно два терміни бета-еквівалентні, коли вони дають однаковий результат. Отже, кажучи, що для всіх означає, що і обчислюють одну і ту ж функцію. Щодо покажчиків для вивчення (типізованого або нетипізованого) лямбда-числення, я вважаю , що замітки Пітера Селінджера та записки Лекцій Соренсена та Уржичина про Кері -Говарда є відмінними вихідними місцями. MXβNXXMN
Даміано Мацца

Відповіді:


13

Як я вже сказав у своєму коментарі, загалом відповідь - ні.

Важливим моментом, який потрібно зрозуміти (я кажу це для Вікліба, який, здається, дізнається про ці речі), є те, що наявність мови програмування / набору машин, у яких усі програми / обчислення закінчуються, не означає, що рівність функції (тобто, чи два програми / машини, які обчислюють одну і ту ж функцію) можна вирішити. Простий приклад: візьміть набір багаточленних машин Тьюрінга. За визначенням, всі такі машини припиняються на всіх входах. Тепер, враховуючи будь-яку машину Тьюрінга , існує машина Тьюрінга яка, у рядок , імітуєкроки обчислення на фіксованому вході (скажімо, порожній рядок) і приймає, якщо закінчується не більшеMM0x|x|MM|x|кроки або відхиляє інше. Якщо - машина Тьюрінга, яка завжди негайно відхиляє, і обидва (очевидно) поліноміально-тактовані, і все ж, якщо ми могли б вирішити, чи і обчислюють одну і ту ж функцію (або, у цьому випадку, вирішують одну і ту ж мову), ми могли б вирішити, чи закінчується (що, пам’ятаємо, довільна машина Тьюрінга) на порожній рядку.NM0NM0NM

У випадку просто набраного -calculus (STLC) працює аналогічний аргумент, за винятком того, що вимірювання виразної сили STLC не настільки тривіальне, як у наведеному вище випадку. Коли я писав свій коментар, я мав на увазі пару статей Гіллебранда, Канеллакіса та Майрсона з початку 90-х, які показують, що, використовуючи складніші типи, ніж звичайний тип цілих чисел Церкви, можна кодувати в STLC досить складний розрахунки для роботи вищезгаданого аргументу. Насправді я зараз бачу, що потрібний матеріал вже є у спрощеному доказі теореми Статмена про Мейрсона:λ

Гаррі Г. Мейрсон, простий доказ теореми Статмена. Теоретичні інформатики, 103 (2): 387-394, 1992. (Доступно в Інтернеті тут ).

У цій роботі, Mairson показує, що для будь-якої машини Тьюринга , існує простий тип і -term , що кодує функції переходів . (Це апріорі не очевидно, якщо мати на увазі надзвичайно слабку виражальну силу STLC щодо цілих чисел Церкви. Дійсно, кодування Мейрсона не є негайним). З цього не важко побудувати термінMσλδM:σσM

tM:nat[σ]bool

(де - екземпляр на типу цілих чисел Церкви) таким чином, що зменшується до якщо закінчується не більше кроків, коли подається порожній рядок або зменшується до іншому випадку. Як і вище, якби нам вдалося вирішити, що функція, представлена є константа , ми вирішили би припинити на порожній рядку.nat[σ]σtMn_1_Mn0_tM0_M


Можливо, можливо також використовувати кодування багаторізних поліномних функцій в STLC, а потім звернутися до теореми Матіясевича .
Коді

Таким чином, STLC не є завершеним, але є достатньо потужним для кодування функції переходу машини Тьюрінга !? Тож машину Тьюрінга можна було б визначити як стрічку плюс програму STLC, що працює на ній?
MaiaVictor

2
@Viclib: Поміркуй: моделювання одного кроку довільної машини Тьюрінга не вимагає великих обчислювальних потужностей. По суті, вам потрібні лише обмежені типи даних (з if-then-else), списки (з основними операціями: мінуси, хвіст тощо) та впорядковані пари. (Насправді, Розширена теза Церкви-Тьюрінга стверджує, що така низька складність є загальною для кожної розумної моделі машини). Чого не вистачає STLC, це можливість виконувати переходи TM "ad libitum" незалежно від введення: він може лише повторити їх у кілька разів, що дорівнює вежі експонентів у вхідному розмірі (див. Статтю Мейрсона).
Даміано Мацца

1
@cody: Спасибі, я не знав цього документу. Я думаю, ти маєш рацію.
Даміано Мацца
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.