| apebs0[n2] = mkpeb(aehdr, empty, buf1, 0, false), wlar[n2] = wl-entry(m0, stat), wlar[n1] = wl-entry(m1, stat0), vols[v][m2] = unmapped, align↑(datasize(buf, n0), EB_PAGE_SIZE) = align↑(datasize(buf, align↑(datasize(buf, n0), EB_PAGE_SIZE)), EB_PAGE_SIZE), err = ESUCCESS, err = err0, err1 = err, vtblpnum2 = n2, wlar0 = wlar, aehdr.valid?, n2 < # apebs0, n2 < # wlar, n1 < # wlar, n2 < # apebs0[n2, mkpeb(aehdr, avidhdr(v, m2, sqnum, datasize(buf, n0), checksum(buf, datasize(buf, n0))), buf1, 0, false)], m2 < # vols[v], v ∈ vols, align↑(datasize(buf, n0), EB_PAGE_SIZE) ≤ # buf, align↑(datasize(buf, n0), EB_PAGE_SIZE) ≤ LEB_SIZE, 0 + align↑(datasize(buf, n0), EB_PAGE_SIZE) ≤ # buf, LEB_SIZE ≥ align↑(datasize(buf, n0), EB_PAGE_SIZE), ⌊err0⌋ ∨ err0 = ESUCCESS, v ∈ vols ∧ m2 < # vols[v] ∧ vols[v][m2] = ⌜n1⌝ ∨ v = VTBL_VOLID ∧ m2 = VTBL_LNUM ∧ vtblpnum1 = n1 ⊦ [vols[v][m2] := ⌜vtblpnum2⌝ ; wlar[vtblpnum2] := wl-entry(wlar[vtblpnum2].ec, used)] ( sum-of-differences(ecs(wlar).max, ecs(wlar)) = sum-of-differences(ecs(wlar0).max, ecs(wlar0)) ∧ ecs(wlar) = ecs(wlar0) ∧ (err1 = ESUCCESS → wlar[n2].ec = m0 ∧ wlar[n1].ec = m1)), datasize(buf, n0) = 0, datasize(buf, align↑(datasize(buf, n0), EB_PAGE_SIZE)) = 0, n2 = n1, v = VTBL_VOLID ∧ m2 = VTBL_LNUM |
Used simplifier rules: ⊦ n ≥ m ↔ m ≤ n; (s)% ⊦ n + 0 = n; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ # apebs[n, apeb] = # apebs; (s)% ⊦ ¬ ⌊ESUCCESS⌋ ; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m < n → n ≠ 0; (s)% ⊦ unmapped ≠ ⌜m⌝ ; (s)