| apebs[n] = mkpeb(aehdr, avhdr, buf, m, boolvar), valid-eraseq(apebs, eqent + q0), ∀ apebs, n, aehdr, avhdr, buf, m, boolvar, lref. apebs[n] = mkpeb(aehdr, avhdr, buf, m, boolvar) ∧ valid-eraseq(apebs, q0) → ( valid-eraseq(apebs, q0 + eq-entry(n, lref) ') ↔ n < # apebs ∧ (valid-peb(mkpeb(aehdr, avhdr, buf, m, boolvar)) → lref = avhdr.vol × avhdr.leb)) ⊦ valid-eraseq(apebs, (eqent + q0) + eq-entry(n, lref) ') ↔ n < # apebs ∧ (valid-peb(mkpeb(aehdr, avhdr, buf, m, boolvar)) → lref = avhdr.vol × avhdr.leb) |
apebs[n] = mkpeb(aehdr, avhdr, buf, m, boolvar), eqent.pnum < # apebs, valid-eraseq(apebs, q0), valid-peb(apebs[eqent.pnum]) → eqent.lebref = apebs[eqent.pnum].vidhdr.vol × apebs[eqent.pnum].vidhdr.leb, ∀ apebs, n, aehdr, avhdr, buf, m, boolvar, lref. apebs[n] = mkpeb(aehdr, avhdr, buf, m, boolvar) ∧ valid-eraseq(apebs, q0) → ( valid-eraseq(apebs, q0 + eq-entry(n, lref) ') ↔ n < # apebs ∧ (valid-peb(mkpeb(aehdr, avhdr, buf, m, boolvar)) → lref = avhdr.vol × avhdr.leb)) ⊦ valid-eraseq(apebs, q0 + eq-entry(n, lref) ') ↔ n < # apebs ∧ (valid-peb(mkpeb(aehdr, avhdr, buf, m, boolvar)) → lref = avhdr.vol × avhdr.leb)
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 + q = eqent ' + q; (s)