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