I learned in my hardware design class that it's actually theory 8. As described in the article:<p>"(8) On a digital clock, nine is the greatest interval obtainable by advancing some sort of "snooze counter" on the ones column. But why mess with the ones column? Why not put the snooze counter on the tens column and advance that by one?"<p>On early digital alarm clocks, the "ones" (minutes) column was a binary-coded decimal (BCD) counter with ten states: 0, 1, 2, ... 9. When the snooze button is hit, you want to make the alarm turn back on after about 10 minutes. However, in exactly 10 minutes, the "ones" column state will be where it is right now, which is a problem, because if you made the alarm turn on at the current ones state, it would turn on immediately, giving you no snooze delay at all.<p>You can achieve a snooze time of almost 10 minutes by picking the "ones" state that is furthest away from the current state, e.g., if the current state is "zero", make the alarm come back on at "9", and if the current state is "7", make the alarm come back on at "6". This results in a snooze time of 9 minutes.<p>Another reasonable way to implement the snooze function is to use an additional 10-digit BCD counter which advances every minute. In this method, the snooze button resets the counter to its first state (zero), and the alarm turns on when the counter reaches its last state (9). As before, this results in a snooze time of 9 minutes.<p>Why not put the snooze counter on the tens column as suggested in the article? Because you don't know how long it's going to be until the tens column changes. If the ones column is currently showing "zero", it will be nearly ten minutes until the tens column changes and the alarm comes back on. But if the ones column is showing "9", then the tens column will be changing in less than a minute. The "tens column" method results in an alarm clock with a variable snooze delay anywhere from zero to 10 minutes.<p>Of course a 10 minute snooze is achievable, but it involves a bit more work and likely additional components. Nine minutes is just easier.<p>Finally, in case you're still with me, I'll mention that depending on how the methods above are implemented, the "9 minute" snooze time might actually be anywhere between 8 and 9 minutes, but the delay will generally be read as 9 minutes' difference on the alarm clock itself. For example, a snooze button hit at "06:00:59" (six a.m. plus 59 seconds) might turn the alarm back on at "06:09:00" (six a.m. plus zero seconds). This is barely 8 minutes later, but the clock time will read 9 minutes later.