| # buf = PEB_SIZE, m0 + 1 = # pebs, pebs[m0] = mkpeb(buf, EB_PAGE_SIZE, false), abs(subarray(pebs, 0, m0), apebs), is-encoded(echdr(n), subarray(buf, 0, EB_PAGE_SIZE)), range=(buf, EB_PAGE_SIZE, emptypeb, EB_PAGE_SIZE, LEB_SIZE + EB_PAGE_SIZE), ubi-io-initial(apebs), ubi-io-initial(pebs), EB_PAGE_SIZE ≤ PEB_SIZE ⊦ (mkpeb(buf, EB_PAGE_SIZE, false).bad ↔ mkpeb(aechdr(n), empty, mkempbuf(LEB_SIZE), 0, false).bad) ∧ ( ¬ mkpeb(buf, EB_PAGE_SIZE, false).bad → mkpeb(buf, EB_PAGE_SIZE, false).fill = (mkpeb(aechdr(n), empty, mkempbuf(LEB_SIZE), 0, false).echdr = empty ⊃ 0 ;(mkpeb(aechdr(n), empty, mkempbuf(LEB_SIZE), 0, false).vidhdr = empty ⊃ EB_PAGE_SIZE ;mkpeb(aechdr(n), empty, mkempbuf(LEB_SIZE), 0, false).fill + 2 * EB_PAGE_SIZE ) ) ∧ abs-echdr(subarray(mkpeb(buf, EB_PAGE_SIZE, false).data, 0, EB_PAGE_SIZE), mkpeb(aechdr(n), empty, mkempbuf(LEB_SIZE), 0, false).echdr) ∧ abs-vidhdr (subarray(mkpeb(buf, EB_PAGE_SIZE, false).data, EB_PAGE_SIZE, EB_PAGE_SIZE), mkpeb(aechdr(n), empty, mkempbuf(LEB_SIZE), 0, false).vidhdr) ∧ subarray(mkpeb(buf, EB_PAGE_SIZE, false).data, 2 * EB_PAGE_SIZE, LEB_SIZE) = mkpeb(aechdr(n), empty, mkempbuf(LEB_SIZE), 0, false).data) |
# buf = PEB_SIZE, m0 + 1 = # pebs, pebs[m0] = mkpeb(buf, EB_PAGE_SIZE, false), abs(subarray(pebs, 0, m0), apebs), is-encoded(echdr(n), subarray(buf, 0, EB_PAGE_SIZE)), range=(buf, EB_PAGE_SIZE, emptypeb, EB_PAGE_SIZE, LEB_SIZE + EB_PAGE_SIZE), ubi-io-initial(pebs), ubi-io-initial(apebs), EB_PAGE_SIZE ≤ PEB_SIZE ⊦ abs-echdr(subarray(buf, 0, EB_PAGE_SIZE), aechdr(n)) ∧ abs-vidhdr(subarray(buf, EB_PAGE_SIZE, EB_PAGE_SIZE), empty) ∧ subarray(buf, 2 * EB_PAGE_SIZE, LEB_SIZE) = mkempbuf(LEB_SIZE)
Used simplifier rules: ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).data = buf; (s)% ⊦ mkpeb(buf, m, boolvar).data = buf; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).vidhdr = avhdr; (s)% ⊦ empty ≠ aechdr(m); (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).echdr = aehdr; (s)% ⊦ mkpeb(buf, m, boolvar).fill = m; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).bad ↔ boolvar; (s)% ⊦ mkpeb(buf, m, boolvar).bad ↔ boolvar; (s)