Hola,
Tras una consulta en el teórico de ayer, estuve mirando con más cuidado las propiedades del kernel y el span, y efectivamente cometí un error en el teórico (que además también está en los videos). En particular, la observación fue que en el ejemplo que hicimos una fila de H contiene una palabra válida de código, y como podía ser que el kernel fuera parte del span (cuando en el pizarrón, y así sucede en R^n, escribimos que la intersección de ambos sólo puede ser el origen).
El error está justamente en esta última aseveración. Si bien en espacios con producto interno sí se cumple (como en R^3, donde por ejemplo el kernel del plano es el eje z, y por tanto si hacemos suma directa nos da todo R^3), GF(2)^n justamente no tiene producto interno. Es más, por ejemplo la palabra (1,1,0) de GF(2)^3 está tanto en su span como en su kernel (basta verificar, en notación numpy, que [1,1,0]@[1,1,0].T = 0).
Lo que sí se cumple es que, dicho mal y pronto, el kernel del kernel, es el subespacio original (lo que es bien fácil de chequear por la conmutatividad de la multiplicación), y que la suma de las dimensiones del span y del kernel es siempre n. Pero no siempre son disjuntos salvo en el origen.
Lo anterior ilustra cómo las analogías y la intuición sirven cuando estamos seguros que se cumplen. En este caso el error fue razonar con ángulos y ortogonalidades en un espacio que no está equipado con estos conceptos.
Cualquier cosa igual lo hablamos el martes.
saludos
Federico