We define a [formal language][1] as follows:
The free language $\mathcal J$ of all strings $J$ (words) in
alphabet : $R, L$
including the empty string, [].
This language comes naturally equipped with the concatenation operation,
$\tag 1 +: (J,J^{'}) \mapsto JJ^{'}$.
A string $M \text{ in } \mathcal J$ is said to be direct (or pure) if it does not contain both of the letters $R$ and $L$.
The strings $RL$ and $LR$ in $\mathcal J$ are called vis-à-vis steps.
If a vis-à-vis step is inserted anywhere into a string $J$, then the new output string is said to be an expansion of $J$.
If a vis-à-vis step can be removed from a string $J$, then the new output string is said to be a contraction of $J$.
Any string can be contracted to a direct string and can itself be obtained by expanding that same direct string. Two strings $J$ and $J^{'}$ are said to be homoJnic if $J$ can be be transformed into $J^{'}$ using expansions and contractions. When this is the case we can write $J == J^{'}$.
The integers $\mathbb Z$ are defined as the formal language of direct strings in $\mathcal J$. Concatenation is a binary operation on the integers.
Example: $RRRRR + LL = RRRRRLL == RRRRL == RRR$ [1]: https://en.wikipedia.org/wiki/Formal_language