5
$\begingroup$

Preliminary definitions

Barendregt [2004] introduces the following two definitions of substitution and their equivalence:

  • Ottamnn variable convention (p. 26)

    2.1.13. Ottamnn variable convention. If $M_1, ..., M_n$ occur in a certain mathematical context (e.g. definition, proof), then in these terms all bound variables are chosen to be different from the free variables.

    Remark 1: I'm using the name 'Ottmann variable convention' because in the 6th impression of "The Lambda Calculus. Its Syntax and Semantics", Barendregt replaced the name 'variable convention' by this name. See 'Addenda for the sixth imprinting', p. E1.

  • First definition (p. 27) Definition 2.1.15

  • Second definition (p. 578) Definition C.1

  • Equivalence (p. 579)

    If one observes the variable convention, then $M[ x:= N ]$ as in definition 2.1.15 is the same substitution as in Curry's definition C.1.

Question

Since (1) follows the Ottmann variable convention its normalisation using both definitions of substitution should be the same.

$$(λxx.x)yz \qquad \qquad (1)$$

Remark 2: I know it is silly to abstract over $x$ twice in (1), but this is not banned anywhere.

Using Definition C.1, the normalisation of (1) is $z$, but using Definition 2.1.15 I got stuck in

$$(λxx.x)yz = ((λx.x)[ x:=y ])z$$

because Definition 2.1.15 doesn't include a clause when the bound variable and the variable to substitute are the same, that is, the missing clause is

$$λx.M[ x:=N ] ≡ λx.M.$$

Are really both definitions the same using the Ottmann variable convention? Am I missing something when using Definition 2.1.15?

Reference

Barendregt, H. P. (2004). The Lambda Calculus. Its Syntax and Semantics. Revised edition, 6th impression. Vol. 103. Studies in Logic and the Foundations of Mathematics. Elsevier.

$\endgroup$

migrated from stackoverflow.com Oct 30 '16 at 23:22

This question came from our site for professional and enthusiast programmers.

3
$\begingroup$

The following remark from definition 2.1.15 gives you a clue:

In the third clause it is not needed to say "provided that $y \not \equiv x$ and $y \not \in \mathsf{FV}(N)$". By the variable convention this is the case.

Since you can't make substitutions, it means that there is some violation of the variable convention (§2.1.13):

If $M_1, ..., M_n$ occur in a certain mathematical context (e.g. definition, proof), then in these terms all bound variables are chosen to be different from the free variables.

In the meta-level expression

$$((λx.x)\ [ x := y ])\ z,$$

let us denote $M_1 = (λx.x)$ and $M_2 = x$. Notice that $x$ is bound in $M_1$, but free in $M_2$. That violates the variable convention, so you can't use definition 2.1.15, because it relies on that convention.

$\endgroup$
3
$\begingroup$

It is unclear to me what the precise definition of the 'Ottmann variable convention' (OVC) is, but from what I have available:

"If $M_{1}$, … , $M_{n}$ occur in a certain mathematical context (e.g. definition, proof), then in these terms all bound variables are chosen to be different from the free variables." Barendregt [2004]

I concluded that the $\lambda$-term $((\lambda{x}.x)[x := y])z$ does not comply wit the definition above, since there is both a bounded (in $(\lambda{x}.x)$) and an unbounded (right brackets) occurrence of $x$ in the same term, Hence the confusion.

This is perhaps hinted by the claim in Definition 2.1.15

In the third clause it is not needed to say “provided that $y \neq x$ and $y \notin FV (N)$”. By the Ottmann variable convention this is the case.

That implies the 'Ottmann variable convention' is sufficient to show $y \neq x$ and $y \notin FV (N)$ for any term of the form $(\lambda{y}.M)[x := N]$ that follow the convention. From this is possible to conclude that nested abstractions over the same variable do not follow the 'Ottmann variable convention', a quick example, assume $(\lambda{xx}.w)y$ follows the OVC

  • $(\lambda{xx}.w)y = (\lambda{x}.w)[x := y] $ (Axiom)
  • a contradiction arise with:
    • $x \neq x$ (by OVC implication)
    • $x = x$ (trivial)
  • Hence $(\lambda{xx}.w)y$ does not follows the OVC

So, to answer your question:

Are really both definitions the same using the Ottmann variable convention? > Am I missing something when using Definition 2.1.15?

Yes, they are, but in my opinion, the definition of the 'Ottmann variable convention' provided is perhaps not concise enough to clarify this kind of silly edge cases.

PS: I have some confidence in this answer but all is really what I was able to conclude from the definition given, I can perhaps me missing something as well.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.