Answer: d. I space rightwards double arrow space P
Step-by-step explanation:
The loop invariant must always satisfy a number of requirements for it to be considered useful. Another consideration is the complicating factor for loop termination. Any loop which cannot terminate would always not be correct, which tends to compute nothing. Below is a complete axiomatic illustration showing the construct required for it to be true, where I is the loop invariant:
P => I
{I and B} S {I}
(I and (not B)) => Q
the loop terminates