deniok: (typed lambda)
deniok ([personal profile] deniok) wrote2013-06-24 06:14 pm

Читая Джо Уэллса

Знаете ли вы, чем замечателен этот λ-терм?
λv.(λy.λz.v(yy)(yz))(λx.(λa.λb.a)x(x(xv)v))(λw.ww)
Он нормализуем, его нормальная форма
λv.v(λx.x)(λw.ww)
Более того он нормализуем сильно, то есть независимо от редукционной стратегии. Однако ему нельзя приписать никакого типа, даже в полной версии System F.

Первый такой терм придумали P. Giannini, F. Honsell и S. Ronchi Della Rocca из Миланского университета в 1987 году. А этот я взял из статьи J. B. Wells, Typability and Type Checking in System F Are Equivalent and Undecidable (1998).

[identity profile] migmit.livejournal.com 2013-06-24 07:43 pm (UTC)(link)
Так вот зачем нужна динамическая типизация...

[identity profile] kodt-rsdn.livejournal.com 2013-06-26 02:21 am (UTC)(link)
А там нельзя налепить что-то с горой forall'ов?

Поскольку есть yy, то
y :: forall y1 . y1 -> y2
Поэтому и yy, и yz :: y2

ww
w :: forall w1 . w1 -> w2
ww :: w2

x xv v
x :: forall x1 . x1 -> v -> x3

Ну и так далее