1 | 19. u1: B 20. v: B List 21. a:{s:A| M(s) M(H(j,u)) }.
list_accum(s',i'.process s' i' where
process s i ==
if P(i,s) then F(i,s)
else G(i,s) where
xs := N(i,s);
s:= H(i,s);
while not null xs {
s := process s (hd xs);
xs := tl xs;
} ;a;v)
{s:A| M(s) M(a) } 22. a: {s:A| M(s) M(H(j,u)) } process a u1 where process s i == if P(i,s) then F(i,s) else G(i,s) where xs := N(i,s); s:= H(i,s); while not null xs { s := process s (hd xs); xs := tl xs; } {s:A| M(s) M(a) } | 1 step |
2 | 19. u1: B 20. v: B List 21. a:{s:A| M(s) M(H(j,u)) }.
list_accum(s',i'.process s' i' where
process s i ==
if P(i,s) then F(i,s)
else G(i,s) where
xs := N(i,s);
s:= H(i,s);
while not null xs {
s := process s (hd xs);
xs := tl xs;
} ;a;v)
{s:A| M(s) M(a) } 22. a: {s:A| M(s) M(H(j,u)) } 23. s': {s:A| M(s) M(a) } 24. i': B process s' i' where process s i == if P(i,s) then F(i,s) else G(i,s) where xs := N(i,s); s:= H(i,s); while not null xs { s := process s (hd xs); xs := tl xs; } {s:A| M(s) M(a) } | 4 steps |