| m = EB_PAGE_SIZE, m0 < # pebs, is-aligned(n, EB_PAGE_SIZE), is-aligned(m1, EB_PAGE_SIZE), mtd-cons(pebs), n0 + n ≤ # buf, m1 + n ≤ LEB_SIZE, pebs[m0].fill ≤ m1 + 2 * EB_PAGE_SIZE ⊦ ⟪ubi_io_write_data#(m0, m1, n0, n, buf, m; pebs; err)⟫ mtd-cons(pebs), pebs[m0].bad |
m0 < # pebs, is-aligned(n, EB_PAGE_SIZE), is-aligned(m1, EB_PAGE_SIZE), mtd-cons(pebs), n0 + n ≤ # buf, m1 + n ≤ LEB_SIZE, pebs[m0].fill ≤ m1 + 2 * EB_PAGE_SIZE, ¬ pebs[m0].bad ⊦ ⟪ubi_io_write_data#(m0, m1, n0, n, buf, EB_PAGE_SIZE; pebs; err)⟫ mtd-cons(pebs)
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic