deniok: (typed lambda)
deniok ([personal profile] deniok) wrote2009-01-23 01:46 pm

Ненормализуемая вертушка

Придумал задачку по лямбда исчислению.

Общеизвестен лямбда-терм, не имеющий нормальной формы
(\x.xx)(\x.xx)
Этот терм обладает следующим свойством: он воспроизводит сам себя при каждой бета-редукции, ведя себя по отношению к ней как экспонента по отношению к дифференцированию.

А теперь задача: написать не имеющий нормальной формы терм, который бы вел себя как e^(-x). То есть при первой бета-редукции он должен превращаться во что-то другое, а при следующей возвращаться к исходному виду. Моя версия такого терма (flipflop) под катом белым цветом


flip = \xyz.xyzz
flop = \xyz.yxxz

flipflop = flip flop flop flip ~> -- первая редукция
flop flop flip flip            ~> -- вторая редукция
flip flop flop flip            = flipflop



Может кто придумает попроще?

UPD: Эх, а у меня-то решение неправильное :) (Потому что у меня аж шесть шагов) Правильное - у [livejournal.com profile] lomeo в комментах.

[identity profile] deni-ok.livejournal.com 2009-01-23 11:54 am (UTC)(link)
Черт, да, ты прав. Я за шаг что-то принял аппликацию "лямбды двух переменных" :(