| # buf2 = EB_PAGE_SIZE, pebs[m2] = mkpeb(emptypeb, 0, false), apebs[m2] = mkpeb(empty, empty, emptyleb, m1, false), mkempbuf(LEB_SIZE) = emptyleb, m2 < # pebs, m2 < # apebs, abs(pebs, apebs), abs-echdr(emptypage, empty), abs-vidhdr(emptypage, empty), is-encoded(echdr(m3), buf2), mtd-cons(pebs), ubi-io-inv(apebs), EB_PAGE_SIZE ≤ PEB_SIZE ⊦ abs-echdr(buf2, aechdr(m3)) |
⊦ abs-echdr(buf, aehdr) ↔ (aehdr = empty → buf = emptypage) ∧ (aehdr.valid? → is-encoded(echdr(aehdr.ec), buf)) ∧ (aehdr = garbage → is-garbage-ec(buf) ∧ buf ≠ emptypage)
Used simplifier rules: ⊦ empty ≠ aechdr(m); (s)% ⊦ aechdr(m).valid?; (s)% ⊦ aechdr(m).ec = m; (s)% ⊦ is-encoded(ehdr, buf) → (is-encoded(ehdr0, buf) ↔ ehdr = ehdr0); (s)% ⊦ garbage ≠ aechdr(m); (s) Used terms: aechdr(m3), buf2