| n + m ≤ # avol0, avol0 ⊆ avol1, ∀ n0. n ≤ n0 ∧ n0 < n + m ∧ n0 < # avol0 → avol0[n0].mapped? ∧ # avol0[n0].data = LEB_SIZE ⊦ lebs(avol1, n, m) = lebs(avol0, n, m) |
n + m0 +1 ≤ # avol0, avol0 ⊆ avol1, ∀ n0. n ≤ n0 ∧ n0 < n + m0 +1 ∧ n0 < # avol0 → avol0[n0].mapped? ∧ # avol0[n0].data = LEB_SIZE, ∀ n, avol0, avol1. n + m0 ≤ # avol0 ∧ avol0 ⊆ avol1 ∧ (∀ n0. n ≤ n0 ∧ n0 < n + m0 ∧ n0 < # avol0 → avol0[n0].mapped? ∧ # avol0[n0].data = LEB_SIZE) → lebs(avol1, n, m0) = lebs(avol0, n, m0) ⊦ lebs(avol1, n, m0 +1) = lebs(avol0, n, m0 +1)
Used simplifier rules: lebs-base: ⊦ lebs(avol, n, 0) = mkbuf(0);%nat freely generated by 0, +1;;