| # lpt1 = # lpt0, lpt1[n] = mklp(n0, n1, lpf1, n2), lpt0[n] = mklp(m0, m1, lpf0, m2), n < # lpt0, ∀ n0. n0 < # lpt0 → cleanup-lpt(lpt0, n)[n0].ref-size = lpt1[n0].ref-size ∧ cleanup-lpt(lpt0, n)[n0].size = lpt1[n0].size ∧ cleanup-lpt(lpt0, n)[n0].flags = lpt1[n0].flags ⊦ m0 = n0 ∧ m1 = n1 ∧ lpf0 = lpf1 |
Used simplifier rules: ⊦ m ≤ m; (s)%n ≤ m, m < # lpt ⊦ cleanup-lpt(lpt, n)[m] = lpt[m]; (s)% ⊦ mklp(n2, n3, lpf, m).flags = lpf; (s)% ⊦ mklp(n2, n3, lpf, m).size = n3; (s)% ⊦ mklp(n2, n3, lpf, m).ref-size = n2; (s) Used terms: n