Why is interchanging rows or columns called an elementary operation on a matrix? In my first programming course, I learnt how to swap two variables, suppose denoted by $x$ and $y$, without holding a value in a third variable. Run this code snippet in C.
int x=5, y=6;
x=x+y;
y=x-y;
x=x-y;
if(!(x-6 || y-5)) printf("Variables Swapped.");

So, as it shows, interchanging rows and columns can be achieved in exactly the same way, a series of scalar multiplications and addition. So, if the interchanging is essentially a composition of other operations, is it fair to call it an elementary operation?
 A: What you're basically saying is:

Observation 0. For all $a,b \in \mathbb{N}$ and all $i,j<a$, we have:
$$(R_i \leftrightarrow R_j) = (R_i := R_i-R_j)\circ(R_j := R_i-R_j)\circ(R_i := R_i+R_j)$$
where each side of the equation is interpreted as an endofunction on the set of $a \times b$ matrices.

This is correct.
Proof. Each line equals the next:
$$(R_i := R_i-R_j)\circ(R_j := R_i-R_j)\circ(R_i := R_i+R_j)$$
$$(R_i := R_i-(R_i-R_j); R_j := R_i-R_j)\circ(R_i := R_i+R_j)$$
$$(R_i := (R_i+R_j)-((R_i+R_j)-R_j); R_j := (R_i+R_j)-R_j)$$
$$(R_i := R_j; R_j := R_i)$$
It follows that:

Observation 1. For all $a,b \in \mathbb{N}$ and all $i,j<a$, we have:
$$(R_i \leftrightarrow R_j) = (R_i := R_i-R_j)\circ(R_j := R_j+R_i) \circ (R_j := -R_j)\circ(R_i := R_i+R_j)$$

Hence technically, we don't really need $R_i \leftrightarrow R_j$ if our goal is to generate all row operations by composition; the other two are enough.
That's also correct. It might even be useful occasionally. On the other hand, I don't really agree with the idea that the only interesting generating sets are the minimal generating sets. It's okay to have a few extra elements in there imvho.
