Puncturing and shortening additive and linear codes #
An additive code is an additive subgroup of the word space; its puncture is the image under restriction, and its shortening is the inverse image under extension by zero. These operations require only an abelian alphabet. Forgetting scalar closure commutes with both operations.
A linear code on coordinates ι is a submodule of the word space ι → F, as defined in
TauCeti/InformationTheory/Coding/Basic.lean. Given a set s of coordinates to retain,
puncturing restricts every codeword to s. Shortening first restricts to the codewords which
vanish outside s, and then forgets those zero coordinates.
Neither the field nor the coordinate type is assumed finite; finiteness enters only in the
dimension bounds. The API records membership, order preservation, the zero and whole-space cases,
the comparison between shortening and puncturing, and dimension control. Restriction to the deleted
coordinates has the shortened code as its kernel, so dim shorten C s + dim puncture C sᶜ = dim C.
For a single deleted coordinate i this gives the exact dimensions: shortening at i drops the
dimension by one precisely when some codeword is nonzero at i, and puncturing at i drops it by
one precisely when the unit word at i is a codeword.
Main declarations #
puncture: restriction of a code to a retained coordinate set.shorten: restriction after imposing zero outside the retained coordinate set.punctureAtandshortenAt: the corresponding operations deleting one coordinate.mem_punctureandmem_shorten: membership characterizations.finrank_puncture_le,finrank_puncture_eq, andfinrank_shorten_eq: dimension control.finrank_shorten_add_finrank_puncture_compl: rank–nullity for shortening and puncturing.finrank_shortenAt_add_one_of_exists_ne_zeroandfinrank_punctureAt_add_one_of_single_mem: the exact dimension drop when deleting one coordinate.
References #
- W. C. Huffman and V. Pless, Fundamentals of Error-Correcting Codes, Cambridge University Press, 2003, Sections 1.5 and 1.6.
Puncturing an additive code retains precisely the coordinates in s.
Instances For
Puncturing is the image under the coordinate restriction homomorphism.
Shortening retains the words whose extension by zero is a codeword.
Instances For
Shortening is the inverse image under extension by zero.
A word belongs to the punctured code exactly when it restricts a codeword.
A word belongs to the shortened code exactly when its extension by zero belongs to the original code.
Equivalently, shortening restricts the codewords that vanish outside the retained set.
Every shortened word is a punctured word.
Puncturing preserves inclusion of additive codes.
Shortening preserves inclusion of additive codes.
Puncturing the zero code gives the zero code.
Shortening the zero code gives the zero code.
Puncturing the whole word space gives the whole retained word space.
Shortening the whole word space gives the whole retained word space.
Puncturing a code at s retains precisely the coordinates in s.
Instances For
Puncturing is the image under restriction to the retained coordinates.
Shortening a code at s first imposes zero outside s, then retains the coordinates in
s.
Instances For
Shortening is the image under restriction of the words supported on the retained set.
Forgetting scalar closure commutes with puncturing a linear code.
Forgetting scalar closure commutes with shortening a linear code.
A word belongs to the shortened code exactly when its extension by zero is a codeword: equivalently, it is the restriction of a codeword which vanishes off the retained set.
A word on the retained coordinates belongs to the shortened code exactly when its extension by zero belongs to the original code.
Membership in a shortening retaining one coordinate is determined by a codeword supported at that coordinate.
Puncturing at i deletes that coordinate and retains all the others.
Instances For
Puncturing at one coordinate is puncturing with its singleton complement retained.
Shortening at i imposes zero there and retains all the other coordinates.
Instances For
A word belongs to the code punctured at i exactly when it is the restriction of a
codeword to the other coordinates.
Every shortened word is a punctured word.
Shortening to a single retained coordinate i gives the whole word space on {i} exactly when
the unit word at i is a codeword.
Puncturing cannot increase dimension.
Puncturing preserves dimension when the only codeword vanishing at every retained coordinate is zero.
Shortening preserves the dimension of the subcode of words supported on the retained coordinates.
Shortening cannot increase dimension.
Rank–nullity for shortening and puncturing. Restricting a code to the deleted coordinates
sᶜ has kernel the words vanishing off s, which is the shortened code; so the dimensions of
shorten C s and puncture C sᶜ add up to the dimension of C.
The dimensions of puncture C s and shorten C sᶜ add up to the dimension of C.
The dimension lost by shortening is at most the number of deleted coordinates.
The dimension lost by puncturing is at most the number of deleted coordinates.
Deleting one coordinate #
Shortening at i lowers the dimension by exactly one when some codeword is nonzero at i.
Shortening at i preserves the dimension when every codeword vanishes at i.
Puncturing at i lowers the dimension by exactly one when the unit word at i is a
codeword.
Puncturing at i preserves the dimension when the unit word at i is not a codeword.