| m2 < # avols[v], ebm-cons(avols), is-aligned(m1, EB_PAGE_SIZE), is-aligned(n, EB_PAGE_SIZE), v ∈ avols, m1 + n ≤ LEB_SIZE, n + n2 ≤ # buf, avols[v][m2].mapped? → avols[v][m2].fill ≤ m1, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪avols[v][m2] := unmapped⟫ ebm-cons(avols), err0 = ESUCCESS, n = 0, avols[v][m2].mapped? |
Used simplifier rules: ⊦ ⌊err⌋ → err ≠ ESUCCESS; (s)%⊦ v ∈ avols ∧ m < # avols[v] ∧ ebm-cons(avols) → ( ebm-cons(avols[v, avols[v][m, leb]]) ↔ valid-leb(avols[v][m]) → valid-leb(leb)); (ss)%⊦ valid-leb(leb) ↔ leb.mapped? → # leb.data = LEB_SIZE ∧ leb.fill ≤ LEB_SIZE ∧ is-aligned(leb.fill, EB_PAGE_SIZE) ∧ range=(leb.data, leb.fill, emptyleb, 0, LEB_SIZE - leb.fill); (s)% ⊦ ¬ unmapped.mapped?; (s)