| buf1 = buf, buf .len < buf .size, inv(buf), 0 ≤ buf .len, 0 < buf .size, ar0 = buf1 .data ∧ a1 = a ∧ i0 = (buf .first + buf .len) % buf .size, 0 ≤ i0 ∧ i0 < n→i(# ar0) ⊦ 〈buf1 := buf1 .data:= ar0[i→n(i0), a1] .len:= ((buf1 .data:= ar0[i→n(i0), a1]) .len + 1)〉 (inv(buf1) ∧ abs(buf1, tolist(buf, i→n(buf .len)) + a ')) |
buf1 = buf, buf .len < buf .size, inv(buf), 0 ≤ buf .len, 0 < buf .size, ar0 = buf1 .data ∧ a1 = a ∧ i0 = (buf .first + buf .len) % buf .size, 0 ≤ i0 ∧ i0 < n→i(# ar0), ¬ inv(buf1 .data:= ar0[i→n(i0), a1] .len:= ((buf1 .data:= ar0[i→n(i0), a1]) .len + 1)) ∨ ¬ abs(buf1 .data:= ar0[i→n(i0), a1] .len:= ((buf1 .data:= ar0[i→n(i0), a1]) .len + 1), tolist(buf, i→n(buf .len)) + a ') ⊦
[[CONCRETESIMPRULES : ()]]