lInstead of assignment statements:
sum = sum + fd;
fd = fd + sd;
i = i+1;
use mathematical
equations:
sumÕ == sum +
fd
fdÕ == fd +
sd
sdÕ == sd
(no change)
iÕ == i+1
lIt is easier to reason about equations:
lsum == i2 ô i <
n ô fd == 2*i+1 ô sd == 2
ô i < n
implies
lsumÕ == iÕ2 ô iÕ <
n ô fdÕ == 2*iÕ+1 ô sdÕ == 2