| avols[default-volid][m].mapped?, m < # avols[default-volid], ebm-cons(avols), default-volid ∈ avols, n0 + n ≤ # buf, m0 + n ≤ LEB_SIZE ⊦ ⟪ebm_vol_read#(m, m0, n0, n, default-volid, avols; buf; err)⟫ true |
m = m1, m0 = m2, v = default-volid, avols[default-volid][m2].mapped?, m2 < # avols[default-volid], ebm-cons(avols), default-volid ∈ avols, m1 + n ≤ LEB_SIZE, n0 + n ≤ # buf ⊦ ⟪if avols[v][m0].mapped? ∧ m0 < # avols[v] ∧ m + n ≤ LEB_SIZE ∧ n0 + n ≤ # buf then ebm_read#(v, m0, m, n0, n, avols; buf; err) else abort⟫ true
Used simplifier rules: read: ⊦ ;