| inv(gstore2), n ∈ gstore2 ⊦ ⟪choose err0 with ⌊err0⌋ ∨ err0 = ESUCCESS in err := err0; gndx := []; if err = ESUCCESS then ax := ax + gstore2[n].ladrlist.to-adr(n), gndx := gndx + gstore2[n].gndlist else ax := ?, gndx := ?; if err = ESUCCESS then {jvalid := false; log := ax; while ¬ jvalid ∧ gndx ≠ [] do {/* (term-remove-nonend-blocks: invariant # gndx ≤ # log ∧ inv(gstore2) wfbound (jvalid ⊃ 0;# gndx)) */; if gndx.last.end then jvalid := true else {log := log.butlast; gndx := gndx.butlast}}}⟫ true, n ∈ ginval |
inv(gstore2), n ∈ gstore2, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪err := err0; gndx := []; if err = ESUCCESS then ax := ax + gstore2[n].ladrlist.to-adr(n), gndx := gndx + gstore2[n].gndlist else ax := ?, gndx := ?; if err = ESUCCESS then {jvalid := false; log := ax; while ¬ jvalid ∧ gndx ≠ [] do {/* (term-remove-nonend-blocks: invariant # gndx ≤ # log ∧ inv(gstore2) wfbound (jvalid ⊃ 0;# gndx)) */; if gndx.last.end then jvalid := true else {log := log.butlast; gndx := gndx.butlast}}}⟫ true, n ∈ ginval
inv(gstore2), n ∈ gstore2 ⊦ n ∈ ginval, ∃ err0. ⌊err0⌋ ∨ err0 = ESUCCESS