| # avol0 = # avol1, # lpt = # avol1, n < # avol1, ∀ n. n < # avol1 ∧ (n ∈ nx ∨ lpt[n].ref-size ≠ 0 ∨ lpt[n].flags = LP_FREE) → avol0[n] = avol1[n] ⊦ (∀ n0. n0 < # avol1 ∧ (n0 ∈ nx ∨ lpt[n0].ref-size ≠ 0 ∨ lpt[n0].flags = LP_FREE) → avol0[n0] = avol1[n, aleb][n0]) ↔ aleb = avol0[n] ∨ ¬ n ∈ nx ∧ lpt[n].ref-size = 0 ∧ lpt[n].flags ≠ LP_FREE |
# lpt = # avol1, # avol0 = # avol1, lpt[n] = mklp(m, m0, lpf, m1), n < # avol1, ∀ n. n < # avol1 ∧ (n ∈ nx ∨ lpt[n].ref-size ≠ 0 ∨ lpt[n].flags = LP_FREE) → avol0[n] = avol1[n] ⊦ (∀ n0. n0 < # avol1 ∧ (n0 ∈ nx ∨ lpt[n0].ref-size ≠ 0 ∨ lpt[n0].flags = LP_FREE) → avol0[n0] = avol1[n, aleb][n0]) ↔ aleb = avol0[n] ∨ ¬ n ∈ nx ∧ m = 0 ∧ lpf ≠ LP_FREE
Used simplifier rules: ⊦ ((m = lp.ref-size ∧ m0 = lp.size) ∧ lpf = lp.flags) ∧ m1 = lp.gcheapidx ↔ lp = mklp(m, m0, lpf, m1); (elim) Used terms: lpt[n], m, m0, lpf