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