| avols[default-volid][m2] = mapped(buf0, n1), buf1 = buf2, err = ESUCCESS, m2 < # avols[default-volid], ebm-cons(avols), ebm-vol-inv(abs(avols[default-volid])), default-volid ∈ avols, n3 + n2 ≤ # buf2, m1 + n2 ≤ LEB_SIZE ⊦ ⟨buf2 := copy(abs(avols[default-volid])[m2].data + mkempbuf(LEB_SIZE - # abs(avols[default-volid])[m2].data), m1, buf2, n3, n2)⟩ (copy(avols[default-volid][m2].data, m1, buf1, n3, n2) = buf2 ∧ ESUCCESS = err) |
avols[default-volid][m2] = mapped(buf0, n1), buf1 = buf2, err = ESUCCESS, abs(avols[default-volid])[m2].mapped?, m2 < # abs(avols[default-volid]), m2 < # avols[default-volid], ebm-cons(avols), ebm-vol-inv(abs(avols[default-volid])), default-volid ∈ avols, m1 + n2 ≤ #(abs(avols[default-volid])[m2].data + mkempbuf(LEB_SIZE - # abs(avols[default-volid])[m2].data)), m1 + n2 ≤ LEB_SIZE, n3 + n2 ≤ # buf2, LEB_SIZE ≥ # abs(avols[default-volid])[m2].data ⊦ copy(avols[default-volid][m2].data, m1, buf1, n3, n2) = copy(abs(avols[default-volid])[m2].data + mkempbuf(LEB_SIZE - # abs(avols[default-volid])[m2].data), m1, buf2, n3, n2) ∧ ESUCCESS = err
avols[default-volid][m2] = mapped(buf0, n1), buf1 = buf2, err = ESUCCESS, m2 < # avols[default-volid], ebm-cons(avols), ebm-vol-inv(abs(avols[default-volid])), default-volid ∈ avols, m1 + n2 ≤ LEB_SIZE, n3 + n2 ≤ # buf2 ⊦ (m1 + n2 ≤ #(abs(avols[default-volid])[m2].data + mkempbuf(LEB_SIZE - # abs(avols[default-volid])[m2].data)) ∧ n3 + n2 ≤ # buf2) ∧ (abs(avols[default-volid])[m2].mapped? ∧ m2 < # abs(avols[default-volid]) ∧ default-volid ∈ avols) ∧ LEB_SIZE ≥ # abs(avols[default-volid])[m2].data ∧ abs(avols[default-volid])[m2].mapped? ∧ m2 < # abs(avols[default-volid]) ∧ default-volid ∈ avols