Для яких мов вже існує теорія еквівалентності спостережень?


11

Для підтвердження правильності я шукаю корисне поняття еквівалентності програми для систем чистого типу (BTS) Barendregt; цього не вистачає для досить специфічних систем. Моя мета - просто використовувати поняття, а не досліджувати його заради себе.

Це поняття повинно бути " розширеним " - зокрема, щоб довести, що , повинно бути достатньо, щоб довести, що для всіх значень відповідного типу.t 1t1t2vt1vt2vv

Денотаційна еквівалентність

Денотаційна еквівалентність легко задовольняє всі правильні леми, але денотаційна семантика для довільних ПТС здається досить складною - це здається важким вже для Системи F.

Контекстуальна / спостережна еквівалентність

Очевидною альтернативою є різні форми контекстуальної еквівалентності (два терміни є рівнозначними, якщо жоден основний контекст не може їх розрізнити), але його визначення не одразу застосоване; різні леми не тривіально доводити. Чи доведено їх для ПТС? Як альтернатива, чи теорія буде "очевидним продовженням", чи є підстави вважати, що теорія буде суттєво відрізнятися?

EDIT: Я не сказав, що важко вище.

Легка частина: визначення

Визначення еквівалентності не надто важке, і це визначення з'являється у багатьох працях (починаючи принаймні з дослідження Плоткіна 1975 р. Про ПКФ, якщо не раніше - джерелом може бути кандидатська дисертація Морріса з 1968 р.). Ми якщо для всіх наземних контекстів , - тобто і дають однаковий результат . Тут у вас є кілька варіантів з безліччю альтернатив: Наприклад, сильно нормалізуючою мовою, якщо у вас є основний тип натуралів, ви можете сказати, що наземні контексти - це ті, які повертають природних речовин, і тоді означає, що і C C [ t 1 ] C [ t 2 ] C [ t 1 ] C [ t 2 ] a b a bt1t2CC[t1]C[t2]C[t1]C[t2]ababоцінити до тієї ж кількості. При невиконанні для розумних мов досить використовувати "X закінчується" як спостереження, оскільки якщо дві програми рівноцінні при спостереженні за припиненням, вони також є рівнозначними при спостереженні за результатом.

Важка частина: докази

Однак ці документи часто не пояснюють, наскільки важко реально використовувати це визначення. Всі наведені нижче посилання показують, як вирішити цю проблему, але необхідна теорія важче, ніж хтось думає. Як ми можемо довести, що ? Чи насправді ми аналізуємо та індукуємо ситуацію у контекстах? Ти не хочеш цього робити.t1t2

Як зазначає Мартін Бергер, ви хочете використовувати замість цього або бісимуляцію (як це робив Піттс), або відношення логічної еквівалентності (що Гарпер просто називає "логічною еквівалентністю").

Нарешті, як ви докажете розширення, як визначено вище?

Гарпер вирішує ці питання на 10 сторінках для System T, завдяки значній розумності та логічним відносинам. Пітс займає більше. Деякі мови ще складніші.

Як з цим боротися

Насправді я спокушаюсь зробити свої докази умовно вигаданою теорією еквівалентності для ПТС, але фактичні теорії потребують нетривіальних аргументів, тому я не впевнений, наскільки вірогідна така гіпотеза.

Мені відомо (хоча і не докладно) наступних робіт:

  • Ендрю Піттс (наприклад, в ATTAPL для розширеної системи F, і в кількох статтях, таких як 58-сторінкова "Операційно-теоретична рівновага програм").
  • Практичні основи мов програмування (глави 47-48), натхненні Піттом (але стверджує, що вони мають більш прості докази).
  • Логічне вивчення еквівалентності програми . Я не можу знайти конспект з англійської мови, але, схоже, витрачаю багато зусиль на побічні ефекти (посилання), що здається ортогональним ускладненням.

1
Для теорій типів визначення оперативної контекстної конгруенції має бути простим, оскільки всі програми припиняються. Визначте поняття спостереження для базового типу (наприклад, припинення, записане , у тип Unit), а потім скажіть для всіх добре набраних та закриваючих контекстів базового типу, маємо iff . З PTS це дещо складніше, оскільки це може призвести до припинення. P Q C [ ]PQC[]C [ Q ] C[P]C[Q]
Мартін Бергер

@MartinBerger: це ідея, на яку я натякаю, але доводити це безпосередньо, напрочуд важко, тому що вам потрібно зробити докази для всіх C (я поясню це краще у питанні). Крім того, якщо всі програми припиняються, визначення, яке ви використовуєте, як дане, ідентифікує всі програми.
Blaisorblade

Чи має ваш PTS лише функції обчислювальної форми? Якщо тоді, то, як видається , це відмінне запитання (і відповіді) вказує на те, що еквівалентності достатньо для завершення систем чистого типу - і це добре пояснює, як визначити контекстну еквівалентність для завершення обчислень. Я думаю, що використання наземних значень - це правильний спосіб визначити контекстуальну еквівалентність, а припинення - лише зручний ярлик сумнівних достоїнств. βη
gasche

1
@Blaisorblade Вибачте, так, якщо ви використовуєте припинення як спостережливе, то ви маєте рацію. Вибачте, я вирізав і вставив визначення для створення повних детермінованих мов. Якщо у вас є функції завершення, ви можете використовувати інші основні спостережувані. Наприклад, в booleans: ... iff . Кількісне визначення у всіх контекстах - це завжди проблема. Стандартний спосіб поводження з ним полягає у визначенні другого відношення, яке (1) - це звук wrt і (2) легко обробляється, наприклад, якесь поняття подібності або логічне відношення. Залежить від програми. C [ Q ] t r u e C[P]trueC[Q]true
Мартін Бергер

