| # buf = LEB_SIZE, LEB_SIZE = n0 + m, apebs[n] = mkpeb(aehdr, avhdr, buf, m, false), subarray(buf, m, n0) = mkempbuf(n0), mkpeb(aehdr, avhdr, buf, m, false).echdr.valid?, n < # apebs, is-aligned(m, EB_PAGE_SIZE), m ≤ LEB_SIZE, m0 ≤ LEB_SIZE, m ≤ m0, ∃ m0, m1, m3. mkpeb(aehdr, avhdr, buf, m, false).vidhdr = avidhdr(v, m2, m0, m1, m3) ∧ (m1 ≠ 0 → m1 ≤ datasize(mkpeb(aehdr, avhdr, buf, m, false).data) ∧ m3 = checksum(mkpeb(aehdr, avhdr, buf, m, false).data, m1)) ⊦ aehdr = empty, avhdr = empty, mkpeb(aehdr, avhdr, buf, m, false).bad, aehdr.valid? ∧ (∃ m3, m4, m5. avhdr = avidhdr(v, m2, m3, m4, m5) ∧ (m4 ≠ 0 → m4 ≤ datasize(subarray(buf, 0, m0) + buf1) ∧ m5 = checksum(subarray(buf, 0, m0) + buf1, m4))) |
# buf = LEB_SIZE, LEB_SIZE = n0 + m, apebs[n] = mkpeb(aehdr, avidhdr(v, m2, m4, m3, m1), buf, m, false), subarray(buf, m, n0) = mkempbuf(n0), aehdr.valid?, n < # apebs, is-aligned(m, EB_PAGE_SIZE), m ≤ LEB_SIZE, m0 ≤ LEB_SIZE, m ≤ m0, m3 ≠ 0 → m3 ≤ datasize(buf) ∧ m1 = checksum(buf, m3) ⊦ aehdr = empty, ∃ m6, m, m5. avidhdr(v, m2, m4, m3, m1) = avidhdr(v, m2, m6, m, m5) ∧ (m ≠ 0 → m ≤ datasize(subarray(buf, 0, m0) + buf1) ∧ m5 = checksum(subarray(buf, 0, m0) + buf1, m))
Used simplifier rules: ⊦ empty ≠ avidhdr(v, m, m0, m1, m2); (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).data = buf; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).bad ↔ boolvar; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).echdr = aehdr; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).vidhdr = avhdr; (s)