Оновлення [2011-09-20]: я розширив абзац про -розширення та розширення. Дякуємо Антону Саліхметову за те, що він вказав на хороший довідник.ηη
ηη -конверсія - це особливий випадок - перетворення лише в спеціальному випадку, коли сама по собі абстракція, наприклад, якщо тодіАле що робити, якщо f - змінна чи програма, яка не зводиться до абстракції?(λx.fx)=f(λx.fx)=fββfff=λy.yyf=λy.yy(λx.fx)=(λx.(λy.yy)x)=β(λx.xx)=αf.
(λx.fx)=(λx.(λy.yy)x)=β(λx.xx)=αf.
ff
У чомусь ηη -rule - це як особливий вид розширення, але ми повинні бути обережними щодо того, як це констатується. Ми можемо констатувати розширення як:
- для всіх λλ -термінів MM і NN , якщо Mx=NxMx=Nx тоді M=NM=N , або
- для всіх f,gf,g якщо ∀x.fx=gx∀x.fx=gx тоді f=gf=g .
Перший - це мета-висловлювання про умови -calculus. У ньому постає як формальна змінна, тобто є частиною -calculus. Це можна довести з -правил, див., Наприклад, теорему 2.1.29 у «Обчисленні Лямбди: її синтаксис та семантика» Барендрегта (1985). Його можна розуміти як твердження про всі визначені функції, тобто ті, що є позначеннями -терміс.λλxxλλβηβηλλ
Друге твердження - це те, як математики зазвичай розуміють математичні твердження. Теорія -calculus описує певний вид структур, назвемо їх " -моделями ". Модель може бути незліченною, тому немає гарантії, що кожен її елемент відповідає -term (так само, як і більше реальних чисел, ніж є вирази, що описують цифри). Потім розширеність говорить: якщо ми візьмемо будь-які дві речі і в -модель, якщо для всіх в моделі, то . Тепер навіть якщо модель задовольняєλλλλλλλλffggλλfx=gxfx=gxxxf=gf=gηη -правило, воно не повинно задовольняти розширення в цьому сенсі. (Тут потрібна довідка, і я думаю, нам потрібно бути обережними, як тлумачить рівність.)
Існує кілька способів мотивації - та -конверсій. Я навмання виберу категорію-теоретичну, замасковану як -kalculus, а хтось ще може пояснити інші причини.ββηηλλ
Розглянемо набраний -calculus (тому що він менш заплутаний, але більш-менш те ж міркування працює для нетипізованого -calculus). Одним із основних законів, який повинен дотримуватися, є експоненціальний закон(Я використовую позначення від і беззмінно, вибираючи те, що виглядає краще.) Що таке ізоморфізми і виглядають так, як написано в -calculus? Імовірно, вони будуть іλλλλCA×B≅(CB)A.
CA×B≅(CB)A.
A→BA→BBABAi:CA×B→(CB)Ai:CA×B→(CB)Aj:(CB)A→CA×Bj:(CB)A→CA×Bλλi=λf:CA×B.λa:A.λb:B.f⟨a,b⟩i=λf:CA×B.λa:A.λb:B.f⟨a,b⟩
j=λg:(CB)A.λp:A×B.g(π1p)(π2p).j=λg:(CB)A.λp:A×B.g(π1p)(π2p).
Короткий розрахунок з парою скорочень (включаючи -reductions та для продуктів) говорить про те, що для кожного маємо
Оскільки і є оберненими один до одного, ми очікуємо, що , але щоб насправді довести це, нам потрібно використовувати -редукцію двічі:
ββββπ1⟨a,b⟩=aπ1⟨a,b⟩=aπ2⟨a,b⟩=bπ2⟨a,b⟩=bg:(CB)Ag:(CB)Ai(jg)=λa:A.λb:B.gab.i(jg)=λa:A.λb:B.gab.
iijji(jg)=gi(jg)=gηηi(jg)=(λa:A.λb:B.gab)=η(λa:A.ga)=ηg.i(jg)=(λa:A.λb:B.gab)=η(λa:A.ga)=ηg.
Отже, це одна з причин -редукції. Вправа: яке -правило потрібно, щоб показати, що ?
ηηηηj(if)=fj(if)=f