The lambda calculus we'll be focusing on for the first part of the course has no types. (Some prefer to say it instead has a single type---but if you say that, you have to say that functions from this type to this type also belong to this type. Which is weird.)
-Here is its syntax:
-
-<blockquote>
-<strong>Variables</strong>: <code>x</code>, <code>y</code>, <code>z</code>...
-</blockquote>
-
-Each variable is an expression. For any expressions M and N and variable a, the following are also expressions:
-
-<blockquote>
-<strong>Abstract</strong>: <code>(λa M)</code>
-</blockquote>
-
-We'll tend to write <code>(λa M)</code> as just `(\a M)`, so we don't have to write out the markup code for the <code>λ</code>. You can yourself write <code>(λa M)</code> or `(\a M)` or `(lambda a M)`.
-
-<blockquote>
-<strong>Application</strong>: <code>(M N)</code>
-</blockquote>
-
-Some authors reserve the term "term" for just variables and abstracts. We won't participate in that convention; we'll probably just say "term" and "expression" indiscriminately for expressions of any of these three forms.
+Some authors reserve the term "term" for just variables and abstracts. We'll probably just say "term" and "expression" indiscriminately for expressions of any of these three forms.
Examples of expressions:
(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:
+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:
- ((\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**.