Loop tracing solution


Document last modified: 

Sample Loop

-- P: ∃A[0],  ∃A[1], ∃A[2]

int A[] = {5, 6, 7};

int i = 0;

∀k 0 ≤ k < i, A[k] = 2*A[k]

while( i < 3 ) {
          A[i]=2*A[i];
          i = i + 1;
}

 

Statement i A[0] A[1] A[2]
int A[] = {5, 6, 7};
int i = 0;
0 5 6 7
A[i]=2*A[i];
i = i + 1;
1 10 6 7
A[i]=2*A[i];
i = i + 1;
2 10 12 7
A[i]=2*A[i];
i = i + 1;
3 10 12 14

Question 2.7.0

  1. What is the postcondition?
  2. If the loop invariant holds, ∀k 0 ≤ k < i, A[k] = 2*A[k], does the post condition hold?