Lights Out Keychain Solution : Proof

What follows is an email that I received from Richard Gault that proves that the modified "Light Chasing" algorithm does indeed solve the Lights Out Keychain ( the quoted bit at the beginning was from me...)

> I actually find I have to concentrate to get the light
> chasing correct! I frequently forget to press buttons on the top row.
> Strangely a method that *seems* to work is to deliberately do this
> (unless there are no lights on on the top row). This seems to work
> eventually... Probably doesn't always though!

I managed to prove that it does always work last night. It was
suprisingly easy, and required just pen and paper.

Proof
=====

Begin with an arbitrary puzzle. Chase the lights down once. In the
general case this will leave some lights on in the bottom row, and also
some lights on in the top row.

Lemma 1
=======

Given any puzzle which involves just lights on in the top and bottom rows,
chasing the lights down once is sufficient to leave just lights on in the
bottom row.

Proof
=====

There may be some deep proof here -- I haven't thought about it very much.
Something to do with the fact that if rows 2 and 3 are empty, then turning
off the lights in the top row, turns on the exact same lights in the third
row. Or something. However, it's easier to just to try the possibilities
by hand -- there are only 5 essentially different combinations to try.
QED.

So after at most two iterations of your algorithm, just the bottom row has
lit lights. Once again, there are only five essentially different
non-trivial possibilities for these lights. All of them get turned off
after two iterations of your algorithm. Once again, there may be some
deep reason for this, but I don't know what it is.

QED.

Cheers,

Richard