An mit video, at minute 22 or so, asks for N elementary proof. Can’t say I can prove anything,but I do have a very simple mental model to the point raised that if a code is the image of a function, the dual of the code is the kernel.
I think of that geometrically. From the classical 3-bit hamming cube (the domain) constrain the space to that of classical tetrahedron (the code mapping’s “image”). Now project all the nodes of the cube from the zero vector and get the Fano plane geometry (the code’s “dual”) whose inner circle line represents the kernel (when the dual is a lie group).
The above is a tone poem, not math! The inner space between the triangle’s lines that is NOT occupied by the circle represents uncertainty. one should think now of joining up each of the lines, making nominally three new circles by round out the straight lines. Then join the 2 outlier points of each circle to the point adjacent to it. I think of it as a table top (the original circle) and three loopy legs! (and there goes the math reputation I don’t have in the first place…)
Finally, I think about the relationship between the lines of the triangle (now the loop legs) versus the line of the circle (the table top). As minimum distance in code space comes into the right ratio with the covering error graph (the tetrahedron) and its nearest neighbor average distances, so the triangle compresses to the area of the circle (the legs retract up towards the table top), representing attaining the Shannon limit. We have maximized the coding gain by making the the circle line indistinguishable from the triangle sides (the loopy legs have FULLLY retracted, like an airplane’s wheels).