| wlar[n1] = wl-entry(m1, stat0), wlar[n2] = wl-entry(m0, stat), apebs0[n2] = mkpeb(aehdr, empty, buf1, 0, false), wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2] = wl-entry(m, stat1), align↑(datasize(buf, n0), EB_PAGE_SIZE) = align↑(datasize(buf, align↑(datasize(buf, n0), EB_PAGE_SIZE)), EB_PAGE_SIZE), aehdr.valid?, n2 < # wlar, vtblpnum1 < # wlar, n1 < # wlar, n2 < # apebs0, align↑(datasize(buf, n0), EB_PAGE_SIZE) ≤ LEB_SIZE, align↑(datasize(buf, n0), EB_PAGE_SIZE) ≤ # buf, VTBL_VOLID ∈ vols ∧ VTBL_LNUM < # vols[VTBL_VOLID] ∧ vols[VTBL_VOLID][VTBL_LNUM] = ⌜n1⌝ ∨ vtblpnum1 = n1 ⊦ datasize(buf, n0) = 0, datasize(buf, align↑(datasize(buf, n0), EB_PAGE_SIZE)) = 0, n2 = n1, sum-of-differences (ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2, wl-entry(m, used)]).max, ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2, wl-entry(m, used)])) = sum-of-differences(ecs(wlar).max, ecs(wlar)) ∧ ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2, wl-entry(m, used)]) = ecs(wlar) ∧ m = m0 ∧ wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n1].ec = m1 |
wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2] = wl-entry(m, stat1), apebs0[n2] = mkpeb(aehdr, empty, buf1, 0, false), wlar[n2] = wl-entry(m0, stat), wlar[n1] = wl-entry(m1, stat0), align↑(datasize(buf, n0), EB_PAGE_SIZE) = align↑(datasize(buf, align↑(datasize(buf, n0), EB_PAGE_SIZE)), EB_PAGE_SIZE), aehdr.valid?, n2 < # apebs0, n1 < # wlar, vtblpnum1 < # wlar, n2 < # wlar, align↑(datasize(buf, n0), EB_PAGE_SIZE) ≤ # buf, align↑(datasize(buf, n0), EB_PAGE_SIZE) ≤ LEB_SIZE, VTBL_VOLID ∈ vols ∧ VTBL_LNUM < # vols[VTBL_VOLID] ∧ vols[VTBL_VOLID][VTBL_LNUM] = ⌜n1⌝ ∨ vtblpnum1 = n1 ⊦ datasize(buf, align↑(datasize(buf, n0), EB_PAGE_SIZE)) = 0, datasize(buf, n0) = 0, n2 = n1, sum-of-differences(ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)]).max, ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)])) = sum-of-differences(ecs(wlar).max, ecs(wlar)) ∧ ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)]) = ecs(wlar) ∧ m = m0 ∧ wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n1].ec = m1
Used simplifier rules: ecs-write-same: m < # wlar ⊦ wlar[m] = wl-entry(m0, stat0) → ecs(wlar[m, wl-entry(m0, stat1)]) = ecs(wlar);% ⊦ m < n → (n ≤ m ↔ false); (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ # wlar[n, wle] = # wlar; (s)