| apebs0[n2] = mkpeb(aehdr, empty, buf0, m, false), wlar[n2] = wl-entry(m0, stat), wlar[n1] = wl-entry(m1, stat0), wlar0 = wlar, datasize(buf, n) ≠ 0, n2 ≠ n1, aehdr.valid?, n2 < # apebs0, n2 < # wlar, n1 < # wlar, ⌊err0⌋ , ¬ avhdr.valid?, v ∈ vols ∧ m2 < # vols[v] ∧ vols[v][m2] = ⌜n1⌝ ∨ v = VTBL_VOLID ∧ m2 = VTBL_LNUM ∧ vtblpnum1 = n1 ⊦ [ubi_wl_put_peb#(none, n2; wlar, q)] (sum-of-differences(ecs(wlar).max, ecs(wlar)) = sum-of-differences(ecs(wlar0).max, ecs(wlar0)) ∧ ecs(wlar) = ecs(wlar0)) |
wlar[n1] = wl-entry(m1, stat0), wlar[n2] = wl-entry(m0, stat), apebs0[n2] = mkpeb(aehdr, empty, buf0, m, false), lref = none, vtblpnum = n2, wlar0 = wlar, aehdr.valid?, n1 < # wlar, n2 < # wlar, n2 < # apebs0, ⌊err0⌋ , v ∈ vols ∧ m2 < # vols[v] ∧ vols[v][m2] = ⌜n1⌝ ∨ v = VTBL_VOLID ∧ m2 = VTBL_LNUM ∧ vtblpnum1 = n1 ⊦ [wlar[vtblpnum].status := erasing; q := q + eq-entry(vtblpnum, lref)] (sum-of-differences(ecs(wlar).max, ecs(wlar)) = sum-of-differences(ecs(wlar0).max, ecs(wlar0)) ∧ ecs(wlar) = ecs(wlar0)), datasize(buf, n) = 0, n2 = n1, avhdr.valid?
Used simplifier rules: ubi_wl_put_peb#(LREF, PNUM; WLARRAY, ERASEQ) {WLARRAY[PNUM].status := erasing; ERASEQ := ERASEQ + eq-entry(PNUM, LREF) };