| m0 < n, m0 < # fill(mklparray(n), mklp(n0, n1, LP_FREE, n2)), ∀ n, n0, n1, n2, nx. m0 ≤ n → # gc-heap(fill(mklparray(n), mklp(n0, n1, LP_FREE, n2)), nx, m0) = 0 ∨ gc-heap(fill(mklparray(n), mklp(n0, n1, LP_FREE, n2)), nx, m0) = ∅ ⊦ # ( gc-heap(fill(mklparray(n), mklp(n0, n1, LP_FREE, n2)), nx, m0) ∪ (¬ m0 ∈ nx ∧ fill(mklparray(n), mklp(n0, n1, LP_FREE, n2))[m0].flags = LP_GROUP_NODES ⊃ {key-index(fill(mklparray(n), mklp(n0, n1, LP_FREE, n2))[m0].ref-size, m0)} ;∅ )) = 0, gc-heap(fill(mklparray(n), mklp(n0, n1, LP_FREE, n2)), nx, m0) ∪ (¬ m0 ∈ nx ∧ fill(mklparray(n), mklp(n0, n1, LP_FREE, n2))[m0].flags = LP_GROUP_NODES ⊃ {key-index(fill(mklparray(n), mklp(n0, n1, LP_FREE, n2))[m0].ref-size, m0)} ;∅ ) = ∅ |
m0 < n, ∀ n, n0, n1, n2, nx. m0 ≤ n → # gc-heap(fill(mklparray(n), mklp(n0, n1, LP_FREE, n2)), nx, m0) = 0 ∨ gc-heap(fill(mklparray(n), mklp(n0, n1, LP_FREE, n2)), nx, m0) = ∅ ⊦ # gc-heap(fill(mklparray(n), mklp(n0, n1, LP_FREE, n2)), nx, m0) = 0, gc-heap(fill(mklparray(n), mklp(n0, n1, LP_FREE, n2)), nx, m0) = ∅
Used simplifier rules: size-zero-01: ⊦ gchs ≠ ∅ → # gchs ≠ 0; (forward) from specification set-basic[gc-heap-rename-gc-heap-base-keyindex-set]%size-zero: ⊦ # gchs ≠ 0 → gchs ≠ ∅; (forward) from specification set-basic[gc-heap-rename-gc-heap-base-keyindex-set]% ⊦ # mklparray(n) = n; (s)% ⊦ # fill(lpt, lp) = # lpt; (s)%unc: ⊦ gchs ∪ gchs0 = gchs0 ∪ gchs; from specification set-union[gc-heap-rename-gc-heap-base-keyindex-set]%una: ⊦ (gchs ∪ gchs0) ∪ gchs1 = gchs ∪ gchs0 ∪ gchs1; from specification set-union[gc-heap-rename-gc-heap-base-keyindex-set]% ⊦ gchs ∪ ∅ = gchs; (s)% ⊦ LP_FREE ≠ LP_GROUP_NODES; (s)% ⊦ mklp(n2, n3, lpf, m).flags = lpf; (s)% ⊦ m < n → fill(mklparray(n), lp)[m] = lp; (s)