Vraagstelling Er zijn 2 arrays: a en b, post: la == (Ai: 0<=i<=n-1: a[i] > (Sj: 0<=j<=i: b[j])) gevraagd werd naar zowel een dubbele als een enkele loop Strategie la = (Ai: 0<=i<=n-1: a[i] > som(i)) ^ som(i) = (Sj: 0<=j<=i: b[j]) Formele probleemspecificatie pre: post: * Eindrelatie R: la == (Ai: 0<=i<=n-1: a[i] > (Sj: 0<=j<=i: b[j])) * Invariant I(k):la = (Ai: 0<=i<=k: a[i] > (Sj: 0<=j<=i: b[j])) ^ -1<=k (Sj: 0<=j<=i: b[j])) ^ (Ai: i=k: a[i] > som) Q:som=(Sj: 0<=j<=k: b[j])) som = (Sj: 0<=j<=k: b[j])) + (Sj: j=k: b[j])) Algoritme public boolean la(rij a, rij b){ int k=-1; la = true; som=0 while(k!=n-1){ k++; som=som+b[k]; la = la && (a[k] > som); } return la; }