| # buf0 = PEB_SIZE, pebs[m] = mkpeb(buf, m0, false), pebs[n] = mkpeb(buf0, m1, boolvar), m < # pebs, n < # pebs, mtd-cons(pebs), ¬ boolvar → m1 ≤ PEB_SIZE ∧ is-aligned(m1, EB_PAGE_SIZE) ∧ range=(buf0, m1, emptypeb, m1, PEB_SIZE - m1) ⊦ # pebs[m, mkpeb(emptypeb, 0, false)][n].data = PEB_SIZE ∧ ( ¬ pebs[m, mkpeb(emptypeb, 0, false)][n].bad → pebs[m, mkpeb(emptypeb, 0, false)][n].fill ≤ PEB_SIZE ∧ is-aligned(pebs[m, mkpeb(emptypeb, 0, false)][n].fill, EB_PAGE_SIZE) ∧ range= (pebs[m, mkpeb(emptypeb, 0, false)][n].data, pebs[m, mkpeb(emptypeb, 0, false)][n].fill, emptypeb, pebs[m, mkpeb(emptypeb, 0, false)][n].fill, PEB_SIZE - pebs[m, mkpeb(emptypeb, 0, false)][n].fill)) |
pebs[n] = mkpeb(buf0, m1, boolvar), pebs[m] = mkpeb(buf, m0, false), n < # pebs, m < # pebs, mtd-cons(pebs), ¬ boolvar → m1 ≤ PEB_SIZE ∧ is-aligned(m1, EB_PAGE_SIZE) ∧ range=(buf0, m1, emptypeb, m1, PEB_SIZE - m1) ⊦ # pebs[m, mkpeb(emptypeb, 0, false)][n].data = PEB_SIZE ∧ ( ¬ pebs[m, mkpeb(emptypeb, 0, false)][n].bad → pebs[m, mkpeb(emptypeb, 0, false)][n].fill ≤ PEB_SIZE ∧ is-aligned(pebs[m, mkpeb(emptypeb, 0, false)][n].fill, EB_PAGE_SIZE) ∧ range= (pebs[m, mkpeb(emptypeb, 0, false)][n].data, pebs[m, mkpeb(emptypeb, 0, false)][n].fill, emptypeb, pebs[m, mkpeb(emptypeb, 0, false)][n].fill, PEB_SIZE - pebs[m, mkpeb(emptypeb, 0, false)][n].fill))
Used simplifier rules: n < # pebs ⊦ pebs[n] = mkpeb(buf, m, boolvar) ∧ mtd-cons(pebs) → # buf = PEB_SIZE; (s)% ⊦ m < n → (n ≤ m ↔ false); (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)