| # lpt1 = # lpt0, n < # lpt0 ∧ lpf0 = LP_GROUP_NODES ↔ n ∈ gstore, lpt1[n] = mklp(m0, m1, lpf, m2), gstore[n] = groupblock(gndx, lax, m), lpt0[n] = mklp(m3, m4, lpf0, m5), n ∈ gstore → m3 = m, n < # lpt0 → m3 = m0 ∧ m4 = m1 ∧ lpf0 = lpf, n ∈ gstore ∧ ¬ n ∈ ginval → avol[n].mapped? ∧ abs-nodes(avol[n].data, gndx, lax, m4 = LEB_SIZE) ∧ (m4 ≠ LEB_SIZE → m4 = # avol[n].data) ⊦ (n < # lpt0 ∧ lpf = LP_GROUP_NODES ↔ n ∈ gstore) ∧ (n ∈ gstore ∧ ¬ n ∈ ginval → avol[n].mapped? ∧ abs-nodes(avol[n].data, gndx, lax, m1 = LEB_SIZE) ∧ (m1 ≠ LEB_SIZE → m1 = # avol[n].data)) ∧ (n ∈ gstore → m0 = m) |
Used simplifier rules: ⊦ aleb.mapped? ↔ (∃ buf. aleb = mapped(buf)); (as)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%abs-nodes-elems-adr-length: ⊦ abs-nodes(buf, gndx, lax, weak) → # gndx = # lax; (forward) from specification abs-list[encoding-group-node]% ⊦ m < n → n ≠ 0; (s)% ⊦ mapped(buf).data = buf; (s)% ⊦ mapped(buf).mapped?; (s)% ⊦ ¬ n ∈ gstore → gstore[n] = (∅)[n]; (s)