| # avol0 = # avol1, # lpt = # avol1, n0 < # avol1 ∧ lpt[n0].flags = LP_INDEX_NODES ↔ n0 ∈ istore, lpt[n] = mklp(m0, m1, lpf, m2), lpt[n0] = mklp(m, m3, lpf0, m4), istore[n0] = indexblock(indx, lax, m5), n < # avol1, n0 < # avol1 ∧ n0 ≠ n → avol0[n0] = avol1[n0], n0 ∈ istore → abs-leb(avol0[n0], istore[n0], lpt[n0]) ∧ lpt[n0].ref-size = istore[n0].ref-size ⊦ lpf = LP_INDEX_NODES, (n0 < # avol1 ∧ lpf0 = LP_INDEX_NODES ↔ n0 ∈ istore) ∧ (n0 ∈ istore → abs-leb(avol1[n0], indexblock(indx, lax, m5), mklp(m5, m3, lpf0, m4)) ∧ m = m5) |
# lpt = # avol1, # avol0 = # avol1, istore[n0] = indexblock(indx, lax, m5), lpt[n0] = mklp(m5, m3, LP_INDEX_NODES, m4), lpt[n] = mklp(m0, m1, lpf, m2), n0 < # avol1, n < # avol1, abs-leb(avol0[n0], indexblock(indx, lax, m5), mklp(m5, m3, LP_INDEX_NODES, m4)), n0 ∈ istore, n0 ≠ n → avol0[n0] = avol1[n0] ⊦ lpf = LP_INDEX_NODES, abs-leb(avol1[n0], indexblock(indx, lax, m5), mklp(m5, m3, LP_INDEX_NODES, m4))
Used simplifier rules: lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic% ⊦ indexblock(indx, lax, m).ref-size = m; (s)% ⊦ mklp(n2, n3, lpf, m).ref-size = n2; (s)% ⊦ mklp(n2, n3, lpf, m).flags = lpf; (s)