| n < m0, id○(avol1, avol0, n) ⊦ mapped-full?(avol1, m0, m1) ↔ mapped-full?(avol0, m0, m1) |
# avol1 = # avol0, n < m0, id○(avol1, avol0, n) ⊦ (∀ n0. m0 ≤ n0 ∧ n0 < m0 + m1 ∧ n0 < # avol0 → avol1[n0].mapped? ∧ # avol1[n0].data = LEB_SIZE) ↔ (∀ n0. m0 ≤ n0 ∧ n0 < m0 + m1 ∧ n0 < # avol0 → avol0[n0].mapped? ∧ # avol0[n0].data = LEB_SIZE)
Used simplifier rules: mapped-full: ⊦ mapped-full?(avol, n, m) ↔ (∀ n0. n ≤ n0 ∧ n0 < n + m ∧ n0 < # avol → avol[n0].mapped? ∧ # avol[n0].data = LEB_SIZE);% ⊦ m < n → n ≠ 0; (s)%idexcept-size: ⊦ id○(avol, avol0, n) → # avol = # avol0; (forward) from specification array-copy[avolume]%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic