| # buf2 = LEB_SIZE, apebs[n, mkpeb(aehdr, avhdr, buf, m, boolvar)][n0] = mkpeb(aehdr1, avhdr1, buf1, m1, boolvar1), apebs[n] = mkpeb(aehdr0, avhdr0, buf0, m0, boolvar0), apebs[n0] = mkpeb(aehdr2, avhdr2, buf2, m2, boolvar2), n0 < # apebs, ¬ boolvar2 → (aehdr2 = empty → avhdr2 = empty) ∧ (aehdr2 ≠ garbage ∧ avhdr2 = empty → m2 = 0) ∧ m2 ≤ LEB_SIZE ∧ is-aligned(m2, EB_PAGE_SIZE) ∧ subarray(buf2, m2, LEB_SIZE - m2) = mkempbuf(LEB_SIZE - m2), n < # apebs ∧ # buf0 = LEB_SIZE ∧ ( ¬ boolvar0 → (aehdr0 = empty → avhdr0 = empty) ∧ (aehdr0 ≠ garbage ∧ avhdr0 = empty → m0 = 0) ∧ m0 ≤ LEB_SIZE ∧ is-aligned(m0, EB_PAGE_SIZE) ∧ subarray(buf0, m0, LEB_SIZE - m0) = mkempbuf(LEB_SIZE - m0)) → # buf = LEB_SIZE ∧ ( ¬ boolvar → (aehdr = empty → avhdr = empty) ∧ (aehdr ≠ garbage ∧ avhdr = empty → m = 0) ∧ m ≤ LEB_SIZE ∧ is-aligned(m, EB_PAGE_SIZE) ∧ subarray(buf, m, LEB_SIZE - m) = mkempbuf(LEB_SIZE - m)) ⊦ # buf1 = LEB_SIZE ∧ ( ¬ boolvar1 → (aehdr1 = empty → avhdr1 = empty) ∧ (aehdr1 ≠ garbage ∧ avhdr1 = empty → m1 = 0) ∧ m1 ≤ LEB_SIZE ∧ is-aligned(m1, EB_PAGE_SIZE) ∧ subarray(buf1, m1, LEB_SIZE - m1) = mkempbuf(LEB_SIZE - m1)) |
Used simplifier rules: ⊦ m ≠ n → apebs[n, apeb][m] = apebs[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)% ⊦ m < # apebs → apebs[m, apeb][m] = apeb; (s) Used formulas: n0 = n