| apebs[m2] = mkpeb(aehdr1, avhdr, subarray(buf1, 2 * EB_PAGE_SIZE, LEB_SIZE), m1, false), pebs[m2] = mkpeb(buf1, (avhdr = empty ⊃ EB_PAGE_SIZE;m1 + 2 * EB_PAGE_SIZE), false), aehdr1.valid?, m2 < # pebs, m2 < # apebs, abs(pebs, apebs), abs-peb (mkpeb(buf1, (avhdr = empty ⊃ EB_PAGE_SIZE;m1 + 2 * EB_PAGE_SIZE), false), mkpeb(aehdr1, avhdr, subarray(buf1, 2 * EB_PAGE_SIZE, LEB_SIZE), m1, false)), abs-vidhdr(subarray(buf1, EB_PAGE_SIZE, EB_PAGE_SIZE), avhdr), is-encoded(echdr(aehdr1.ec), subarray(buf1, 0, EB_PAGE_SIZE)), mtd-cons(pebs), ubi-io-inv(apebs), EB_PAGE_SIZE ≤ PEB_SIZE ⊦ aechdr(aehdr1.ec) = aehdr1, aehdr1 = garbage, aehdr1 = empty, subarray(buf1, 0, EB_PAGE_SIZE) = emptypage |
Used simplifier rules: aecheader freely generated by empty, garbage, aechdr;;% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m < n → (n ≤ m ↔ false); (s)%n < # pebs ⊦ pebs[n] = mkpeb(buf, m, boolvar) ∧ mtd-cons(pebs) → # buf = PEB_SIZE; (s)% ⊦ garbage ≠ aechdr(m); (s)% ⊦ empty ≠ aechdr(m); (s)% ⊦ aechdr(m).ec = m; (s)% ⊦ aechdr(m) = aechdr(m0) ↔ m = m0; (s)%# buf = n ⊦ subarray(buf, 0, n) = buf; (s)