<p>I'm not really in TCS but more in Programming Languages, so in my mind the answer is clear.  Alpha equivalence means that you can rename variables without changing the semantics of your program.  Such renaming should only be performed on bound variables.  Free variables come from the "external environment", so you cannot rename them without changing the semantics.</p>

<p>Quoting from <a href="http://en.wikipedia.org/wiki/Lambda_calculus#Alpha_equivalence" rel="nofollow">Wikipedia</a>:</p>

<blockquote>
  <p>A basic form of equivalence, definable on lambda terms, is alpha
  equivalence. It captures the intuition that the particular choice of a
  bound variable, in a lambda abstraction, does not (usually) matter.
  For instance, $\lambda x.x$ and $\lambda y.y$ are alpha-equivalent
  lambda terms, and they both represent the same function (the identity
  function). The terms $x$ and $y$ are not alpha-equivalent, because
  they are not bound in a lambda abstraction. In many presentations, it
  is usual to identify alpha-equivalent lambda terms.</p>
</blockquote>

CC BY-SA 3.0
2014-01-25T23:03:34.873Z
2014-01-25T23:03:34.873Z
nickie
<p>Let's say we have the following cases:</p>

<ul>
<li>$a =_\alpha b$</li>
<li>$a =_\alpha a$</li>
</ul>

<p>Which of the above cases are $\alpha$-equivalent? Or does $\alpha$-equivalence has no meaning in the context of just variables? And what are the rules for determining $\alpha$-equivalence of two expressions/terms $t_1, t_2$ when both $t_1$ and $t_2$ are juts variables/symbols?</p>

CC BY-SA 3.0
2014-01-26T10:56:28.587Z
Questions about basic definitions are not research-level so are [off-topic, here](http://cstheory.stackexchange.com/help/on-topic). Your question would be more appropriate at [Computer Science Stack Exchange](http://cs.stackexchange.com), which has broader scope.
David Richerby
<lambda-calculus>
Are two unbound variables alpha-equivalent?
mmtauqir
# Are two unbound variables alpha-equivalent?

(Asked by: username_0 on 2014-01-25)

Let's say we have the following cases:

* $a =\_\alpha b$
* $a =\_\alpha a$

Which of the above cases are $\alpha$-equivalent? Or does $\alpha$-equivalence has no meaning in the context of just variables? And what are the rules for determining $\alpha$-equivalence of two expressions/terms $t\_1, t\_2$ when both $t\_1$ and $t\_2$ are juts variables/symbols?

**Tags:** lambda-calculus
> **Comments:**
> **username_1**: Questions about basic definitions are not research-level so are [off-topic, here](http://cstheory.stackexchange.com/help/on-topic). Your question would be more appropriate at [Computer Science Stack Exchange](http://cs.stackexchange.com), which has broader scope.  

---

## 1 answers

### Answer by username_2 on 2014-01-25. Score: 4 | Accepted answer

I'm not really in TCS but more in Programming Languages, so in my mind the answer is clear. Alpha equivalence means that you can rename variables without changing the semantics of your program. Such renaming should only be performed on bound variables. Free variables come from the "external environment", so you cannot rename them without changing the semantics.

Quoting from [Wikipedia](http://en.wikipedia.org/wiki/Lambda_calculus#Alpha_equivalence):

> A basic form of equivalence, definable on lambda terms, is alpha
> equivalence. It captures the intuition that the particular choice of a
> bound variable, in a lambda abstraction, does not (usually) matter.
> For instance, $\lambda x.x$ and $\lambda y.y$ are alpha-equivalent
> lambda terms, and they both represent the same function (the identity
> function). The terms $x$ and $y$ are not alpha-equivalent, because
> they are not bound in a lambda abstraction. In many presentations, it
> is usual to identify alpha-equivalent lambda terms.


---

