| valid-eraseq(apebs, eqent + q0), valid-peb(v, m, apebs[n]), n ∈ eqent + q0, ∀ apebs, v, m, n. valid-eraseq(apebs, q0) ∧ valid-peb(v, m, apebs[n]) ∧ n ∈ q0 → eq-entry(n, v × m) ∈ q0 ⊦ eq-entry(n, v × m) ∈ eqent + q0 |
eqent.pnum < # apebs, valid-eraseq(apebs, q0), valid-peb(v, m, apebs[n]), n ∈ eqent ' + q0, valid-peb(apebs[eqent.pnum]) → eqent.lebref = apebs[eqent.pnum].vidhdr.vol × apebs[eqent.pnum].vidhdr.leb, ∀ apebs, v, m, n. valid-eraseq(apebs, q0) ∧ valid-peb(v, m, apebs[n]) ∧ n ∈ q0 → eq-entry(n, v × m) ∈ q0 ⊦ eq-entry(n, v × m) = eqent, eq-entry(n, v × m) ∈ q0
Used simplifier rules: valid-eraseqp-rec: ⊦ valid-eraseq(apebs, eqent ' + q) ↔ eqent.pnum < # apebs ∧ ( valid-peb(apebs[eqent.pnum]) → eqent.lebref = apebs[eqent.pnum].vidhdr.vol × apebs[eqent.pnum].vidhdr.leb) ∧ valid-eraseq(apebs, q);% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ eqent ∈ eqent0 ' + q ↔ ¬(eqent ≠ eqent0 ∧ ¬ eqent ∈ q); (ss)%a: ⊦ (q + q0) + q1 = q + q0 + q1; from specification list[erasequeue-base]% ⊦ eqent + q = eqent ' + q; (s)