| m + n < # avol, n ≤ n0 ∧ ¬ n + m < n0 ∧ n0 < # avol → avol[m + n, mapped(buf)][n0].mapped? ∧ # avol[m + n, mapped(buf)][n0].data = LEB_SIZE, ∀ n0. n ≤ n0 ∧ ¬ n + m < n0 ∧ n0 < # avol → avol[m + n, mapped(buf)][n0].mapped? ∧ # avol[m + n, mapped(buf)][n0].data = LEB_SIZE ⊦ n0 = m + n, # buf = LEB_SIZE ∧ (n ≤ n0 ∧ n0 < n + m ∧ n0 < # avol → avol[n0].mapped? ∧ # avol[n0].data = LEB_SIZE) |
m + n < # avol, n ≤ n0 ∧ ¬ n + m < n0 ∧ n0 < # avol → avol[n0].mapped? ∧ # avol[n0].data = LEB_SIZE, ∀ n0. n ≤ n0 ∧ ¬ n + m < n0 ∧ n0 < # avol → avol[m + n, mapped(buf)][n0].mapped? ∧ # avol[m + n, mapped(buf)][n0].data = LEB_SIZE ⊦ n0 = m + n, # buf = LEB_SIZE ∧ (n ≤ n0 ∧ n0 < n + m ∧ n0 < # avol → avol[n0].mapped? ∧ # avol[n0].data = LEB_SIZE)
Used simplifier rules: ⊦ m ≠ n → avol[n, aleb][m] = avol[m]; (s)