| # wlar = # apebs1, apebs1[vtblpnum2] = mkpeb(aechdr(m0), empty, buf0, 0, false), wlar[vtblpnum2] = wl-entry(m0, free), vtblpnum2 < # apebs1, is-aligned(LEB_SIZE, EB_PAGE_SIZE), is-encoded(∅, buf), ubi-io-initial(apebs1), ubi-io-inv(apebs1[vtblpnum2, mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf0, 0, false)]), ubi-io-inv(apebs1[vtblpnum2, mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false)]), ubi-io-peb-inv(mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false)), ENCODED_NAT_SIZE ≤ LEB_SIZE ⊦ vtblpnum2 = # apebs1, ¬ mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false).bad ∧ mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false).echdr.valid? ∧ (∃ m3, m1, m2. mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false).vidhdr = avidhdr(VTBL_VOLID, VTBL_LNUM, m3, m1, m2) ∧ ( m1 ≠ 0 → m1 ≤ datasize(mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false).data) ∧ m2 = checksum(mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false).data, m1))) |
# wlar = # apebs1, wlar[vtblpnum2] = wl-entry(m0, free), apebs1[vtblpnum2] = mkpeb(aechdr(m0), empty, buf0, 0, false), vtblpnum2 < # apebs1, is-aligned(LEB_SIZE, EB_PAGE_SIZE), is-encoded(∅, buf), ubi-io-initial(apebs1), ubi-io-inv(apebs1[vtblpnum2, mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false)]), ubi-io-inv(apebs1[vtblpnum2, mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf0, 0, false)]), ubi-io-peb-inv(mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false)), ENCODED_NAT_SIZE ≤ LEB_SIZE ⊦ vtblpnum2 = # apebs1, ∃ m, m1, m2. avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0) = avidhdr(VTBL_VOLID, VTBL_LNUM, m, m1, m2) ∧ (m1 ≠ 0 → m1 ≤ datasize(buf) ∧ m2 = checksum(buf, m1))
Used simplifier rules: ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).data = buf; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).vidhdr = avhdr; (s)% ⊦ aechdr(m).valid?; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).echdr = aehdr; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).bad ↔ boolvar; (s)