| # lpt1 = # lpt0, ∀ n. n < # lpt0 → lpt0[n].ref-size = lpt1[n].ref-size ∧ lpt0[n].size = lpt1[n].size ∧ lpt0[n].flags = lpt1[n].flags ⊦ # lpt1[n, mklp(n0, n1, lpf, m2)] = # lpt0[n, mklp(n0, n1, lpf, n2)] ∧ (∀ n3. n3 < # lpt1[n, mklp(n0, n1, lpf, m2)] → lpt0[n, mklp(n0, n1, lpf, n2)][n3].ref-size = lpt1[n, mklp(n0, n1, lpf, m2)][n3].ref-size ∧ lpt0[n, mklp(n0, n1, lpf, n2)][n3].size = lpt1[n, mklp(n0, n1, lpf, m2)][n3].size ∧ lpt0[n, mklp(n0, n1, lpf, n2)][n3].flags = lpt1[n, mklp(n0, n1, lpf, m2)][n3].flags) |
# lpt1 = # lpt0, n3 < # lpt0, ∀ n. n < # lpt0 → lpt0[n].ref-size = lpt1[n].ref-size ∧ lpt0[n].size = lpt1[n].size ∧ lpt0[n].flags = lpt1[n].flags ⊦ lpt0[n, mklp(n0, n1, lpf, n2)][n3].ref-size = lpt1[n, mklp(n0, n1, lpf, m2)][n3].ref-size ∧ lpt0[n, mklp(n0, n1, lpf, n2)][n3].size = lpt1[n, mklp(n0, n1, lpf, m2)][n3].size ∧ lpt0[n, mklp(n0, n1, lpf, n2)][n3].flags = lpt1[n, mklp(n0, n1, lpf, m2)][n3].flags
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ # lpt[n, lp] = # lpt; (s)