| keyset(gch0) = gc-heap(lpt1, nx), keyset(gch) = gc-heap(lpt1, log), bin-heap-inv(gch, lpt), bin-heap-inv(gch0, lpt1), id-idx(lpt1, lpt), # lpt ≤ log.head, ∀ n. n ∈ log → n < # lpt ∧ lpt[n].flags = LP_GROUP_NODES, ∀ n. n ∈ nx → n < # lpt1 ∧ lpt1[n].flags = LP_GROUP_NODES ⊦ log = [], dups(log), dups(nx) |
keyset(gch) = gc-heap(lpt1, log), keyset(gch0) = gc-heap(lpt1, nx), log = n0 + nx0, bin-heap-inv(gch0, lpt1), bin-heap-inv(gch, lpt), id-idx(lpt1, lpt), # lpt ≤ n0, ∀ n. n ∈ nx → n < # lpt1 ∧ lpt1[n].flags = LP_GROUP_NODES, ∀ n. n ∈ log → n < # lpt ∧ lpt[n].flags = LP_GROUP_NODES ⊦ log = [], dups(nx), dups(log)
Used simplifier rules: nx ≠ [] ⊦ n = nx.head ∧ nx0 = nx.tail ↔ nx = n + nx0; (elim) Used terms: log, n0, nx0