| apebs[m2] = mkpeb(aehdr, avhdr1, subarray(buf1, 2 * EB_PAGE_SIZE, LEB_SIZE), m1, false), pebs[m2] = mkpeb(buf1, (aehdr = empty ⊃ 0;(avhdr1 = empty ⊃ EB_PAGE_SIZE;m1 + 2 * EB_PAGE_SIZE)), false), m2 < # pebs, m2 < # apebs, abs(pebs, apebs), abs-echdr(subarray(buf1, 0, EB_PAGE_SIZE), aehdr), abs-peb (mkpeb(buf1, (aehdr = empty ⊃ 0;(avhdr1 = empty ⊃ EB_PAGE_SIZE;m1 + 2 * EB_PAGE_SIZE)), false), mkpeb(aehdr, avhdr1, subarray(buf1, 2 * EB_PAGE_SIZE, LEB_SIZE), m1, false)), abs-vidhdr(subarray(buf1, EB_PAGE_SIZE, EB_PAGE_SIZE), avhdr1), is-encoded(vidhdr(v, m0, m3, m4, m5), subarray(buf1, EB_PAGE_SIZE, EB_PAGE_SIZE)), mtd-cons(pebs), ubi-io-inv(apebs), 2 * EB_PAGE_SIZE ≤ PEB_SIZE ⊦ avidhdr(v, m0, m3, m4, m5) = avhdr1, subarray(buf1, EB_PAGE_SIZE, EB_PAGE_SIZE) = emptypage |
⊦ abs-vidhdr(buf, avhdr) ↔ (avhdr = empty → buf = emptypage) ∧ (avhdr.valid? → is-encoded(vidhdr(avhdr.vol, avhdr.leb, avhdr.sqn, avhdr.size, avhdr.checksum), buf)) ∧ (avhdr = garbage → is-garbage-vid(buf) ∧ buf ≠ emptypage)
pebs[m2] = mkpeb(buf1, (aehdr = empty ⊃ 0;(avhdr1 = empty ⊃ EB_PAGE_SIZE;m1 + 2 * EB_PAGE_SIZE)), false), apebs[m2] = mkpeb(aehdr, avhdr1, subarray(buf1, 2 * EB_PAGE_SIZE, LEB_SIZE), m1, false), m2 < # apebs, m2 < # pebs, abs(pebs, apebs), abs-echdr(subarray(buf1, 0, EB_PAGE_SIZE), aehdr), abs-peb (mkpeb(buf1, (aehdr = empty ⊃ 0;(avhdr1 = empty ⊃ EB_PAGE_SIZE;m1 + 2 * EB_PAGE_SIZE)), false), mkpeb(aehdr, avhdr1, subarray(buf1, 2 * EB_PAGE_SIZE, LEB_SIZE), m1, false)), is-encoded(vidhdr(v, m0, m3, m4, m5), subarray(buf1, EB_PAGE_SIZE, EB_PAGE_SIZE)), mtd-cons(pebs), ubi-io-inv(apebs), 2 * EB_PAGE_SIZE ≤ PEB_SIZE, avhdr1 = empty → subarray(buf1, EB_PAGE_SIZE, EB_PAGE_SIZE) = emptypage, avhdr1.valid? → is-encoded(vidhdr(avhdr1.vol, avhdr1.leb, avhdr1.sqn, avhdr1.size, avhdr1.checksum), subarray(buf1, EB_PAGE_SIZE, EB_PAGE_SIZE)), avhdr1 = garbage → is-garbage-vid(subarray(buf1, EB_PAGE_SIZE, EB_PAGE_SIZE)) ∧ subarray(buf1, EB_PAGE_SIZE, EB_PAGE_SIZE) ≠ emptypage ⊦ avidhdr(v, m0, m3, m4, m5) = avhdr1, subarray(buf1, EB_PAGE_SIZE, EB_PAGE_SIZE) = emptypage
Used terms: avhdr1, subarray(buf1, EB_PAGE_SIZE, EB_PAGE_SIZE)