| # ax = # gndx, gstore[lnum].gndlist = gndx, gstore[lnum].ladrlist.to-adr(lnum) = ax, ax0 = ax, 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(ax0, ri)])), lnum ∈ ginval |
# 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)]))
Used simplifier rules: ⊦ # lax.to-adr(n) = # lax; (s)