| n < # lpt, lpt-ram-flash(lpt, lpt0, nx) ⊦ lpf = LP_GROUP_NODES, lpt-ram-flash(lpt[n, mklp(n0, n1, lpf, n2)], lpt0, nx) |
# lpt0 = # lpt, lpt[n, mklp(n0, n1, lpf, n2)][n3].flags = LP_GROUP_NODES, lpt0[n3].flags = LP_GROUP_NODES, n3 < # lpt, n < # lpt, ∀ n. n < # lpt ∧ lpt0[n].flags = LP_GROUP_NODES ∧ lpt[n].flags = LP_GROUP_NODES ∧ ¬ n ∈ nx → lpt[n].size = lpt0[n].size ⊦ lpt[n3].size = lpt0[n3].size, lpf = LP_GROUP_NODES, n3 ∈ nx
Used simplifier rules: lpt-ram-flash: ⊦ lpt-ram-flash(lpt1, lpt0, nx) ↔ # lpt0 = # lpt1 ∧ (∀ n. n < # lpt1 ∧ lpt0[n].flags = LP_GROUP_NODES ∧ lpt1[n].flags = LP_GROUP_NODES ∧ ¬ n ∈ nx → lpt1[n].size = lpt0[n].size);% ⊦ 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%m ≠ n ⊦ lpt[m, lp][n] = lpt[n]; (s)% ⊦ mklp(n2, n3, lpf, m).flags = lpf; (s)% ⊦ m < # lpt → lpt[m, lp][m] = lp; (s)% ⊦ # lpt[n, lp] = # lpt; (s)