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