Que No, que no está implícita en la definición de un lineal de código. La definición de un lineal de código no está relacionado con la función de codificación, sólo con el (no asignados) conjunto de codewords.
Un bloque de código de longitud $n$ $2^k$ codewords se llama lineal
$(n,k)$ código si y sólo si su $2^k$ codewords formar una $k$-dimensiones subespacio del espacio vectorial de todas las $n$-tuplas más
el campo $GF(2)$
(Definición de binario códigos lineales de Lin & Costello):
Así que, estrictamente hablando, ello puede ocurrir por un lineal de código que $E(c_1 +c_2) \ne E(c_1) + E(c_2)$.
Por ejemplo:
$$c_1: 00 \to 100$$
$$c_2: 01 \to 110$$
$$c_3: 10 \to 010$$
$$c_4: 11 \to 000$$
Este es un lineal de código (los codewords forman un subespacio lineal), pero la función de codificación no es: $E(c_1+c_2)=E(c_2) \ne E(c_1) + E(c_2)$
Sin embargo, es fácil demostrar que, dado un conjunto de codewords que forman un subespacio (es decir, dado un lineal de código), una función de codificación puede ser utilizada y que también es lineal (y que pueden ser expresados como un generador de matriz, el cual se multiplica por la entrada). Y, en la práctica, que es siempre el preferido.
(Por cierto, que también la razón por la que cada "real" lineal código asigna el cero de entrada para el cero de la palabra - una propiedad que no es estrictamente necesaria para tener un lineal de código, pero para tener un lineal de la función de codificación).