| lpt[n] = mklp(n0, n1, LP_INDEX_NODES, n2), n < # avol, abs-istore(avol, lpt, istore) ⊦ abs-istore(avol, lpt[n, mklp(n0, LEB_SIZE, LP_INDEX_NODES, n2)], istore) |
lpt[n] = mklp(n0, n1, LP_INDEX_NODES, n2), n < # avol, ∀ n. (n < # lpt ∧ lpt[n].flags = LP_INDEX_NODES ↔ n ∈ istore) ∧ (n ∈ istore → abs-leb(avol[n], istore[n], lpt[n]) ∧ lpt[n].ref-size = istore[n].ref-size) ⊦ (n3 < # lpt ∧ lpt[n, mklp(n0, LEB_SIZE, LP_INDEX_NODES, n2)][n3].flags = LP_INDEX_NODES ↔ n3 ∈ istore) ∧ ( n3 ∈ istore → abs-leb(avol[n3], istore[n3], lpt[n, mklp(n0, LEB_SIZE, LP_INDEX_NODES, n2)][n3]) ∧ lpt[n, mklp(n0, LEB_SIZE, LP_INDEX_NODES, n2)][n3].ref-size = istore[n3].ref-size)
Used simplifier rules: abs-istore-def: ⊦ abs-istore(avol, lpt, istore) ↔ (∀ n. (n < # lpt ∧ lpt[n].flags = LP_INDEX_NODES ↔ n ∈ istore) ∧ ( n ∈ istore → abs-leb(avol[n], istore[n], lpt[n]) ∧ lpt[n].ref-size = istore[n].ref-size));% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ # lpt[n, lp] = # lpt; (s)