| # 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 ⊦ ubi-io-peb-initial(mkpeb(aechdr(n), empty, mkempbuf(LEB_SIZE), 0, false)) |
⊦ ubi-io-peb-initial(apeb) ↔ ubi-io-peb-inv(apeb) ∧ (¬ apeb.bad → apeb.echdr.valid? ∧ apeb.vidhdr = empty)
Used simplifier rules: ⊦ ubi-io-peb-inv(mkpeb(aehdr, empty, mkempbuf(LEB_SIZE), 0, false)); (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).bad ↔ boolvar; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).echdr = aehdr; (s)% ⊦ aechdr(m).valid?; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).vidhdr = avhdr; (s) Used terms: mkpeb(aechdr(n), empty, mkempbuf(LEB_SIZE), 0, false)