| # vols[v] = # avols[v], apebs[vols[v][m0].pnum] = mkpeb(aehdr0, avhdr0, buf0, m2, boolvar0), apebs[vols[v][m, unmapped][m0].pnum] = mkpeb(aehdr, avhdr, buf, m1, boolvar), vols[v][m] = ⌜n⌝ , m0 < # avols[v], m < # avols[v], v ∈ avols, v ∈ vols, vols[v][m0] = unmapped → ¬ avols[v][m0].mapped?, vols[v][m0] ≠ unmapped → avols[v][m0].mapped? ∧ avols[v][m0].data = buf0 ∧ m2 ≤ avols[v][m0].fill, avols[v][m0] = erased → ¬ v × m0 ∈ q ⊦ (vols[v][m0] = unmapped → ¬ avols[v][m, unmapped][m0].mapped?) ∧ (vols[v][m, unmapped][m0] ≠ unmapped → avols[v][m0].mapped? ∧ avols[v][m0].data = buf ∧ m1 ≤ avols[v][m0].fill) ∧ (avols[v][m, unmapped][m0] = erased → ¬ v × m0 ∈ q + eq-entry(n, v × m) ') |
Used simplifier rules: ⊦ m ≠ n → ebatbl[n, ebae][m] = ebatbl[m]; (s)% ⊦ m ≠ n → evol[n, leb][m] = evol[m]; (s)%⊦ mkpeb(aehdr, avhdr, buf, m, boolvar) = mkpeb(aehdr0, avhdr0, buf0, m0, boolvar0) ↔ aehdr = aehdr0 ∧ avhdr = avhdr0 ∧ buf = buf0 ∧ m = m0 ∧ (boolvar ↔ boolvar0); (s)% ⊦ ¬ lref ∈ q → (lref ∈ q + eq-entry(n, lref0) ' ↔ lref = lref0); (s)% ⊦ v × m = v0 × m0 ↔ v = v0 ∧ m = m0; (ws)%a: ⊦ (q + q0) + q1 = q + q0 + q1; from specification list[erasequeue-base]% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m < n → (n ≤ m ↔ false); (s)%m < # ebatbl ⊦ ebatbl[m, ebae][m] = ebae; (s)% ⊦ m < # evol → evol[m, leb][m] = leb; (s)% ⊦ ¬ unmapped.mapped?; (s)% ⊦ unmapped ≠ erased; (s) Used formulas: m0 = m