My mistake was that I didn't realize the sweeping effect of an undefined operation. I knew the shift was suspect; I thought that just meant the result of that operation could be anything. It hadn't occurred to me that it actually meant that no part of the program's behavior was defined. Reviewing the spec uncovered that aspect of the situation. Thanks for the responses.