Thus,
codeword . R . P = decodedword
Where R is an invertible matrix and P is some non-invertible matrix -- e.g., a projection matrix.
I haven't been able to find a linear decoding for this version of ECC, nor have I been able to convince myself that it is impossible.
If the ECC can correct single-bit errors, then every vector v of Hamming weight 1 must satisfy: v . R . P = 0 But since the vectors of Hamming weight 1 span the space, then we have: v . R . P = 0 for every vector v, which implies that, in every case, decodedword = 0 -- so the code cannot store any information whatsoever. To summarise, there is no code which satisfies each of: (i) linear decoding; (ii) correction of arbitrary single-bit errors; (iii) ability to actually store information. If you remove any one condition, then there are examples: (i) + (ii) : empty code (i) + (iii) : identity code (ii) + (iii) : Hamming code Best wishes, Adam P. Goucher