| # lax = # gndx0 + # gndx2 + 1, # ax2 = # gndx2, lax.to-adr(lnum) = ax + adr1 ' + ax2, gstore2[lnum] = groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax, m), inv(groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax, m)), inv(gstore2 \ ginval), ri-cons(ri, nodes(gstore2 ↓, ginval)), lnum ∈ gstore2 ⊦ ⟪choose err0 with ⌊err0⌋ ∨ err0 = ESUCCESS in err := err0; if err = ESUCCESS then {jvalid := nd.key ∈ ri; if jvalid then adr := ri[nd.key] else adr := ?} else jvalid := ?, adr := ?; ndx := nodes(gstore2 ↓, ginval)[referenced-adrs(ax, ri)]; if err = ESUCCESS ∧ jvalid ∧ adr = adr1 then ndx := ndx + nd '; ax := adr1 ' + ax2; gndx1 := gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2; gndx := mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2; if err = ESUCCESS then {ax := ax.tail; gndx := gndx.tail}⟫ ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ ( err = ESUCCESS → (∃ ax0, gndx0. lax.to-adr(lnum) = ax0 + ax ∧ gndx1 = gndx0 + gndx ∧ # ax = # gndx ∧ ndx = nodes(gstore2 ↓, ginval)[referenced-adrs(ax0, ri)])) ∧ ¬ # ax2 < (err = ESUCCESS ⊃ # ax;0)), lnum ∈ ginval |
# ax2 = # gndx2, # lax = # gndx0 + # gndx2 + 1, lax.to-adr(lnum) = ax + adr1 ' + ax2, gstore2[lnum] = groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax, m), inv(gstore2 \ ginval), inv(groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax, m)), ri-cons(ri, nodes(gstore2 ↓, ginval)), lnum ∈ gstore2, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪err := err0; if err = ESUCCESS then {jvalid := nd.key ∈ ri; if jvalid then adr := ri[nd.key] else adr := ?} else jvalid := ?, adr := ?; ndx := nodes(gstore2 ↓, ginval)[referenced-adrs(ax, ri)]; if err = ESUCCESS ∧ jvalid ∧ adr = adr1 then ndx := ndx + nd '; ax := adr1 ' + ax2; gndx1 := gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2; gndx := mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2; if err = ESUCCESS then {ax := ax.tail; gndx := gndx.tail}⟫ ( (err = ESUCCESS ∨ ⌊err⌋ ) ∧ ( err = ESUCCESS → (∃ ax0, gndx0. lax.to-adr(lnum) = ax0 + ax ∧ gndx1 = gndx0 + gndx ∧ # ax = # gndx ∧ ndx = nodes(gstore2 ↓, ginval)[referenced-adrs(ax0, ri)])) ∧ ¬ # ax2 < (err = ESUCCESS ⊃ # ax;0)), lnum ∈ ginval
# ax2 = # gndx2, # lax = # gndx0 + # gndx2 + 1, lax.to-adr(lnum) = ax + adr1 ' + ax2, gstore2[lnum] = groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax, m), inv(gstore2 \ ginval), inv(groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax, m)), ri-cons(ri, nodes(gstore2 ↓, ginval)), lnum ∈ gstore2 ⊦ lnum ∈ ginval, ∃ err0. ⌊err0⌋ ∨ err0 = ESUCCESS