| lpt[n] = mklp(m0, m1, lpf0, m2), n < # lpt, m ≤ # lpt ⊦ gc-heap(lpt[n, mklp(n0, n1, lpf1, n2)], nx, m) = gc-heap(lpt, nx, m), lpf0 = LP_GROUP_NODES, lpf1 = LP_GROUP_NODES |
lpt[n] = mklp(m0, m1, lpf0, m2), n < # lpt, m3 +1 ≤ # lpt, ∀ lpt, n, m0, m1, lpf0, m2, n0, n1, lpf1, n2, nx. lpt[n] = mklp(m0, m1, lpf0, m2) ∧ n < # lpt ∧ m3 ≤ # lpt → gc-heap(lpt[n, mklp(n0, n1, lpf1, n2)], nx, m3) = gc-heap(lpt, nx, m3) ∨ lpf0 = LP_GROUP_NODES ∨ lpf1 = LP_GROUP_NODES ⊦ gc-heap(lpt[n, mklp(n0, n1, lpf1, n2)], nx, m3 +1) = gc-heap(lpt, nx, m3 +1), lpf0 = LP_GROUP_NODES, lpf1 = LP_GROUP_NODES
Used simplifier rules: gc-heap-base: ⊦ gc-heap(lpt, nx, 0) = ∅;%nat freely generated by 0, +1;;