| apebs[n] = mkpeb(aehdr, avhdr, buf0, m, false), apebs0 = apebs, n0 = n4, n2 = n5, n3 = n, aehdr.valid?, avhdr.valid?, n < # apebs, is-aligned(n5, EB_PAGE_SIZE), is-aligned(n4, EB_PAGE_SIZE), ubi-io-inv(apebs), m ≤ n5, n5 + n4 ≤ LEB_SIZE, n1 + n4 ≤ # buf ⊦ ubi-io-write-data-pre(n3, n2, n1, n0, buf, apebs) |
Used simplifier rules: ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).fill = m; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).vidhdr = avhdr; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).echdr = aehdr; (s)% ⊦ mkpeb(aehdr, avhdr, buf, m, boolvar).bad ↔ boolvar; (s)%⊦ ubi-io-write-data-pre(n, n0, n1, n2, buf, apebs) ↔ n < # apebs ∧ ¬ apebs[n].bad ∧ apebs[n].echdr.valid? ∧ apebs[n].vidhdr.valid? ∧ is-aligned(n0, EB_PAGE_SIZE) ∧ is-aligned(n2, EB_PAGE_SIZE) ∧ apebs[n].fill ≤ n0 ∧ n0 + n2 ≤ LEB_SIZE ∧ n1 + n2 ≤ # buf; (s)