| lpt[n0] = mklp(m5, m6, lpf1, m7), lpt[n, mklp(m, m0, lpf, m1)][n0] = mklp(m2, m3, lpf0, m4), m0 < m3, LEB_SIZE < m3, n0 < # lpt, n < # lpt, m0 < m6, m0 ≤ LEB_SIZE, ∀ n. n < # lpt → lpt[n].size ≤ LEB_SIZE ⊦ n0 = n |
lpt[n0] = mklp(m5, m6, lpf1, m7), n < # lpt, n0 < # lpt, LEB_SIZE < m6, m0 < m6, m0 ≤ LEB_SIZE, ∀ n. n < # lpt → lpt[n].size ≤ LEB_SIZE ⊦ n0 = n
Used simplifier rules: lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic% ⊦ m < n → n ≠ 0; (s)%⊦ mklp(m, m0, lpf, m1) = mklp(m2, m3, lpf0, m4) ↔ m = m2 ∧ m0 = m3 ∧ lpf = lpf0 ∧ m1 = m4; (ws)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m ≠ n → lpt[n, lp][m] = lpt[m]; (s)