... = si-D si-1 translates into p p D-1 = pj-D pj-1 and (for the purpose of establishing the invariance of Q(i-D)) the predicate ~P(i-k, M) for k = j-D translates into ≠ p p k-1 pj-k p j-1 for ... fact that sk-1 p j-1 implies ~P(k-j, 0), since ≠ k < M : si+k pk ≠ ≤ ~P(i, 0) = Ek: Moreover, because k-j = M-i, Q(i-M) & ~P(k-j, 0) = Q(i+1-M), establishing a non-match at position i-M+1 Next ... Structured Programming Dahl, Dijkstra, and Hoare, pp 8 3-1 74 1-3 K Jensen and N Wirth Pascal User Manual and Report (Berlin: Springer-Verlag, 1974) 1-4 N Wirth Program development by stepwise refinement...