| buf[n0] = empty, n < # buf, n ≤ n0, n2 ≤ n0, n ≤ n2, ∀ n2. n ≤ n2 ∧ n2 < n0 → buf[n2] = empty, ∀ n1. n < n1 ∧ ¬ n0 < n1 → buf[n1] = empty ⊦ n + 1 = datasize(buf, n0), buf[n] = empty, buf[n2] = empty, datasize(buf, n) = datasize(buf, n0) |
buf[n0] = empty, n < # buf, n ≤ n2, n2 ≤ n0, n ≤ n0, ∀ n1. n < n1 ∧ ¬ n0 < n1 → buf[n1] = empty, ∀ n2. n ≤ n2 ∧ n2 < n0 → buf[n2] = empty ⊦ n + 1 = datasize(buf, n0), buf[n2] = empty, buf[n] = empty, datasize(buf, n) = datasize(buf, n0)