I am reading Tao's Analysis I, in which he states:
One may be tempted to [define the successor of $n$ as] $n + 1$. . . but this would introduce a circularity in our foundations, since the notion of addition will be defined in terms of the successor operation.
Say we did define $S(n) = n + 1$, and we define addition the following way: for any natural $m$, we define $0+m = m$, and if for some natural $n$, we have defined $n+m$, then we can define $S(n) + m = S(n+m)$. (I am assuming that the number system is defined as the usual $\mathbb{N} = \{0,1,2,3,. . . \}$, and that the distinguished $\mathbf{0}$ is $0$ when talking about the possibility of defining the successor as $n+1$, as such presupposes that $1$ belongs to our system of numbers). All we have in this structure is this set of numbers, which element thereof is $\mathbf{0}$, and how succession and addition are (attempted to be) defined, without further assumptions.
Although it certainly seems illogical in the extreme to define addition and succession in terms of each other in the above manner, I am trying to justify, beyond any shadow of a doubt, why neither of these things are defined by the above scheme. So far, I have the following 2 arguments (which seem insufficient to me):
for $S(1)$, if we look at the plain meaning of our definitions, $S(1) = 1 + 1 = S(0+1) = S(1)$, and we are right back where we started, getting nothing. (We knew that $S(0) = 1$ because our definitions allow us to conclude that $S(0) = 0 + 1 = 1$). However, this is unsatisfactory to me because it is not clear to me that this is the only way to reason about the value of $S(1)$.
By these definitions, because we have never even mentioned an element of $\mathbb{N}$ apart from $0$ and $1$, how could we possibly have defined an injective mapping from $\mathbb{N}$ to $\mathbb{N}$ as our successor function? This is unconvincing to me because how do we know that there isn't a more complex, intricate way this mapping has been defined, which I cannot conceive of?
I still want something beyond these arguments, because how can we be assured that a complex interplay between everything we have defined hasn't somehow still allowed us to deduce the value of the addition and successor function for all elements of its domain?
I am a programmer, and it is common to define functions in terms of each other in mutually recursive fashion- so the mere fact that addition is defined in terms of itself, or addition and succession are defined in terms of each other, isn't sufficient reasoning to me as such recursively happens all the time; it is just that with the appropriate base cases, each of the functions can always determine their values, even though they are defined in terms of each other.
This is why I ask that even though succession and addition are here defined in terms of each other, how we can be assured that if we define them as above, it is impossible to deduce the value of these functions for every element of their domain? I of course intuitively feel that it is impossible to do so, but I'm not exactly sure why.