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