| # buf = EB_PAGE_SIZE, # lpt0 = # avol, # avol0 = # avol, avol0[m] = mapped(buf0), m < # avol, n < # avol, awbuf-inv(avol, buffered(m)), ebm-vol-inv(avol0), wbuf-cons(mkwbuf(buf, m2, m1), mapped(buf0), rofs), ∀ n0. n0 < # avol → (n0 ≠ m → avol[n0] = avol0[n0]) ∧ (¬ rofs ∧ n0 = m → avol[m] = mapped(buf0 + subarray(buf, 0, m1))) ∧ ( rofs ∧ n0 = m → m2 = # buf0 ∧ avol[m] = mapped(buf0 + subarray(buf, 0, m1)) ∨ m2 < # buf0 ∧ m2 + m1 < # buf0 ∧ avol[m] = mapped(buf0) ∧ subarray(buf, 0, m1) = subarray(buf0, m2, m1)) ⊦ (n ≠ m → avol[n] = avol0[n]) ∧ ( n = m → m2 = # buf0 ∧ avol[m] = mapped(buf0 + subarray(buf, 0, m1)) ∨ m2 < # buf0 ∧ m2 + m1 < # buf0 ∧ avol[m] = mapped(buf0) ∧ subarray(buf, 0, m1) = subarray(buf0, m2, m1)) |
# avol0 = # avol, # lpt0 = # avol, # buf = EB_PAGE_SIZE, avol0[m] = mapped(buf0), n < # avol, m < # avol, awbuf-inv(avol, buffered(m)), ebm-vol-inv(avol0), wbuf-cons(mkwbuf(buf, m2, m1), mapped(buf0), rofs), n < # avol → (n ≠ m → avol[n] = avol0[n]) ∧ (¬ rofs ∧ n = m → avol[m] = mapped(buf0 + subarray(buf, 0, m1))) ∧ ( rofs ∧ n = m → m2 = # buf0 ∧ avol[m] = mapped(buf0 + subarray(buf, 0, m1)) ∨ m2 < # buf0 ∧ m2 + m1 < # buf0 ∧ avol[m] = mapped(buf0) ∧ subarray(buf, 0, m1) = subarray(buf0, m2, m1)) ⊦ (n ≠ m → avol[n] = avol0[n]) ∧ ( n = m → m2 = # buf0 ∧ avol[m] = mapped(buf0 + subarray(buf, 0, m1)) ∨ m2 < # buf0 ∧ m2 + m1 < # buf0 ∧ avol[m] = mapped(buf0) ∧ subarray(buf, 0, m1) = subarray(buf0, m2, m1))
Used terms: n