| lebs(avol0, n0, n) = lebs(avol1, n0, n), n0 + n < # avol0, n0 + n < # avol1, n0 + n < m + m2, m ≤ n0, m + m2 ≤ # avol0, m + m2 ≤ # avol1, n0 + n - m < m2 → avol0[m + (n0 + n - m)] = avol1[m + (n0 + n - m)] ⊦ (avol0[n0 + n].mapped? ⊃ avol0[n0 + n].data + mkempbuf(LEB_SIZE - # avol0[n0 + n].data);mkempbuf(LEB_SIZE)) = (avol1[n0 + n].mapped? ⊃ avol1[n0 + n].data + mkempbuf(LEB_SIZE - # avol1[n0 + n].data);mkempbuf(LEB_SIZE)) |
lebs(avol0, n0, n) = lebs(avol1, n0, n), n0 + n < m + m2, n0 + n < # avol1, n0 + n < # avol0, m + m2 ≤ # avol1, m + m2 ≤ # avol0, m ≤ n0, (n0 - m) + n < m2 → avol0[n + n0] = avol1[n + n0] ⊦ (avol0[n0 + n].mapped? ⊃ avol0[n0 + n].data + mkempbuf(LEB_SIZE - # avol0[n0 + n].data);mkempbuf(LEB_SIZE)) = (avol1[n0 + n].mapped? ⊃ avol1[n0 + n].data + mkempbuf(LEB_SIZE - # avol1[n0 + n].data);mkempbuf(LEB_SIZE))
Used simplifier rules: ⊦ n ≤ n0 → (m + (n0 - n)) + n = m + n0; (s)%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ n ≤ m → m + n0 - n = (m - n) + n0; (s)