0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コンビネータ論理:抽象化1 Exercise 2.26

Last updated at Posted at 2025-05-06

この記事の練習問題。
https://qiita.com/Trubetzkoy/items/c55fc03a235e72022643

Exercise 2.26

$[x,y,z].xzy$
$\equiv [x].([y].([z].(xz)y)))$

(i) zで抽象化

$[z].(xz)y$
$\equiv S([z].xz)([z].y)$
$\equiv S(x)(Ky)\equiv Sx(Ky)$
検証する。
$Sx(Ky)z\rightarrow xz((Ky)z)\rightarrow xz(y)\rightarrow xzy$

(ii) yで抽象化

$[y].Sx(Ky)$
$\equiv [y].(Sx)(Ky)$
$\equiv S([y].Sx)([y].Ky)$
$\equiv S(K(Sx))K$
検証する。
$S(K(Sx))Ky$
$\rightarrow S(K(Sx))y(Ky)$
$\rightarrow (K(Sx))y(Ky)$
$\rightarrow Sx(Ky)$ Q.E.D.

(iii)xで抽象化

$[x].S(K(Sx))K$
$\equiv[x].(S(K(Sx)))K$
$\equiv S([x].S(K(Sx)))([x].K)$
$\equiv S(S([x].S)([x].K(Sx)))(KK)$
$\equiv S(S(KS)(S([x].K)([x].Sx)))(KK)$
$\equiv S(S(KS)(S(KK)S))(KK)$
となる。

右から$x$を適用して検証する。
$S(S(KS)(S(KK)S))(KK)x$
$\equiv S\underbrace{(S(KS)(S(KK)S))}\underbrace{(KK)}x$
$\rightarrow S(KS)(S(KK)S)x\{(KK)x\}$
$\rightarrow S\underbrace{(KS)}\underbrace{(S(KK)S)}x\{(KK)x\}$
$\rightarrow(KS)x\{(S(KK)S)x\}\{(KK)x\}$
$\rightarrow S\{(KK)x(Sx)\}\{K\}$
$\rightarrow S\{K(Sx)\}K$
$\rightarrow S(K(Sx))K$ Q.E.D.

つまり
$[x,y,z].xzy$
$\equiv [x].([y].([z].(xz)y)))$
$\equiv S(S(KS)(S(KK)S))(KK)$
となる。式は$S$と$K$のみで表現される。

第1変数$x$はそのままで、第2、第3変数の$y,z$が$zy$と順序が交替するからなのか?コンビネータにはどんな操作が隠れているのだろうか?
たまたま$I$コンビネータが出てこないだけだろうか?$I=SKK$なので$I$が現れるかどうかは重要ではないが。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?