I'm working through the Stanford Introduction to Logic course, and seem to have proved that all natural numbers are equal to zero: Ax.(x = 0). Obviously, this is incorrect, but I can't see how. My proof is by induction:
- Base case:
0 = 0by premise - Inductive case:
Ax.((x = 0) -> (s(x) = 0))- If we assume that all natural numbers equal zero:
x = 0 - Then, since all natural numbers equal zero, the successor of any natural number also equals zero:
s(x) = 0by simple substitution
- If we assume that all natural numbers equal zero:
- Conclusion:
Ax.(x = 0)
I worked this up formally in Stanford's Fitch editor as well:
Can anyone explain my error? Thank you.

David C. Ullrich had the most useful answer, which I'll repeat here: The Universal Introduction on line 3 is invalid because
xis free in the active assumptionx = 0. Thank you for finding the error!