| n < # lpt, avol-cleanup-lpt-unchanged(avol0, avol1, lpt), lpt[n].ref-size ≠ 0 ∨ lpt[n].flags = LP_FREE ⊦ avol1[n] = avol0[n] |
# avol0 = # avol1, # lpt = # avol1, n < # avol1, ∀ n. n < # avol1 ∧ (lpt[n].ref-size ≠ 0 ∨ lpt[n].flags = LP_FREE) → avol0[n] = avol1[n], lpt[n].ref-size ≠ 0 ∨ lpt[n].flags = LP_FREE ⊦ avol1[n] = avol0[n]
Used simplifier rules: avol-cleanup-lpt-unchanged: ⊦ avol-cleanup-lpt-unchanged(avol0, avol1, lpt) ↔ # avol0 = # avol1 ∧ # avol0 = # lpt ∧ (∀ n. n < # avol0 ∧ (lpt[n].ref-size ≠ 0 ∨ lpt[n].flags = LP_FREE) → avol0[n] = avol1[n]);% ⊦ m < n → n ≠ 0; (s)%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic