| # 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, valid-peb(VTBL_VOLID, VTBL_LNUM, mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false)) ∧ 0 = ( (valid-sqns(VTBL_VOLID, VTBL_LNUM, apebs1) \ (valid-peb(VTBL_VOLID, VTBL_LNUM, apebs1[vtblpnum2]) ⊃ {apebs1[vtblpnum2].vidhdr.sqn} ;∅)) ∪ (valid-peb(VTBL_VOLID, VTBL_LNUM, mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false)) ⊃ {mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false).vidhdr.sqn} ;∅ ) ).max |
# 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, valid-peb(VTBL_VOLID, VTBL_LNUM, mkpeb(aechdr(m0), avidhdr(VTBL_VOLID, VTBL_LNUM, 0, 0, 0), buf, LEB_SIZE, false))
Used simplifier rules: ⊦ {m} .max = m; (s)%union-com: ⊦ bag ∪ bag2 = bag2 ∪ bag; from specification bag-union[nat-bag]%union-ass: ⊦ bag ∪ bag3 ∪ bag4 = (bag ∪ bag3) ∪ bag4; from specification bag-union[nat-bag]% ⊦ ∅ ∪ bag0 = bag0; (s)% ⊦ avidhdr(v, m, m0, m1, m2).sqn = m0; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).vidhdr = avhdr; (s)%⊦ valid-peb(v0, m0, apeb) → (valid-peb(v1, m1, apeb) ↔ v0 = v1 ∧ m0 = m1); (s)% ⊦ ∅ \ bag0 = ∅; (s)% ⊦ ubi-io-initial(apebs) → valid-sqns(v, m, apebs) = ∅; (s)