| gstore[n] = groupblock(gndx, lax, m), ax = ax0, inv(gstore \ ginval), n ∈ gstore ⊦ ⟪gjournal_remove_nonend_blocks#(n, ri, fi, ginval, gstore, gstore0, nx0, maxino, ns, boolvar0; ax; err)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → ax = ax0 + prefixn(valid-group-nodes(gndx), lax).to-adr(n))), n ∈ ginval |
gstore[n] = groupblock(gndx, lax, m), ax = ax0, inv(gstore \ ginval), inv(groupblock(gndx, lax, m)), n ∈ gstore, ¬ n ∈ ginval ⊦ ⟪gjournal_remove_nonend_blocks#(n, ri, fi, ginval, gstore, gstore0, nx0, maxino, ns, boolvar0; ax; err)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → ax = ax0 + prefixn(valid-group-nodes(gndx), lax).to-adr(n)))
Used simplifier rules: fwd-inv-gblock-rem: ⊦ inv(gstore \ ginval) ∧ n ∈ gstore ∧ ¬ n ∈ ginval ∧ gstore[n] = gblock → inv(gblock); (forward) from specification apersistence-base