X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=week1.mdwn;h=5c880fbb7cba5289de03d371447f294cca74dbf3;hp=ad6f98c43275194d2475d8810ecf0a1ddd9364d1;hb=8e19d24bbc5a9bb0dce40d6743a2742fc328ed9d;hpb=e1fee6dac71060c16f35649488605d744f191c18
diff --git a/week1.mdwn b/week1.mdwn
index ad6f98c4..5c880fbb 100644
--- a/week1.mdwn
+++ b/week1.mdwn
@@ -185,33 +185,33 @@ Different authors use different notations. Some authors use the term "contractio
M ~~> N
-We'll mean that you can get from M to N by one or more reduction steps. Hankin uses the symbol →
for one-step contraction, and the symbol ↠
for zero-or-more step reduction. Hindley and Seldin use ⊳1
and ⊳
.
+We'll mean that you can get from M to N by one or more reduction steps. Hankin uses the symbol →
for one-step contraction, and the symbol ↠
for zero-or-more step reduction. Hindley and Seldin use ⊳1
and ⊳
.
When M and N are such that there's some P that M reduces to by zero or more steps, and that N also reduces to by zero or more steps, then we say that M and N are **beta-convertible**. We'll write that like this:
M <~~> N
-This is what plays the role of equality in the lambda calculus. Hankin uses the symbol `=` for this. So too do Hindley and Seldin.
+This is what plays the role of equality in the lambda calculus. Hankin uses the symbol `=` for this. So too do Hindley and Seldin. Personally, I keep confusing that with the relation to be described next, so let's use this notation instead. Note that `M <~~> N` doesn't mean that each of `M` and `N` are reducible to each other; that only holds when `M` and `N` are the same expression. (Or, with our convention of only saying "reducible" for one or more reduction steps, it never holds.)
-In the metatheory, it's also sometimes useful to talk about formulas that are syntactically equivalent *before any reductions take place*. Hankin uses the symbol ≡ for this. So too do Hindley and Seldin. We'll use that too, and will avoid using `=` when discussing metatheory for the lambda calculus. Instead we'll use `<~~>` as we said above. When we want to introduce a stipulative definition, we'll write it out longhand, as in:
+In the metatheory, it's also sometimes useful to talk about formulas that are syntactically equivalent *before any reductions take place*. Hankin uses the symbol ≡
for this. So too do Hindley and Seldin. We'll use that too, and will avoid using `=` when discussing metatheory for the lambda calculus. Instead we'll use `<~~>` as we said above. When we want to introduce a stipulative definition, we'll write it out longhand, as in:
> T is defined to be `(M N)`.
We'll regard the following two expressions:
- (\x x y)
+ (\x (x y))
- (\z z y)
+ (\z (z y))
as syntactically equivalent, since they only involve a typographic change of a bound variable. Read Hankin section 2.3 for discussion of different attitudes one can take about this.
Note that neither of those expressions are identical to:
- (\x x w)
+ (\x (x w))
because here it's a free variable that's been changed. Nor are they identical to:
- (\y y y)
+ (\y (y y))
because here the second occurrence of `y` is no longer free.