| # pebs[n].data = PEB_SIZE, pebs[m] = mkpeb(buf, m0, false), pebs[m, mkpeb(buf, m0, true)][n] = mkpeb(buf0, m1, boolvar), m < # pebs, n < # pebs, mtd-cons(pebs), ¬ pebs[n].bad → pebs[n].fill ≤ PEB_SIZE ∧ is-aligned(pebs[n].fill, EB_PAGE_SIZE) ∧ range=(pebs[n].data, pebs[n].fill, emptypeb, pebs[n].fill, PEB_SIZE - pebs[n].fill) ⊦ # buf0 = PEB_SIZE ∧ ( ¬ boolvar → pebs[n].fill ≤ PEB_SIZE ∧ is-aligned(pebs[n].fill, EB_PAGE_SIZE) ∧ range=(pebs[n].data, pebs[n].fill, emptypeb, pebs[n].fill, PEB_SIZE - pebs[n].fill)) |
# buf1 = PEB_SIZE, pebs[m, mkpeb(buf, m0, true)][n] = mkpeb(buf0, m1, boolvar), pebs[m] = mkpeb(buf, m0, false), pebs[n] = mkpeb(buf1, m2, boolvar0), n < # pebs, m < # pebs, mtd-cons(pebs), ¬ boolvar0 → m2 ≤ PEB_SIZE ∧ is-aligned(m2, EB_PAGE_SIZE) ∧ range=(buf1, m2, emptypeb, m2, PEB_SIZE - m2) ⊦ # buf0 = PEB_SIZE ∧ (¬ boolvar → m2 ≤ PEB_SIZE ∧ is-aligned(m2, EB_PAGE_SIZE) ∧ range=(buf1, m2, emptypeb, m2, PEB_SIZE - m2))
Used simplifier rules: ⊦ (buf = peb.data ∧ m = peb.fill) ∧ (boolvar ↔ peb.bad) ↔ peb = mkpeb(buf, m, boolvar); (elim) Used terms: pebs[n], buf1, m2, boolvar0