3
$\begingroup$

I can not see the difference between beta reduction and substitution.

For example:

(+ x 1) [x -> 2]

Here I can do the substitution, replace the variable x through 2(lambda expression) and result is:

(+ 2 1)

An example of beta reduction:

(λ x. + x 1) 2

the result would be

+ 2 1

For me, there are no difference between them, but there is a rule, I can not substitute the lambda expression, when the metavariable is bound

(λ x. + x 1) [x -> 2] No possible to substitute it.

Only free variables can be substitute it.

What is the difference between the diction:

(λ x. + x 1) 2

and

(λ x. + x 1) [x -> 2]
asked Feb 3, 2017 at 11:13
$\endgroup$
3
  • $\begingroup$ Note: Is x a metavariable? $\endgroup$ Commented Feb 3, 2017 at 11:26
  • 4
    $\begingroup$ You seem to be confusing application with substitution. Application is part of the lambda-calculus syntax, substitution is not. Substitution lives in the "math world" of the theory which defines the calculus semantics, but is not a notation which can be used by the "lambda programmer", so to speak. Perhaps confusingly, it is a meta operator which modifies the syntax, so it is written next to lambda-terms to operate on them. E.g. I can define an operator $c(P)$ which given a C program $P,ドル returns the C program $P$ after incrementing constants in it. Then, $c$ is not part of the C language. $\endgroup$ Commented Feb 3, 2017 at 11:58
  • $\begingroup$ I did not get what you mean. $\endgroup$ Commented Feb 3, 2017 at 12:31

1 Answer 1

6
$\begingroup$

The $\beta$ reduction is defined by using capture-avoidng substitution. That is,

$$ (\lambda x. M)N \longrightarrow_\beta M[x \mapsto N] $$

So it's the definition. Under the $\beta$-equivalence, $(\lambda x. M)N \equiv_\beta M[x \mapsto N],ドル but syntactically, $(\lambda x. M)N \neq M[x \mapsto N]$.

Note that substitution is a meta-operation on $\lambda$-calculus terms (normally). A $\lambda$-calculus term $M$ is whether a variable $x,ドル a lambda abstraction $(\lambda x. M'),ドル or an application $M_1 M_2$. That's it. There is no substitution. Substitution is a map on $\lambda$-calculus terms. Therefore, for example, a term $({+}~x~y)[x \mapsto z]$ is syntactically equal to $({+}~z~y)$. There is no reduction. In contrast to this, $(\lambda x. {+}~x~y)~z$ is not syntactically equal to $({+}~z~y),ドル although it can be reduced to $({+}~x~y)$.


Also, $(\lambda x. {+}~x~1)~2$ is different from $(\lambda x. {+}~x~1)[x \mapsto 2]$. The latter is equal to $(\lambda x. {+}~x~1)$.

answered Feb 3, 2017 at 11:40
$\endgroup$
5
  • $\begingroup$ I think @chi's comment is very nice! Please check it too :) $\endgroup$ Commented Feb 3, 2017 at 12:15
  • 1
    $\begingroup$ Just to muddy the waters, there are lambda calculi with explicit substitutions for which substitution is an object language level operation (as opposed to a meta-operation). In those, a single step of $\beta$-reduction will produce an explicit substitution which is unequivocally distinct from the redex. (Note, it is not necessarily the case that $(\lambda x.M)N \neq M[x\mapsto N]$ in the normal (non-explicit substitution) lambda calculus, though it usually is.) $\endgroup$ Commented Feb 3, 2017 at 23:54
  • $\begingroup$ @DerekElkins Is there any variant of the λ-calculus without explicit substitution which treats $(\lambda x. M)N = M[x \mapsto N]$ (syntactically)? If so, I think β-reductions would be unnecessary in the calculus. $\endgroup$ Commented Feb 5, 2017 at 0:33
  • $\begingroup$ @nekketsuuu I'm not quite sure what you mean. It sounds like you want to consider two terms equal if they are $\beta$-equivalent. This would kind of defeat the point. Also as $\beta$-equivalence is undecidable, this would be awkward. But maybe Böhm trees would interest you(?) $\endgroup$ Commented Feb 7, 2017 at 4:39
  • $\begingroup$ @DerekElkins Oh I misunderstood about the last sentence of your comment. Thank you. $\endgroup$ Commented Feb 7, 2017 at 10:12

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.