2013-02-24 24 views
1

考慮下面的表達式範式:查找使用的β減少

((λx.λx.xx) (λx.xzx)) (λy.yy) 

我想用公測減少查找其正常形態。

我的計算:

((λx.λx.xx) (λx.xzx)) (λy.yy) -> 
((λx.xzx)(λx.xzx)) (λy.yy) -> ((λx.xzx)z(λx.xzx)) (λy.yy) -> 
(zzz (λx.xzx)) (λy.yy) -> ? 

但我怎麼能繼續從這裏:

(zzz (λx.xzx)) (λy.yy) -> ? 

感謝

+0

可能更適合http://cs.stackexchange.com/ – Femaref 2013-02-24 23:12:45

回答

1

使用\表示λ

((\x.\x.xx) (\x.xzx)) (\y.yy) = 
= ((*\x*.\x.xx) *(\x.xzx)*) (\y.yy) = 
= (\x.((\x.xzx) (\x.xzx))) (\y.yy) = 
= (\x.((*\x*.xzx) *(\x.xzx)*)) (\y.yy) = 
= (\x.((\x.xzx) z (\x.xzx))) (\y.yy) = 
= (\x.(((\x.xzx) z) (\x.xzx))) (\y.yy) = 
= (\x.(((*\x*.xzx) *z*) (\x.xzx))) (\y.yy) = 
= (\x.(((zzz) (\x.xzx)) (\y.yy) = 
= (*\x*.(((zzz) *(\x.xzx)*) (\y.yy) = 
= (zzz) (\x.((\y.yy) z (\y.yy))) = 
= (zzz) (\x.(((\y.yy) z) (\y.yy))) = 
= (zzz) (\x.(((*\y*.yy) *z*) (\y.yy))) = 
= (zzz) (\x.((zz) (\y.yy))) = 
= (zzz) (\x.(zz)(\y.yy)) 

這裏沒有更多的應用 - 至少,只要你沒有定義z

另請注意,在最終擴展中有一個x定義,在計算過程中您可能已將其禁用。

所有的變量(。λxλx XX)有共同的表達:

((*λx*.*λx*.xx) (λx.xzx)) (λy.yy) 

他們的名字。儘管如此,它們仍然是不同的變量。

+1

啊哈!給定的表達式沒有正常的形式!我已經改變了變量的名字並且進入了無限循環!謝謝 。 – ron 2013-02-24 23:46:11