| pebs[n] = mkpeb(buf, m, false), n < # pebs, m0 + m1 ≤ PEB_SIZE, m ≤ m0, n < # pebs → # pebs[n].data = PEB_SIZE ∧ ( ¬ pebs[n].bad → pebs[n].fill ≤ PEB_SIZE ∧ is-aligned(pebs[n].fill, EB_PAGE_SIZE) ∧ range=(pebs[n].data, pebs[n].fill, emptypeb, pebs[n].fill, PEB_SIZE - pebs[n].fill)) ⊦ subarray(buf, m0, m1) = mkempbuf(m1) |
# buf = PEB_SIZE, pebs[n] = mkpeb(buf, m, false), n < # pebs, is-aligned(m, EB_PAGE_SIZE), range=(buf, m, emptypeb, m, PEB_SIZE - m), m0 + m1 ≤ PEB_SIZE, m ≤ m0, m ≤ PEB_SIZE ⊦ subarray(buf, m0, m1) = mkempbuf(m1)
Used simplifier rules: ⊦ mkpeb(buf, m, boolvar).fill = m; (s)% ⊦ mkpeb(buf, m, boolvar).bad ↔ boolvar; (s)% ⊦ mkpeb(buf, m, boolvar).data = buf; (s)