Lambda-Calculus Overview
Susan Older
Version
: February 21, 2007
Abstract
These notes provide a review of some of the terminology from lectures that do not explicitly
appear in the textbook but that I expect you to know for assignments and exam.
1
Syntactic Properties
Definition 1:
The
set of free variables in
E
, written
fv
[[
E
]]
, is defined inductively as follows:
fv
[[
X
]]
=
{
X
}
fv
[[(
E
1
E
2
)]]
=
fv
[[
E
1
]]
∪
fv
[[
E
2
]]
fv
[[(
lambda
(
X
)
E
)]]
=
fv
[[
E
]]
- {
X
}
Definition 2:
The
set of bound variables in
E
, written
bv
[[
E
]]
, is defined inductively as follows:
bv
[[
X
]]
=
∅
bv
[[(
E
1
E
2
)]]
=
bv
[[
E
1
]]
∪
bv
[[
E
2
]]
bv
[[(
lambda
(
X
)
E
)]]
=
bv
[[
E
]]
∪ {
X
}
if
X
∈
fv
[[
E
]]
bv
[[
E
]]
otherwise
Definition 3:
In any abstraction
(
lambda
(
X
)
E
)
:
•
E
is the
body
of the abstraction
•
The occurrence of
X
in
(
lambda
(
X
)
· · ·
)
is called a
binding occurrence
.
•
The
extent
of the binding (or declaration) of
X
is the entire body
E
.
•
The
scope
of the binding of
X
is that portion of the body in which occurrences of
X
are (or
would be) free. Thus, the scope of the binding of
X
is the extent of the binding, minus any
subsequent declarations of
X
that occur within the body
E
.
1
This
preview
has intentionally blurred sections.
Sign up to view the full version.
2
Substitution
Definition 4:
Let
M
and
N
be
λ
-calculus expressions, and let
X
be a variable. The
substitution of
N
for
X
in
M
, denoted
M
[
N
/
X
]
, is defined inductively as follows:
•
If
M
is a variable reference
Y
:
Y
[
N
/
X
]
=
N
if
X
and
Y
are the same variable (i.e.,
X
=
Y
)
Y
if
X
and
Y
are
not
the same variable (i.e.,

This is the end of the preview.
Sign up
to
access the rest of the document.
- Spring '08
- Royer
- Closure, lambda, Free variables and bound variables
-
Click to edit the document details