| # mkpeb(aehdr, avhdr, buf, m, boolvar).data = LEB_SIZE, apebs[n] = mkpeb(aehdr, avhdr, buf, m, boolvar), n < # apebs, valid-peb(mkpeb(aehdr, avhdr, buf, m, boolvar)), m ≤ m0, m0 ≤ LEB_SIZE, m ≤ LEB_SIZE, ¬ mkpeb(aehdr, avhdr, buf, m, boolvar).bad → (mkpeb(aehdr, avhdr, buf, m, boolvar).echdr = empty → mkpeb(aehdr, avhdr, buf, m, boolvar).vidhdr = empty) ∧ ( mkpeb(aehdr, avhdr, buf, m, boolvar).echdr ≠ garbage ∧ mkpeb(aehdr, avhdr, buf, m, boolvar).vidhdr = empty → mkpeb(aehdr, avhdr, buf, m, boolvar).fill = 0) ∧ mkpeb(aehdr, avhdr, buf, m, boolvar).fill ≤ LEB_SIZE ∧ is-aligned(mkpeb(aehdr, avhdr, buf, m, boolvar).fill, EB_PAGE_SIZE) ∧ subarray (mkpeb(aehdr, avhdr, buf, m, boolvar).data, mkpeb(aehdr, avhdr, buf, m, boolvar).fill, LEB_SIZE - mkpeb(aehdr, avhdr, buf, m, boolvar).fill) = mkempbuf(LEB_SIZE - mkpeb(aehdr, avhdr, buf, m, boolvar).fill) ⊦ valid-peb(mkpeb(aehdr, avhdr, subarray(buf, 0, m0) + buf1, m1, false)) |
# buf = LEB_SIZE, apebs[n] = mkpeb(aehdr, avhdr, buf, m, false), subarray(buf, m, LEB_SIZE - m) = mkempbuf(LEB_SIZE - m), n < # apebs, is-aligned(m, EB_PAGE_SIZE), valid-peb(mkpeb(aehdr, avhdr, buf, m, false)), m ≤ LEB_SIZE, m0 ≤ LEB_SIZE, m ≤ m0 ⊦ aehdr = empty, avhdr = empty, valid-peb(mkpeb(aehdr, avhdr, subarray(buf, 0, m0) + buf1, m1, false))
Used simplifier rules: ⊦ ¬ valid-peb(mkpeb(aehdr, empty, buf, m, boolvar)); (s)% ⊦ valid-peb(mkpeb(aehdr, avhdr, buf, m, true)) ↔ false; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).fill = m; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).vidhdr = avhdr; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).echdr = aehdr; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).bad ↔ boolvar; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).data = buf; (s)