| ⊦ (∀ n. n < # lpt ∧ lpt.map(λ lp. (lp.ref-size = 0 ∧ lp.flags ≠ LP_FREE ⊃ mklp(0, 0, LP_FREE, lp.gcheapidx);lp))[n].flags = LP_FREE → lpt.map(λ lp. (lp.ref-size = 0 ∧ lp.flags ≠ LP_FREE ⊃ mklp(0, 0, LP_FREE, lp.gcheapidx);lp))[n].ref-size = 0) ↔ (∀ n. n < # lpt ∧ lpt[n].flags = LP_FREE → lpt[n].ref-size = 0) |
∀ n. n < # lpt ∧ lpt.map(λ lp. (lp.ref-size = 0 ∧ lp.flags ≠ LP_FREE ⊃ mklp(0, 0, LP_FREE, lp.gcheapidx);lp))[n].flags = LP_FREE → lpt.map(λ lp. (lp.ref-size = 0 ∧ lp.flags ≠ LP_FREE ⊃ mklp(0, 0, LP_FREE, lp.gcheapidx);lp))[n].ref-size = 0 ⊦ ∀ n. n < # lpt ∧ lpt[n].flags = LP_FREE → lpt[n].ref-size = 0
∀ n. n < # lpt ∧ lpt[n].flags = LP_FREE → lpt[n].ref-size = 0 ⊦ ∀ n. n < # lpt ∧ lpt.map(λ lp. (lp.ref-size = 0 ∧ lp.flags ≠ LP_FREE ⊃ mklp(0, 0, LP_FREE, lp.gcheapidx);lp))[n].flags = LP_FREE → lpt.map(λ lp. (lp.ref-size = 0 ∧ lp.flags ≠ LP_FREE ⊃ mklp(0, 0, LP_FREE, lp.gcheapidx);lp))[n].ref-size = 0