| # lpt1 = # lpt0, n < # lpt0 ∧ lpf0 = LP_INDEX_NODES ↔ n ∈ istore, istore[n] = indexblock(indx, lax, m), lpt1[n] = mklp(m0, m1, lpf, m2), lpt0[n] = mklp(m3, m4, lpf0, m5), n < # lpt0 → m3 = m0 ∧ m4 = m1 ∧ lpf0 = lpf, n ∈ istore → ( avol[n].mapped? ∧ abs-nodes(avol[n].data, indexblock(indx, lax, m).indlist, indexblock(indx, lax, m).ladrlist, mklp(m, m4, lpf0, m5).size = LEB_SIZE) ∧ (mklp(m, m4, lpf0, m5).size ≠ LEB_SIZE → mklp(m, m4, lpf0, m5).size = # avol[n].data)) ∧ m3 = m ⊦ (n < # lpt0 ∧ lpf = LP_INDEX_NODES ↔ n ∈ istore) ∧ (n ∈ istore → avol[n].mapped? ∧ abs-nodes(avol[n].data, indx, lax, m1 = LEB_SIZE) ∧ (m1 ≠ LEB_SIZE → m1 = # avol[n].data) ∧ m0 = m) |
# lpt1 = # lpt0, n < # lpt0 ∧ lpf0 = LP_INDEX_NODES ↔ n ∈ istore, lpt0[n] = mklp(m3, m4, lpf0, m5), lpt1[n] = mklp(m0, m1, lpf, m2), istore[n] = indexblock(indx, lax, m), n < # lpt0 → m3 = m0 ∧ m4 = m1 ∧ lpf0 = lpf, n ∈ istore → avol[n].mapped? ∧ abs-nodes(avol[n].data, indx, lax, m4 = LEB_SIZE) ∧ (m4 ≠ LEB_SIZE → m4 = # avol[n].data) ∧ m3 = m ⊦ (n < # lpt0 ∧ lpf = LP_INDEX_NODES ↔ n ∈ istore) ∧ (n ∈ istore → avol[n].mapped? ∧ abs-nodes(avol[n].data, indx, lax, m1 = LEB_SIZE) ∧ (m1 ≠ LEB_SIZE → m1 = # avol[n].data) ∧ m0 = m)
Used simplifier rules: ⊦ mklp(n2, n3, lpf, m).size = n3; (s)% ⊦ indexblock(indx, lax, m).ladrlist = lax; (s)% ⊦ indexblock(indx, lax, m).indlist = indx; (s)