标签: discrete-mathematics correctness loop-invariant proof-of-correctness
我不确定如何使用循环不变量证明此问题的正确性:
使用适当的循环不变量来证明以下程序为所有整数输入输出2 ^ a-1 a> = 0。
[ INPUT: a ≥ 0 ] x := 0 y := a while (y 6= 0) x := 2 ∗ x + 1 y := y − 1 end while output x
对于我的循环不变量,我将对所有整数输入a≥0做x = 2 ^(a) - 1,但我不确定这个不变量是否可证明。