| lpt[n, lp][m2] = mklp(m9, m10, lpf1, m11), lpt[nx.last] = mklp(m3, m4, lpf, m5), lpt[n] = mklp(m, m0, LP_FREE, m1), lpt[m2] = mklp(m6, m7, lpf0, m8), lpt[n, lp][nx.last] = mklp(m12, m13, lpf2, m14), m2 < # lpt, nx ≠ [] ∧ m2 = nx.last ∧ lpf = LP_GROUP_NODES ∨ lpf0 = LP_INDEX_NODES ⊦ lpf1 = LP_INDEX_NODES, nx ≠ [] ∧ m2 = nx.last ∧ lpf2 = LP_GROUP_NODES |
Used simplifier rules: ⊦ m ≠ n → lpt[n, lp][m] = lpt[m]; (s)%⊦ mklp(m, m0, lpf, m1) = mklp(m2, m3, lpf0, m4) ↔ m = m2 ∧ m0 = m3 ∧ lpf = lpf0 ∧ m1 = m4; (ws)%m ≠ n ⊦ lpt[m, lp][n] = lpt[n]; (s)%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic% ⊦ m < # lpt → lpt[m, lp][m] = lp; (s)% ⊦ LP_FREE ≠ LP_INDEX_NODES; (s)% ⊦ LP_FREE ≠ LP_GROUP_NODES; (s) Used formulas: m2 = n