| lpt[n] = mklp(m, m0, lpf, m1) ⊦ lpt.mapIndices(elems nx ++ n, λ lp. mklp(lp.ref-size, LEB_SIZE, LP_GROUP_NODES, lp.gcheapidx)) = lpt.mapIndices(elems nx, λ lp. mklp(lp.ref-size, LEB_SIZE, LP_GROUP_NODES, lp.gcheapidx))[n, mklp(m, LEB_SIZE, LP_GROUP_NODES, m1)], n ∈ nx |
⊦ lpt = lpt0 ↔ # lpt = # lpt0 ∧ (∀ n. n < # lpt → lpt[n] = lpt0[n])
lpt[n] = mklp(m, m0, lpf, m1) ⊦ n ∈ nx, # lpt.mapIndices(elems nx ++ n, λ lp. mklp(lp.ref-size, LEB_SIZE, LP_GROUP_NODES, lp.gcheapidx)) = # lpt.mapIndices(elems nx, λ lp. mklp(lp.ref-size, LEB_SIZE, LP_GROUP_NODES, lp.gcheapidx))[n, mklp(m, LEB_SIZE, LP_GROUP_NODES, m1)] ∧ (∀ n0. n0 < # lpt.mapIndices(elems nx ++ n, λ lp. mklp(lp.ref-size, LEB_SIZE, LP_GROUP_NODES, lp.gcheapidx)) → lpt.mapIndices(elems nx ++ n, λ lp. mklp(lp.ref-size, LEB_SIZE, LP_GROUP_NODES, lp.gcheapidx))[n0] = lpt.mapIndices(elems nx, λ lp. mklp(lp.ref-size, LEB_SIZE, LP_GROUP_NODES, lp.gcheapidx))[n, mklp(m, LEB_SIZE, LP_GROUP_NODES, m1)][n0])
Used terms: lpt .mapIndices (elems nx, λ lp. mklp(lp.ref-size, LEB_SIZE, LP_GROUP_NODES, lp.gcheapidx) ) [n, mklp(m, LEB_SIZE, LP_GROUP_NODES, m1) ], lpt .mapIndices (elems nx ++ n, λ lp. mklp(lp.ref-size, LEB_SIZE, LP_GROUP_NODES, lp.gcheapidx) )