I understand that, as stated here, CRC is not linear (with respect to XOR operator) in general, because it could be initialized with a non-zero value.
I was wondering how to prove linearity, when zero is used as the initial value for CRC. Basically, I'm trying to prove the following equation: (with ⊕ being the XOR operator) $$ \mathrm{CRC}(a) \oplus \mathrm{CRC}(b) = \mathrm{CRC}(a \oplus b) \qquad \mathrm{(1)} $$
Moreover, the accepted answer of this question states that even when a non-zero value is used for CRC initialization, the following equation still holds for any three bit-strings of equal length: $$ \mathrm{CRC}(a) \oplus \mathrm{CRC}(b) \oplus \mathrm{CRC}(c) = \mathrm{CRC}(a \oplus b \oplus c) \qquad\mathrm{(2)} $$
I'm looking for a proof for each of the above equations.
P.S.
In each of the mentioned links, there is some sort of explanation for linearity of CRC, but I didn't quite understand some of them, and with all due respect, I didn't find any of them to be a solid proof.
Actually, the proofs are meant for an assignment for a Network Security course, with the subject of assignment being weaknesses of WEP protocol. So if some assumptions are needed to prove the equations, that wouldn't be a problem.