| # gstore[lnum].ladrlist = # gstore[lnum].gndlist, gstore[lnum].gndlist = gndx, gstore[lnum].ladrlist.to-adr(lnum) = ax, inv(gstore \ ginval), ri-cons(ri, nodes(gstore ↓, ginval)), lnum ∈ gstore, ¬ lnum ∈ ginval ⊦ ⟪gjournal_gc_referenced_nodes#(lnum, ri, fi, ginval, gstore, gstore0, nx0, maxino, ns, boolvar0; ax, gndx; ndx, err)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → ndx = nodes(gstore ↓, ginval)[referenced-adrs(gstore[lnum].ladrlist.to-adr(lnum), ri)])) |
# lax = # gndx0, lax.to-adr(lnum) = ax, gstore[lnum] = groupblock(gndx0, lax, m), gndx0 = gndx, inv(gstore \ ginval), ri-cons(ri, nodes(gstore ↓, ginval)), lnum ∈ gstore ⊦ ⟪gjournal_gc_referenced_nodes#(lnum, ri, fi, ginval, gstore, gstore0, nx0, maxino, ns, boolvar0; ax, gndx; ndx, err)⟫ ((err = ESUCCESS ∨ ⌊err⌋ ) ∧ (err = ESUCCESS → ndx = nodes(gstore ↓, ginval)[referenced-adrs(lax.to-adr(lnum), ri)])), lnum ∈ ginval
Used simplifier rules: ⊦ (gndx = gblock.gndlist ∧ lax = gblock.ladrlist) ∧ m = gblock.ref-size ↔ gblock = groupblock(gndx, lax, m); (elim) Used terms: gstore[lnum], gndx0, lax, m