| # avol1 = # avol0, n < m0, m0 + m < # avol0, id○(avol1, avol0, n), # avol1 = # avol0 ∧ n < m0 ∧ id○(avol1, avol0, n) ∧ m0 + m ≤ # avol0 → lebs(avol1, m0, m) = lebs(avol0, m0, m) ⊦ lebs(avol1, m0, m) + (avol1[m0 + m].mapped? ⊃ avol1[m0 + m].data + mkempbuf(LEB_SIZE - # avol1[m0 + m].data);mkempbuf(LEB_SIZE)) = lebs(avol0, m0, m) + (avol0[m0 + m].mapped? ⊃ avol0[m0 + m].data + mkempbuf(LEB_SIZE - # avol0[m0 + m].data);mkempbuf(LEB_SIZE)) |
# avol1 = # avol0, lebs(avol1, m0, m) = lebs(avol0, m0, m), n < m0, m0 + m < # avol0, id○(avol1, avol0, n) ⊦ (avol1[m0 + m].mapped? ⊃ avol1[m0 + m].data + mkempbuf(LEB_SIZE - # avol1[m0 + m].data);mkempbuf(LEB_SIZE)) = (avol0[m0 + m].mapped? ⊃ avol0[m0 + m].data + mkempbuf(LEB_SIZE - # avol0[m0 + m].data);mkempbuf(LEB_SIZE))
Used simplifier rules: append-a: ⊦ (buf + buf0) + buf1 = buf + buf0 + buf1; from specification array-splice[buffer]% ⊦ buf + buf0 = buf + buf1 ↔ buf0 = buf1; (s)% ⊦ m < n → m ≤ n; (s)