| valid-eraseq(apebs, eqent + q0), valid-peb(v, m, apebs[n]), eq-entry(n, lref) ∈ eqent + q0, ∀ apebs, v, m, n, lref. valid-eraseq(apebs, q0) ∧ valid-peb(v, m, apebs[n]) ∧ eq-entry(n, lref) ∈ q0 → lref = v × m ⊦ lref = v × m |
eqent.pnum < # apebs, valid-eraseq(apebs, q0), valid-peb(v, m, apebs[n]), valid-peb(apebs[eqent.pnum]) → eqent.lebref = apebs[eqent.pnum].vidhdr.vol × apebs[eqent.pnum].vidhdr.leb, ∀ apebs, v, m, n, lref. valid-eraseq(apebs, q0) ∧ valid-peb(v, m, apebs[n]) ∧ eq-entry(n, lref) ∈ q0 → lref = v × m, eq-entry(n, lref) = eqent ∨ eq-entry(n, lref) ∈ q0 ⊦ lref = v × m
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%a: ⊦ (q + q0) + q1 = q + q0 + q1; from specification list[erasequeue-base]% ⊦ eqent ∈ eqent0 ' + q ↔ eqent = eqent0 ∨ eqent ∈ q; (s)% ⊦ eqent + q = eqent ' + q; (s)