| 0 = datasize(buf, n), apebs[n2] = mkpeb(aehdr, empty, buf0, m, false), wlar[n2] = wl-entry(m0, stat), wlar[n1] = wl-entry(m1, stat0), aehdr.valid?, n2 < # apebs, n1 < # wlar, vtblpnum1 < # wlar, n2 < # wlar, VTBL_VOLID ∈ vols ∧ VTBL_LNUM < # vols[VTBL_VOLID] ∧ vols[VTBL_VOLID][VTBL_LNUM] = ⌜n1⌝ ∨ vtblpnum1 = n1 ⊦ n2 = n1, sum-of-differences (ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2, wl-entry(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2].ec, used)]) .max, ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2, wl-entry(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2].ec, used)])) = sum-of-differences(ecs(wlar).max, ecs(wlar)) ∧ ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2, wl-entry(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2].ec, used)]) = ecs(wlar) ∧ wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2].ec = m0 ∧ wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n1].ec = m1 |
0 = datasize(buf, n), wlar[n1] = wl-entry(m1, stat0), wlar[n2] = wl-entry(m0, stat), apebs[n2] = mkpeb(aehdr, empty, buf0, m, false), wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2] = wl-entry(m2, stat1), aehdr.valid?, n2 < # wlar, vtblpnum1 < # wlar, n1 < # wlar, n2 < # apebs, VTBL_VOLID ∈ vols ∧ VTBL_LNUM < # vols[VTBL_VOLID] ∧ vols[VTBL_VOLID][VTBL_LNUM] = ⌜n1⌝ ∨ vtblpnum1 = n1 ⊦ n2 = n1, sum-of-differences (ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2, wl-entry(m2, used)]).max, ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2, wl-entry(m2, used)])) = sum-of-differences(ecs(wlar).max, ecs(wlar)) ∧ ecs(wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2, wl-entry(m2, used)]) = ecs(wlar) ∧ m2 = m0 ∧ wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n1].ec = m1
Used simplifier rules: ⊦ m = wle.ec ∧ stat = wle.status ↔ wle = wl-entry(m, stat); (elim) Used terms: wlar[vtblpnum1, wl-entry(wlar[vtblpnum1].ec, erasing)][n2], m2, stat1