I'll try addressing only some of the questions.
Church numerals are defined to be functions (abstractions in $\lambda$-calculus speech) that take two arguments: a base argument $z$ (stands for zero), and a "successor" function $s$ which will be repeatedly applied to the base $z$. The number of times $n$ we apply $s$ corresponds to some natural number $n$.
The successor function $\mathsf{succ}$ takes a Church numeral corresponding to some $n \in \mathbb{N}$ (the numeral's canonical form is $\lambda sz. s^nz$), and returns a Church numeral corresponding to $n+1$, i.e. some term that behaves like $\lambda sz. s^{n+1}z$.
Notes:
- $s^n z$ means $s (s (s (... s z))...)$, where $s$ applied $n$ times to $z$;
- two abstractions are behaviorally equivalent if applied to the same arguments they yield the same result.
Let's obtain a $\lambda$-term representing $\mathsf{succ}$. In what follows I'm using Church numerals and corresponding natural numbers interchangeably, I hope that it won't cause confusion, since the current domain can be derived from the context.
$\mathsf{succ}$ is an abstraction that takes a Church numeral $n$, so $\mathsf{succ} = \lambda n. \textsf{<...>}$
$\mathsf{succ}$ returns a Church numeral, which must take 2 arguments, that's why $\mathsf{succ} = \lambda n. (\lambda sz. \textsf{<...>})$
After supplying some $s$ and $z$ to $(\mathsf{succ}\ n)$ we must have $s$ applied $n+1$ times to $z$. Notice that the Church numeral $n$ allows us to easily get $s$ applied $n$ times: we just apply $n$ to $s$ and $z$: $(n\ s\ z) = s^n z$. Then, using the fact $s^{n+1} z = s (s^n z)$, we get $s^{n+1} z = s (n\ s\ z)$. Finally, $\mathsf{succ} = \lambda n. (\lambda sz. s (n\ s\ z))$ or, sweetening with some more syntactic sugar, $\mathsf{succ} = \lambda nsz. s (n\ s\ z)$.
The term we've got for the successor function is not unique, one can use any form of $\mathsf{succ}$ as long as it fulfills its role: make "the next" Church numeral out of the current one. For instance, the following is a valid term for $\mathsf{succ}$ too: $\lambda nsz. n s (s z)$, and it can be obtained using the fact $s^{n+1} z = s^n (s z)$.
In fact, there are infinitely many syntactically different $\lambda$-terms for the successor function. We can invent many different (and silly) ways of "implementing" $\mathsf{succ}$: make a Church pair $(\lambda nsz. s (n\ s\ z), \text{<any-term>})$ and take its first component, i.e.
$$
\mathsf{succ} =
\mathsf{fst}\ (\mathsf{pair}\ (\lambda nsz. s (n\ s\ z))\ \text{<any-term>}),
$$
or add $x+1$ to a number and subtract $x$, i.e.
$$
\mathsf{succ} = \lambda n. \mathsf{minus}\ ((\mathsf{plus}\ n\ \mathsf{(x+1)})\ \mathsf{x})
$$
Now, let's address the $\mathsf{succ}\ (\mathsf{succ}\ 1)$ issue (I'm using the unrestricted evaluation strategy here):
$$
\begin{array}
\mathsf{succ}\ (\mathsf{succ}\ \mathsf{one}) &= \quad \text{(by definitions of succ and one)} \\
\mathsf{succ}\ ((\lambda nsz. s (n s z))\ (\lambda sz.s z)) &\to_{\beta} \\
\mathsf{succ}\ (\lambda sz. s ((\lambda sz.s z) s z)) &\to_{\beta}^{*} \\
\mathsf{succ}\ (\lambda sz. s (s z)) &= \quad \text{(by definition of succ)} \\
(\lambda nsz. s (n s z))\ (\lambda sz. s (s z)) &\to_{\beta} \\
(\lambda sz. s ((\lambda sz. s (s z))\ s z)) &\to_{\beta}^{*} \\
(\lambda sz. s (s (s z)))
\end{array}
$$
We've got a $\lambda$-term which clearly represents the number $3$ as was expected. If you try using $\lambda nsz. n s (s z)$ as the successor function you'll get the same result.
Under more restricted reduction strategy, viz. the call-by-value strategy, we sometimes get a term which doesn't look like a Church numeral at all, but behaves like one. A classical example is
$$
\begin{array}
\mathsf{succ}\ 1 &= \\
(\lambda nsz. s (n s z)) (\lambda sz. s z) &\to_{\beta} \\
\lambda sz. s ((\lambda sz. s z) s z)
\end{array}
$$
The result is behaviorally equivalent to $\lambda sz. s (s z)$.
Now I'm going to show that $(\mathsf{succ}\ \mathsf{succ})\ N$ is equivalent to Church numeral corresponding to $N(N+1)$. Then somewhat unintuitive term $(\mathsf{succ}\ \mathsf{succ})\ 1$ indeed evaluates to $2$.
$$\begin{array}
\mathsf{succ}\ \mathsf{succ}\ N &= &\text{unfold the 1st succ}\\
(\lambda nsz. s (n s z))\ \mathsf{succ}\ N &\to_{\beta} \\
(\lambda sz. s (\mathsf{succ}\ s\ z))\ N &\to_{\beta} \\
\lambda z. N\ (\mathsf{succ}\ N\ z) &\to_{\beta}^{*} &\text{(apply succ to N)}\\
\lambda z. N\ (\{N+1\}\ z) &=_{\alpha} &\text{(rename z → s)} \\
\lambda s. N\ (\{N+1\}\ s) &= &\text{unfold {N+1}} \\
\lambda s. N\ ((\lambda tz'. t^{N+1}\ z')\ s) &\to_{\beta} \\
\lambda s. N\ (\lambda z'. s^{N+1}\ z') &= &\text{(unfold N)} \\
\lambda s. (\lambda tz. t^{N}\ z)\ (\lambda z'. s^{N+1}\ z') &\to_{\beta} \\
\lambda s. (\lambda z. (\lambda z'. s^{N+1}\ z')^{N}\ z) &= &\text{(syntactic sugar)} \\
\lambda sz. (\lambda z'. s^{N+1}\ z')^{N}\ z &\to_{\eta} &\text{(η-reduction)} \\
\lambda sz. (s^{N+1})^{N}\ z &= \\
\lambda sz. s^{N(N+1)}\ z &= \\
N(N+1)
\end{array}$$
succ succ 1
orsucc (succ 1)
? Applications (usually) associate to the left, sosucc succ 1
is just notation for(succ succ) 1
. $\endgroup$(succ succ) 1
should evaluate to2
. One might expect3
.(succ succ) 1
means (a) take the successor function and apply it to itself (instead of some Church numeral), getting some new function, which you (b) apply to1
. Whereassucc (succ 1)
means: (a) takesucc
and apply it to1
(getting2
) and (b) applysucc
to the result of the previous step, and that should yield3
. $\endgroup$