From the limited evidence of this particular article, you seem to be unaware that you've switched from test-before semantics to test-after semantics, which can completely foul things up on loops that need to be able to execute 0 times, or that have side effects in the conditional. So it's quite possible you've just proven the argument you were trying to disprove.