Ета розширення за малюнком обчислення лямбда


12

Клоп, ван Оостром та де Врієр мають документ про обчислення лямбда з візерунками.

http://www.sciencedirect.com/science/article/pii/S0304397508000571

У певному сенсі шаблон є деревом змінних, хоча я просто думаю про це як про вкладений набір змінних, наприклад, ((x, y), z), (t, s)).

У роботі вони показали, що якщо шаблони лінійні, в тому сенсі, що жодна змінна в шаблоні не повторюється, то це правило

(\p . m) n = m [n/p]

де p - змінна закономірність, а n - набір термінів з точно такою ж формою, що і p, є сполучними.

Мені цікаво, чи є подібні розробки в літературі для обчислення лямбда з візерунками та додатковим правилом ета (розширення, скорочення або просто рівність).

Зокрема, під етапом, я маю на увазі

m = \lambda p . m p

Більш прямо, мені цікаво, якими властивостями матиме таке обчислення лямбда. Наприклад, чи зливається вона?

Це змушує класифікаційну категорію закрити, оскільки вона примушує властивість, яка

m p = n p implies m = n 

Використовуючи правило \ xi між ними. Але, можливо, щось може піти не так?


Чи можете ви написати ставити, яке правило ви маєте на увазі? Якщо це не дуже дивно, ви повинні мати можливість кодувати його за допомогою сум і робити аргумент моделювання.
Макс Новий

2
@MaxNew: схоже, він запитує про нетипізований підрахунок. Все, що стосується шаблонів, ідеально працює з типами (я так скромно пропоную власну увагу на узгодженні шаблону ), але нетипізований обчислення лямбда досить відрізняється від типового LC (особливо wrt eta), на що я не наважуюся відповісти, не роблячи доказів .
Ніл Крішнасвамі

@MaxNew: Що означає кодування за сумами?
Джонатан Галлахер

@NeelKrishnaswami: Я насправді цікавлюсь обома. Я думаю, що я нервую, коли є змінні типу продукту разом із правилом eta. Я думаю, що це робиться, наприклад, dicosmo.org/Articles/JFP96.pdf . Але якщо я помиляюся, будь ласка, виправте мене. Тоді у вас є рівності на зразок \ lambda x .mx = m = \ lambda (p, q). m (p, q), наприклад. Дякуємо за посилання на ваш документ!
Джонатан Галлахер

Відповіді:


7

Це не повна відповідь; це надто великий коментар.

Якщо ви поширюєте набране лямбда-обчислення з продуктами з проективними елімінаторами (тобто, продуктами для усунення fst(e)та snd(e)), то в основному проблем не виникає. Причина, за якою знадобилося так довго, це те, що виявляється, що природніше робити ета розширення, а не зменшення ета . Див. «Чесноти розширення ета» Баррі Джея .

Якщо ви хочете, щоб продукти мали елімінатор стилю візерунка

let (a,b) = e in t 

Тоді справи складніші. Основна складність із узгодженням шаблону - це перетворення маршрутів на маршрутах . Тобто ці розрахунки мають рівняння

C[let (a,b) = e in t] === let (a,b) = e in C[t]

і з'ясувати (а) який контекст C[-]використовувати та (б) як орієнтувати це рівняння, стає складним. ІМО, найсучаснішими підходами до стилю переписування є розширене переписування Сем Ліндлі з підсумками та вирішальне еквівалентність Гамріеля Шерера з сумами та порожнім типом , обидва з яких розглядають набране лямбда-числення з продуктами та сумами.

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