3 ms·
The successor function is how natural numbers are defined in most axiomatic arithmetic systems. A natural number is either zero or a successor of a natural num
by empath75 2y ago
The successor function is how natural numbers are defined in most axiomatic arithmetic systems.
A natural number is either zero or a successor of a natural number.
Addition is defined as a recursive application of successor functions.
m + 0 = m,
m + S(n) = S(m + n).
as an example -- 3 + 2:
S(S(S(0))) + S(S(0)) =
S( S(S(S(0))) + S(0) ) =
S( S( S(S(S(0))) + 0 ) ) =
S(S(S(S(S(0)))))
There's nothing really in the definition of the successor function that necessarily requires that it's interpreted as n+1, though. It's just an interpretation from the context in which it's used. It could represent any operation as long as it is isomorphic to adding one -- but there's nothing special about "adding one". You could have it represent multiplying by a constant, and interpret "zero" as the number one.
So a number in this interpretation is either 1; or 2 times a natural number.
1, 2, 4, 8, 16, 32 -- you're working only with powers of 2 now.
The above "addition" rule above still works, but now it represents "multiplication" instead of addition. I'll replace all the S's in the above example with x2
2x2x2x1 "+" 2x2x1 = 2x(2x2x2x1 + 2x1) = 2x(2x(2x2x2x1 + 1) = 2x2x2x2x2x1 = 32
So now, instead of addition, we've recursively defined multiplication where the successor function is interpreted as multiplying by 2. There's an infinite number of ways that you can interpret the successor function.
So basically, I do think it's cheating, and if you do want to define it as n+1, it would be even simpler to just define a function that takes any number to the desired output.