|Description: Define proper
substitution. Remark 9.1 in [Megill] p. 447 (p.
15 of the
preprint). For our notation, we use [y / x]φ to mean "the wff
that results from the proper substitution of y for x in the wff
φ." We can
also use [y / x]φ
in place of the "free for"
side condition used in traditional predicate calculus; see, for example,
Our notation was introduced in Haskell B. Curry's Foundations of
Mathematical Logic (1977), p. 316 and is frequently used in textbooks
lambda calculus and combinatory logic. This notation improves the common
but ambiguous notation, "φ(y) is the wff that results when y
is properly substituted for x in φ(x)." For example, if the
original φ(x) is x = y,
then φ(y) is y = y,
which we obtain that φ(x) is x = x.
So what exactly does
φ(x) mean? Curry's notation solves this
In most books, proper substitution has a somewhat complicated recursive
definition with multiple cases based on the occurrences of free and bound
variables in the wff. Instead, we use a single formula that is exactly
equivalent and gives us a direct definition. We later prove that our
definition has the properties we expect of proper substitution (see
theorems sbequ 2060, sbcom2 2114 and sbid2v 2123).
Note that our definition is valid even when x and y are replaced
with the same variable, as sbid 1922 shows. We achieve this by having x
free in the first conjunct and bound in the second. We can also achieve
this by using a dummy variable, as the alternate definition dfsb7 2119 shows
(which some logicians may prefer because it doesn't mix free and bound
variables). Another version that mixes free and bound variables is
dfsb3 2056. When x and y are distinct, we can express proper
substitution with the simpler expressions of sb5 2100
and sb6 2099.
There are no restrictions on any of the variables, including what
variables may occur in wff φ. (Contributed by NM,