Cyclic codes, i.e. cyclic shifts of codewords produce other codewords