1
@Blaisorblade Напевно. Теоретики одночасності займаються цим інтенсивно протягом тривалого часу, оскільки при одночасних процесах набагато менш зрозуміло, яке поняття еквівалентності використовувати. Це призвело до розподілу праці: використовуйте семантику на основі скорочення з кількісною оцінкою за контекстами, щоб визначити поняття еквівалентності, а потім використовуйте бісімуляції або сліди над міченими переходами, щоб довести еквівалентність (або її відсутність). Велике відкрите дослідницьке питання теорії одночасності полягає в тому, як алгоритмічно перейти від першого до другого.
Мартін Бергер

Відповіді:


4

Композиційна денотаційна семантика Мови програмування (наприклад, доменно-теоретична чи ігрово-теоретична) є адекватною, якщо семантично рівні терміни означають, що вони спостережно еквівалентні: Часто буває так, що набагато простіше обчислити позначення, щоб довести спостережувальну еквівалентність. Це поширена методика з багатьма відомими варіантами. Адекватність визначена вже в документі PCF Плоткіна.[[[]]

[[t1]]=[[t2]]t1t2.

Немає особливої ​​потреби в адекватній семантиці, щоб використовувати якийсь інший формалізм. Ви також можете наблизити до мови програмування, що обговорюється, наприклад, використовуючи операційні методи.
Мартін Бергер

Дякую за відповідь, але -1: Хоча я згоден, питання стосується систем чистого типу - AFAICS, денотаційна семантика для систем чистого типу є відкритою проблемою, тому я думаю, що відповідь має вказувати на деяку денотаційну семантику. (Насправді, якби у мене була денотаційна семантика, я б взагалі не обходився з операційною, як зазначено в питанні). (Але вибачте за надто довге запитання.)
Blaisorblade

@MartinBerger, я не розумію вашої критики. ОП запитує методи виявлення еквівалентності спостереження, я згадую загальний, а потім заперечуєте, що існують інші способи, які уникають методу?
Андрій Бауер

2
@Blaisorblade, ну тоді вам просто доведеться винайти денотаційну семантику для систем чистого типу, чи не так? :-) Але серйозніше, я запитаю Алекса Сімпсона, він би краще знав денотаційну семантику для таких речей.
Андрій Бауер

@AndrejBauer Це не було критикою, скоріше як доповненням.
Мартін Бергер

2

Теорії домену та моделей PTSes не вивчені так сильно, як я боюся. Одним детальним джерелом є докторська робота Томаса Стрейхера: « Семантика теорії типів» . Він дає теоретичну семантику категорії для всіх PTS, хоча я не впевнений, що він звертається до -конверсії.η


1
Я не думаю, що кандидат наук Стрейхера стосується ПТС. Йдеться про семантику обчислення конструкцій та результати незалежності через семантику надійності. Дивіться тут .
Мартін Бергер

Дякуємо за роз’яснення! Я боюся, що посилання порушено (і важко це виправити за допомогою мінімізованого посилання)
коді

Посилання було на зміст книги тут . Я сподіваюся, що це працює краще.
Мартін Бергер

@MartinBerger: дякую за роз’яснення! Я повернусь до припущення, що семантика для довільних ПТС (починаючи з Системи U та та всіх їх патологій) знаходиться поза нашим досягненням. λ
Blaisorblade

@MartinBerger: Ви маєте на увазі семантику реалізації?
Домінік Девріз

0

Ця відповідь пропонує підхід до проблеми. (Відгуки вітаються).

Глава 49 PFPL одразу обговорює еквівалентні поняття спостережливої ​​еквівалентності та логічної еквівалентності. Логічна еквівалентність - це те саме відношення, яке застосовується до параметричності стану, тому ядро ​​глави - доказ параметричності для системи F.

Робота над параметричністю для PTS, AFAICT, не обговорює зв’язок із спостережливою еквівалентністю. Насправді, щоб навіть визначити спостережувальну еквівалентність, якщо ви не маєте винищення, вам потрібно використовувати позитивний тип ґрунту (натурали, булеви), який слід використовувати для спостережень.

Однак ключова теорема (PFPL 47.6, 48.3, 49.2) про співвідношення двох відносин доводиться незалежно від конкретної мови:

Спостережна еквівалентність - це найбільш груба послідовна конгруентність у виразах.

Потім, щоб показати, що логічна еквівалентність передбачає спостережливість еквівалентності, потрібно лише показати, що логічна еквівалентність є послідовною конгруентністю. Однак інший напрям потребує ще однієї роботи: зокрема, щоб показати, що логічна еквівалентність - це конгруентність, слід діяти шляхом індукції у контекстах.

EDIT: з таким підходом є велика проблема: ви не отримаєте n + 1 = 1 + n. Дозвольте VecN nбути типом векторів натуралів довжини n(якщо припустити, що їх можна визначити або закодувати), і розгляньте використання VecNяк контексту (ну, вам фактично знадобиться контекст, що закінчується VecN, але майте на собі). Так НЕ определительная еквівалентності, типи і несумісні, отже , і не спостережувані еквівалентні.n+1=1+nVec (n + 1)Vec (1 + n)n + 11 + n

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.