Для введених обчислень, якщо врахувати негативні типи ( , × , → ), ви можете ввімкнути або вимкнути правила eta за бажанням, не впливаючи на впадання.1×→
Для позитивних типів (суми та пари з усуненням відповідності шаблону) ситуація набагато складніше. По суті, питання полягає в тому, чи термін має форму усунення закритого діапазону, яка дозволяє контекстам взаємодіяти складними способами з ета-розширеннями. Наприклад, якщо має тип A × B , то його ета-розширення l e tеA × B . Але щоб отримати теорію рівнянь, яку очікував би теоретик категорії, потрібно розглянути контексти C [ - ] та узагальнити рівняння на C [ e ] ≡ l e tл е т( a , b ) = eя н( а , б )C [-] (з очікуваними обмеженнями на масштабування).C [e]≡ l e t( a , b ) = eя нC [(a,b)]
Я думаю, що ви все ще можете довести результат злиття, якщо не дозволите переходити на маршрути. Але це з чуток - я ніколи цього не пробував сам, ні дивився на документи, які це підтверджують.
Я насправді нічого не знаю про нетипізоване обчислення лямбда.
EDIT: Чарльз питає про скорочення ета. Це є багатообіцяючим для такого прикладу, якого він прагне, тому що я думаю, що в цілому вони не будуть достатньо сильними для моделювання повної теорії рівності, яку я проілюструю простим прикладом із булевими. Ета-розширення для булевих є . (Зниження ета, звичайно, є іншим напрямком.)C[e]↦if(e,C[true],C[false])
Тепер розглянемо термін . Показано, що цей термін еквівалентний i f ( e , fif(e,f,g)if(e,x,y) потрібно пройти ета-розширення, тому що ми повинні замінити e в одному з if-then-elses на t r u e та f a l s e , щоб рухати β- зменшенням. if(e,fx,gy)etruefalseβ