On the Wikipedia page for Cyclic Redundancy Check, it says that:
CRC is a linear function with a property that ${\displaystyle \operatorname {crc} (x\oplus y)=\operatorname {crc} (x)\oplus \operatorname {crc} (y)}$
This linearity property is a vital part of what makes CRC implementations efficient, and so I would like to understand how this conclusion was derived.
On the related page on CRC mathematics, the CRC is defined as $R(x)$ where:
$$ \begin{eqnarray}M(x)\cdot x^{n} &=& Q(x)\cdot G(x)+R(x) \\ R(x) &=& M(x)\cdot x^{n}\,{\bmod \,}G(x)\\ \end{eqnarray} $$
How does one get from this to the linearity conclusion?
As a clarification, let's disregard the complicating issues of actual CRC standards like the non-zero initial values, bit inversions and endianness. Just the polynomial division.