| buf .len = n→i(# x) + 1, a ' + x = tolist(buf, 1 + # x), 0 ≤ buf .first, buf .first < n→i(# buf .data), inv(buf) ⊦ # buf .data = 0, (buf .first:= ((buf .first + 1) % buf .size) .len:= n→i(# x)) .size = n→i(# (buf .first:= ((buf .first + 1) % buf .size) .len:= n→i(# x)) .data) ∧ (buf .first:= ((buf .first + 1) % buf .size) .len:= n→i(# x)) .size ≠ 0 ∧ 0 ≤ (buf .first:= ((buf .first + 1) % buf .size) .len:= n→i(# x)) .first ∧ (buf .first:= ((buf .first + 1) % buf .size) .len:= n→i(# x)) .first < (buf .first:= ((buf .first + 1) % buf .size) .len:= n→i(# x)) .size ∧ 0 ≤ (buf .first:= ((buf .first + 1) % buf .size) .len:= n→i(# x)) .len ∧ (buf .first:= ((buf .first + 1) % buf .size) .len:= n→i(# x)) .len ≤ (buf .first:= ((buf .first + 1) % buf .size) .len:= n→i(# x)) .size |
buf .len = n→i(# x) + 1, a ' + x = tolist(buf, 1 + # x), 0 ≤ buf .first, buf .first < n→i(# buf .data), inv(buf) ⊦ # buf .data = 0, buf .size = n→i(# buf .data) ∧ buf .size ≠ 0 ∧ 0 ≤ (buf .first + 1) % buf .size ∧ (buf .first + 1) % buf .size < buf .size ∧ n→i(# x) ≤ buf .size
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ 0 ≤ n→i(n)], [CSIMPSEQ : ⊦ (buf .len:= i1) .len = i1], [CSIMPSEQ : ⊦ (buf .first:= i0) .first = i0], [CSIMPSEQ : ⊦ (buf .len:= i1) .first = buf .first], [CSIMPSEQ : ⊦ (buf .first:= i0) .data = buf .data], [CSIMPSEQ : ⊦ (buf .len:= i1) .data = buf .data], [CSIMPSEQ : ⊦ (buf .first:= i0) .size = buf .size], [CSIMPSEQ : ⊦ (buf .len:= i1) .size = buf .size])]]