| m < n0 + n1, n0 < # avol0, n < m + m2, n < n0 + n1, n < # avol0, m < # avol0, n0 < m + m2, range=(avol0, m, avol1, m, m2), m ≤ n0, n0 + n1 ≤ m + m2, n0 ≤ n, m ≤ n, n < # avol1 → avol1[n].mapped? ∧ # avol1[n].data = LEB_SIZE ⊦ m2 = 0, n1 = 0, avol0[n].mapped? ∧ # avol0[n].data = LEB_SIZE |
⊦ range=(avol, n0, avol0, n1, m) ↔ n0 + m ≤ # avol ∧ n1 + m ≤ # avol0 ∧ (∀ n. n < m → avol[n0 + n] = avol0[n1 + n])
n0 < m + m2, m < # avol0, n < # avol0, n < n0 + n1, n < m + m2, n0 < # avol0, m < n0 + n1, m ≤ n, n0 ≤ n, n0 + n1 ≤ m + m2, m ≤ n0, m + m2 ≤ # avol0, m + m2 ≤ # avol1, n < # avol1 → avol1[n].mapped? ∧ # avol1[n].data = LEB_SIZE, ∀ n. n < m2 → avol0[m + n] = avol1[m + n] ⊦ m2 = 0, n1 = 0, avol0[n].mapped? ∧ # avol0[n].data = LEB_SIZE
Used terms: m2, m, avol1, m, avol0