| ⊦ n ∈ ns, # lpt.mapIndices(ns ++ n, λ lp. lp.size:= LEB_SIZE) = # lpt.mapIndices(ns, λ lp. lp.size:= LEB_SIZE)[n, lpt.mapIndices(ns, λ lp. lp.size:= LEB_SIZE)[n].size:= LEB_SIZE] ∧ (∀ n0. n0 < # lpt.mapIndices(ns ++ n, λ lp. lp.size:= LEB_SIZE) → lpt.mapIndices(ns ++ n, λ lp. lp.size:= LEB_SIZE)[n0] = lpt.mapIndices(ns, λ lp. lp.size:= LEB_SIZE)[n, lpt.mapIndices(ns, λ lp. lp.size:= LEB_SIZE)[n].size:= LEB_SIZE][n0]) |
n0 < # lpt ⊦ lpt.mapIndices(ns ++ n, λ lp. lp.size:= LEB_SIZE)[n0] = lpt.mapIndices(ns, λ lp. lp.size:= LEB_SIZE)[n, lpt.mapIndices(ns, λ lp. lp.size:= LEB_SIZE)[n].size:= LEB_SIZE][n0], n ∈ ns
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ # lpt[n, lp] = # lpt; (s)% ⊦ # lpt.mapIndices(ns, lptfun) = # lpt; (s)