| # mkpeb(aehdr, avhdr, buf, m, false).data = LEB_SIZE, m < align↑(datasize(buf, LEB_SIZE), EB_PAGE_SIZE), ¬ mkpeb(aehdr, avhdr, buf, m, false).bad → (mkpeb(aehdr, avhdr, buf, m, false).echdr = empty → mkpeb(aehdr, avhdr, buf, m, false).vidhdr = empty) ∧ ( mkpeb(aehdr, avhdr, buf, m, false).echdr ≠ garbage ∧ mkpeb(aehdr, avhdr, buf, m, false).vidhdr = empty → mkpeb(aehdr, avhdr, buf, m, false).fill = 0) ∧ mkpeb(aehdr, avhdr, buf, m, false).fill ≤ LEB_SIZE ∧ is-aligned(mkpeb(aehdr, avhdr, buf, m, false).fill, EB_PAGE_SIZE) ∧ subarray(mkpeb(aehdr, avhdr, buf, m, false).data, mkpeb(aehdr, avhdr, buf, m, false).fill, LEB_SIZE - mkpeb(aehdr, avhdr, buf, m, false).fill) = mkempbuf(LEB_SIZE - mkpeb(aehdr, avhdr, buf, m, false).fill) ⊦ |
# buf = LEB_SIZE, subarray(buf, m, LEB_SIZE - m) = mkempbuf(LEB_SIZE - m), m < datasize(buf, LEB_SIZE), is-aligned(m, EB_PAGE_SIZE), m ≤ LEB_SIZE, aehdr ≠ garbage ∧ avhdr = empty → m = 0, aehdr = empty → avhdr = empty ⊦ ∃ buf0. buf = mkempbuf(LEB_SIZE) + buf0
Used simplifier rules: ls-datasize-zero: n ≤ # buf ⊦ datasize(buf, n) = 0 ↔ (∃ buf0. buf = mkempbuf(n) + buf0);% ⊦ ¬ n < n; (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%n ≠ 0, is-aligned(m, n) ⊦ m < align↑(m0, n) ↔ m < m0; (s)% ⊦ EB_PAGE_SIZE ≠ 0; (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)