| # apebs + 1 = # pebs, pebs[# apebs] = mkpeb(buf, m, true), ubi-io-initial(pebs), ubi-io-initial(apebs), ∀ n0. n0 < # apebs → abs-peb(pebs[n0], apebs[n0]) ⊦ abs-peb(mkpeb(buf, m, true), mkpeb(empty, empty, mkbuf(LEB_SIZE), 0, true)) |
⊦ abs-peb(peb, apeb) ↔ (peb.bad ↔ apeb.bad) ∧ ( ¬ peb.bad → peb.fill = (apeb.echdr = empty ⊃ 0;(apeb.vidhdr = empty ⊃ EB_PAGE_SIZE;apeb.fill + 2 * EB_PAGE_SIZE)) ∧ abs-echdr(subarray(peb.data, 0, EB_PAGE_SIZE), apeb.echdr) ∧ abs-vidhdr(subarray(peb.data, EB_PAGE_SIZE, EB_PAGE_SIZE), apeb.vidhdr) ∧ subarray(peb.data, 2 * EB_PAGE_SIZE, LEB_SIZE) = apeb.data)
Used simplifier rules: ⊦ mkpeb(buf, m, boolvar).bad ↔ boolvar; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).bad ↔ boolvar; (s) Used terms: mkpeb(empty, empty, mkbuf(LEB_SIZE), 0, true), mkpeb(buf, m, true)