1
$\begingroup$

Help would be appreciated. The notes are poor on the subject, and I am clueless.

Verify the following equalities:

  • Verify the equality $$\mathsf{SIII}=_β\mathsf{I}$$ where $\mathsf{S} = λxyz.(xz)(yz) \quad \mathsf{I}= λx.x$

  • Verify the equality $$\operatorname{twice} (\operatorname{twice}) f x =_β f(f(f(f x)))$$ where $\operatorname{twice} = λfx.f(f x)$

$\endgroup$
0

2 Answers 2

2
$\begingroup$

Try substituting the arguments in the definitions of the combinators.

$\endgroup$
7
  • $\begingroup$ When I originally tried that I got (x x)(x x) = λx.x and λfx.f(f x)(λfx.f(fx))fx=f(f(f(fx))) $\endgroup$
    – jack
    Nov 23, 2010 at 6:18
  • $\begingroup$ SIII=(II)(II)=II=I $\endgroup$ Nov 23, 2010 at 6:41
  • $\begingroup$ twice twice f x = twice (twice f) x = twice = twice f (twice f x) = twice f f(f(x) = f(f(f(f(x)))) $\endgroup$ Nov 23, 2010 at 6:43
  • $\begingroup$ You just have to keep substituting. $\endgroup$ Nov 23, 2010 at 6:44
  • $\begingroup$ I'm sorry (especially for the necropost), I don't understand your solution to b. you said... twice twice f x = twice (twice f) x -- how is that true? don't you have to apply the first twice before you can link the f to the second twice? After the first step, I find myself with: lambda(x) (twice(twice(x)) $\endgroup$
    – Daniel
    Jan 21, 2012 at 23:57
0
$\begingroup$

I am posting this answer to make solutions more clear. $$ \mathsf{SIII}=_\beta (λxyz.(xz)(yz)) \mathsf{III} =_\beta (\mathsf{II})(\mathsf{II}) $$ Remember that $\mathsf{I}=\lambda x.x$ is the operator that does nothing. This means that for every lambda expression $M$, you have $\mathsf{I}M =_\beta M$.

This implies that: $$\mathsf{II} =_\beta (\lambda x.x)(\lambda x.x)=\lambda x.x = \mathsf{I}$$ And so we have $$ (\mathsf{II})(\mathsf{II}) =_\beta (\mathsf{I})(\mathsf{I}) =_\beta = \mathsf{II} =_\beta \mathsf{I}$$

The second one is easier

$$ \operatorname{twice} \operatorname{twice} f x = \operatorname{twice} (\operatorname{twice} f) x = \operatorname{twice} f (\operatorname{twice} f x) = \operatorname{twice} f f(f(x) = f(f(f(f(x)))) $$

$\endgroup$

You must log in to answer this question.