Prove that $(uv)^R = v^Ru^R$
The answer depends on your standard of proof. Let's try to be very strict.
First of all, let us define words. In contrast to Peter Linz, we will not be afraid of the empty string. The set of words $\Sigma^*$ satisfies the following:

If $w \in \Sigma^*$ then either $w = \epsilon$ or $w = x\sigma$, where $x \in \Sigma^*$ and $\sigma \in \Sigma$.
$\epsilon \neq x\sigma$ for every $x \in \Sigma^*$ and $\sigma \in \Sigma$.
$x\sigma = y\tau$ iff $x=y$ and $\sigma=\tau$.
Define an inductive subset of $\Sigma^*$ to be a subset $S \subseteq \Sigma^*$ such that (i) $\epsilon \in S$ and (ii) if $x \in S$ then $x\sigma \in S$ for all $\sigma \in \Sigma$.

$\Sigma^*$ is an inductive subset.
If $S$ is an inductive subset then $S = \Sigma^*$.



Now we can define concatenation of words inductively:

$w.\epsilon = w$.
$w.(x\sigma) = (w.x)\sigma$.

Finally, we define reversal:

$\epsilon^R = \epsilon$.
$(x\sigma)^R = \sigma.x^R$, where $\sigma$ is syntactic sugar for $\epsilon \sigma$ (which we know to be in $\Sigma^*$ since it is an inductive subset).

We need several lemmas.
Lemma 1. For all $x \in \Sigma^*$, we have $\epsilon.x = x$.
Proof. Let $S = \{ x \in \Sigma^* : \epsilon.x = x \}$. We will show that $S$ is an inductive subset, and so $S = \Sigma^*$, that is, $\epsilon.x = x$ for all $x \in \Sigma^*$.
If $x = \epsilon$ then $\epsilon.\epsilon = \epsilon$. If $x = y\sigma$, where $y \in S$, then $\epsilon.x = \epsilon.y\sigma = (\epsilon.y)\sigma = y\sigma = x$, using $y \in S$. $\square$
Lemma 2. For all $x,y,z \in \Sigma^*$, $x.(y.z) = (x.y).z$.
Proof. Fix $x,y \in \Sigma^*$, and let $S = \{ z \in \Sigma^* : x.(y.z) = (x.y).z \}$. We will show that $S$ is an inductive subset, and so $S = \Sigma^*$.
If $z = \epsilon$ then $x.(y.z) = x.y = (x.y).z$.
Now suppose that $z = w\sigma$, where $w \in S$. Then
$$
x.(y.z) = x.(y.w\sigma) = x.((y.w)\sigma) = (x.(y.w))\sigma = ((x.y).w)\sigma = (x.y).(w\sigma) = (x.y).z,
$$
using $z \in S$. $\square$
Now we are ready to prove your claim.
Fix $x \in \Sigma^*$, and let $S  = \{ y \in \Sigma^* : (x.y)^R = y^R.x^R \}$. We will show that $S$ is an inductive subset, and so $S = \Sigma^*$, that is, $(x.y)^R = y^R.x^R$ for all $y \in \Sigma^*$.
If $y = \epsilon$ then
$$ (x.y)^R = x^R = \epsilon.x^R = \epsilon^R.x^R, $$
using Lemma 1.
If $y = z\sigma$, where $z \in S$, then
$$ (x.y)^R = (x.(z\sigma))^R = ((x.z)\sigma)^R = (\epsilon\sigma)^R. (x.z)^R. $$
Let us notice that $(\epsilon\sigma)^R = \epsilon\sigma.\epsilon^R = \epsilon\sigma.\epsilon = \epsilon\sigma$. Also, since $z \in S$, $(x.z)^R = z^R.x^R$. Therefore
$$ (x.y)^R = (\epsilon\sigma).(z^R.x^R) = ((\epsilon\sigma).z^R).x^R = (z\sigma)^R .x^R = y^R.x^R.$$
using Lemma 2. $\square$

While I tried to be rather strict, a completely formal proof will be even stricter: it will justify every single step, referring to a definition, a lemma, or a logical axiom. However, the proof above should be easy to convert to something that proof assistants can grok.

In practice, you can prove your claim as follows. Let $x = \sigma_1 \ldots \sigma_n$ and $y = \tau_1 \ldots \tau_m$. Then
$$
(xy)^R = (\sigma_1 \ldots \sigma_n \tau_1 \ldots \tau_m)^R = \tau_m \ldots \tau_1 \sigma_n \ldots \sigma_1 = (\tau_m \ldots \tau_1) (\sigma_n \ldots \sigma_1) = y^R x^R.
$$
At a more advanced stage, this proof can be summarized by &quot;obvious&quot;.