| m0 + 1 = # pebs, pebs[m0] = mkpeb(buf, m, true), abs(subarray(pebs, 0, m0), apebs), ubi-io-initial(apebs), ubi-io-initial(pebs), n ≤ m0 ⊦ abs-peb(pebs[n], copy(apebs, 0, mkapebs(m0 + 1), 0, m0)[m0, mkpeb(empty, empty, mkbuf(LEB_SIZE), 0, true)][n]) |
⊦ abs(pebs, apebs) ↔ # pebs = # apebs ∧ (∀ n. n < # pebs → abs-peb(pebs[n], apebs[n]))
# subarray(pebs, 0, m0) = # apebs, m0 + 1 = # pebs, pebs[m0] = mkpeb(buf, m, true), ubi-io-initial(pebs), ubi-io-initial(apebs), n ≤ m0, ∀ n. n < # subarray(pebs, 0, m0) → abs-peb(subarray(pebs, 0, m0)[n], apebs[n]) ⊦ abs-peb(pebs[n], copy(apebs, 0, mkapebs(m0 + 1), 0, m0)[m0, mkpeb(empty, empty, mkbuf(LEB_SIZE), 0, true)][n])
Used terms: apebs, subarray(pebs, 0, m0)