4.7

Using induction after N and induction after P, each code (4.11, 4.12) is 
equivalent to 4.9

4.8

Sol. 1:
-------
W( Code( IP1, I1 ) ) /\ W ( Code ( IP2, I2 ) ) = empty |
W( Code( IP1, I1 ) ) /\ R ( Code ( IP2, I2 ) ) = empty | => no loop dep.
R( Code( IP1, I1 ) ) /\ W ( Code ( IP2, I2 ) ) = empty |

Sol. 2 (using Benerjee's dependence test):
-------
DIAG (I) = 1 / H(I) + 1 / H(I+1) = DIAG(I-1) + 1 / H(I-1) - 1 / H(I+1)
(vector H is used only for reading => no loop dep. are introduced)

F(x) = x   (a0 = 0 and a1 = 1)
G(x) = x-1 (b0 = 1 and b1 = 1)

 1 = min (F(x) - G(x)) <= 0 <= max (F(x) - G(x)) = 1 (impossible)

=> no dep.

4.11

F(k) = 9 * k
G(l) = 6 * l + 2

gcd (9, 6) = 3       |
2 - 0 = 2            | => no loop-carried dep.
3 does not divide 2  |