HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Definition df-sb 1536
Description: Define proper substitution. Remark 9.1 in [Megill] p. 447 (p. 15 of the preprint). For our notation, we use [y / x]ph to mean "the wff that results when y is properly substituted for x in the wff ph." We can also use [y / x]ph in place of the "free for" side condition used in traditional predicate calculus; see, for example, stdpc4 1550.

Our notation was introduced in Haskell B. Curry's Foundations of Mathematical Logic (1977), p. 316 and is frequently used in textbooks of lambda calculus and combinatory logic. This notation improves the common but ambiguous notation, "ph(y) is the wff that results when y is properly substituted for x in ph(x)." For example, if the original ph(x) is x = y, then ph(y) is y = y, from which we obtain that ph(x) is x = x. So what exactly does ph(x) mean? Curry's notation solves this problem.

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 remarkable little formula that is exactly equivalent and gives us a single direct definition. We later prove that our definition has the properties we expect of proper substitution (see theorems sbequ 1599, sbcom2 1724 and sbid2v 1734).

Note that our definition is valid even when x and y are replaced with the same variable, as sbid 1549 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 1730 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 1596. When x and y are distinct, we can express proper substitution with the simpler expressions of sb5 1645 and sb6 1644.

There are no restrictions on any of the variables, including what variables may occur in wff ph.

Assertion
Ref Expression
df-sb |- ([y / x]ph <-> ((x = y -> ph) /\ E.x(x = y /\ ph)))

Detailed syntax breakdown of Definition df-sb
StepHypRef Expression
1 wph . . 3 wff ph
2 vx . . 3 set x
3 vy . . . 4 set y
43cv 1297 . . 3 class y
51, 2, 4wsbc 1534 . 2 wff [y / x]ph
62cv 1297 . . . . 5 class x
76, 4wceq 1298 . . . 4 wff x = y
87, 1wi 3 . . 3 wff (x = y -> ph)
97, 1wa 240 . . . 4 wff (x = y /\ ph)
109, 2wex 1326 . . 3 wff E.x(x = y /\ ph)
118, 10wa 240 . 2 wff ((x = y -> ph) /\ E.x(x = y /\ ph))
125, 11wb 163 1 wff ([y / x]ph <-> ((x = y -> ph) /\ E.x(x = y /\ ph)))
Colors of variables: wff set class
This definition is referenced by:  sbimi 1537  drsb1 1539  sb1 1540  sb2 1541  sbequ1 1542  sbequ2 1543  sbn 1601  sb6 1644  subsym1 14251
Copyright terms: Public domain