| 0 = datasize(buf, n), wlar[n1] = wl-entry(m1, stat0), wlar[n2] = wl-entry(m0, stat), apebs[n2] = mkpeb(aehdr, empty, buf0, m, false), vols[v][m2] = ⌜m3⌝ , lref = v × m2, vtblpnum = m3, wlar0 = wlar, aehdr.valid?, n2 < # wlar[vtblpnum, wlar[vtblpnum].status:= erasing], vtblpnum < # wlar, m2 < # vols[v], n1 < # wlar, n2 < # wlar, n2 < # apebs, v ∈ vols, m3 = n1 ∨ v = VTBL_VOLID ∧ m2 = VTBL_LNUM ∧ vtblpnum1 = n1 ⊦ n2 = n1, v = VTBL_VOLID ∧ m2 = VTBL_LNUM, sum-of-differences (ecs(wlar[vtblpnum, wlar[vtblpnum].status:= erasing][n2, wl-entry(wlar[vtblpnum, wlar[vtblpnum].status:= erasing][n2].ec, used)]).max, ecs(wlar[vtblpnum, wlar[vtblpnum].status:= erasing][n2, wl-entry(wlar[vtblpnum, wlar[vtblpnum].status:= erasing][n2].ec, used)])) = sum-of-differences(ecs(wlar0).max, ecs(wlar0)) ∧ ecs(wlar[vtblpnum, wlar[vtblpnum].status:= erasing][n2, wl-entry(wlar[vtblpnum, wlar[vtblpnum].status:= erasing][n2].ec, used)]) = ecs(wlar0) ∧ wlar[vtblpnum, wlar[vtblpnum].status:= erasing][n2, wl-entry(wlar[vtblpnum, wlar[vtblpnum].status:= erasing][n2].ec, used)][n2].ec = m0 ∧ wlar[vtblpnum, wlar[vtblpnum].status:= erasing][n2, wl-entry(wlar[vtblpnum, wlar[vtblpnum].status:= erasing][n2].ec, used)][n1].ec = m1 |
0 = datasize(buf, n), vols[v][m2] = ⌜m3⌝ , 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, m2 < # vols[v], m3 < # wlar, n2 < # wlar, v ∈ vols, m3 = n1 ∨ v = VTBL_VOLID ∧ m2 = VTBL_LNUM ∧ vtblpnum1 = n1 ⊦ n2 = n1, v = VTBL_VOLID ∧ m2 = VTBL_LNUM, sum-of-differences (ecs(wlar[m3, wl-entry(wlar[m3].ec, erasing)][n2, wl-entry(wlar[m3, wl-entry(wlar[m3].ec, erasing)][n2].ec, used)]).max, ecs(wlar[m3, wl-entry(wlar[m3].ec, erasing)][n2, wl-entry(wlar[m3, wl-entry(wlar[m3].ec, erasing)][n2].ec, used)])) = sum-of-differences(ecs(wlar).max, ecs(wlar)) ∧ ecs(wlar[m3, wl-entry(wlar[m3].ec, erasing)][n2, wl-entry(wlar[m3, wl-entry(wlar[m3].ec, erasing)][n2].ec, used)]) = ecs(wlar) ∧ wlar[m3, wl-entry(wlar[m3].ec, erasing)][n2].ec = m0 ∧ wlar[m3, wl-entry(wlar[m3].ec, erasing)][n1].ec = m1
Used simplifier rules: ⊦ m ≠ n → wlar[n, wle][m] = wlar[m]; (s)% ⊦ wl-entry(m, stat).ec = m; (s)%m < # wlar ⊦ wlar[m, wle][m] = wle; (s)% ⊦ m < n → (n ≤ m ↔ false); (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ # wlar[n, wle] = # wlar; (s)% ⊦ wle.status:= stat = wl-entry(wle.ec, stat); (s)