author Jim Pryor Thu, 16 Sep 2010 02:34:51 +0000 (22:34 -0400) committer Jim Pryor Thu, 16 Sep 2010 02:34:51 +0000 (22:34 -0400)
Signed-off-by: Jim Pryor <profjim@jimpryor.net>
 week1.mdwn patch | blob | history

index 8484b17..f09f393 100644 (file)
@@ -61,22 +61,20 @@ Some authors reserve the term "term" for just variables and abstracts. We won't

Examples of expressions:

-<blockquote><code>
-x
-(y x)
-(x x)
-(\x y)
-(\x x)
-(\x (\y x))
-(x (\x x))
-((\x (x x)) (\x (x x)))
-</code></blockquote>
+       x
+       (y x)
+       (x x)
+       (\x y)
+       (\x x)
+       (\x (\y x))
+       (x (\x x))
+       ((\x (x x)) (\x (x x)))

The lambda calculus has an associated proof theory. For now, we can regard the
proof theory as having just one rule, called the rule of **beta-reduction** or
"beta-contraction". Suppose you have some expression of the form:

-       ((lambda a M) N)
+       ((\ a M) N)

that is, an application of an abstract to some other expression. This compound form is called a **redex**, meaning it's a "beta-reducible expression." `(\a M)` is called the **head** of the redex; `N` is called the **argument**, and `M` is called the **body**.