| kar[m9] = key-index(natkey, m7), lpt[m7] = mklp(m4, m5, lpf, m6), lpt[n] = mklp(m0, m1, lpf0, m2), lpt[n, mklp(n0, n1, lpf1, n2)][m7] = mklp(m3, m8, lpf2, m9), keyset(bin-heap(kar, m)) = gc-heap(lpt, nx, # lpt), 2exp-size(# kar), m9 < # kar, m9 < m, n < # lpt, m7 < # lpt, heap-order(kar, m), no-dups-idx(kar, m), m ≤ # kar ⊦ lpf0 = LP_GROUP_NODES, m6 = m9 |
⊦ m ≠ n → lpt[n, lp][m] = lpt[m]
lpt[n, mklp(n0, n1, lpf1, n2)][m7] = mklp(m3, m8, lpf2, m9), lpt[n] = mklp(m0, m1, lpf0, m2), lpt[m7] = mklp(m4, m5, lpf, m6), kar[m9] = key-index(natkey, m7), keyset(bin-heap(kar, m)) = gc-heap(lpt, nx, # lpt), m7 = n, 2exp-size(# kar), m7 < # lpt, n < # lpt, m9 < m, m9 < # kar, heap-order(kar, m), no-dups-idx(kar, m), m ≤ # kar ⊦ lpf0 = LP_GROUP_NODES, m6 = m9
Used simplifier rules: fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%⊦ mklp(m, m0, lpf, m1) = mklp(m2, m3, lpf0, m4) ↔ m = m2 ∧ m0 = m3 ∧ lpf = lpf0 ∧ m1 = m4; (ws) Used terms: m7, mklp(n0, n1, lpf1, n2), n, lpt