| 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) ⊦ 〈a2 := ar0[i→n(i0)]〉 〈buf0 := buf .first:= ((buf .first + 1) % buf .size) ; buf0 := buf0 .len:= (buf0 .len - 1)〉 (inv(buf0) ∧ abs(buf0, x) ∧ a = a2) |
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)〉 〈buf0 := buf0 .len:= (buf0 .len - 1)〉 (inv(buf0) ∧ abs(buf0, x) ∧ a = ar0[i→n(i0)])
[[CONCRETESIMPRULES : ()]]