| jvalid ↔ false, ax = ax0 + gstore2[n].ladrlist.to-adr(n), err = err0, err = ESUCCESS, gndx = gndx0 + gstore2[n].gndlist, gndx0 = [], log = ax, inv(gstore2), n ∈ gstore2, ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ n ∈ ginval, # gndx ≤ # log ∧ inv(gstore2) |
# ax0 + # gstore2[n].ladrlist < # gstore2[n].gndlist, inv(gstore2), n ∈ gstore2 ⊦ gstore2[n].gndlist = [], n ∈ ginval
Used simplifier rules: ⊦ # gndx = 0 ↔ gndx = []; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m ≤ n ↔ ¬ n < m; (ss)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]% ⊦ # lax.to-adr(n) = # lax; (s)% ⊦ #(ax + ax0) = # ax + # ax0; (s)%a: ⊦ (gndx + gndx0) + gndx1 = gndx + gndx0 + gndx1; from specification list[group-store]% ⊦ [] + gndx = gndx; (s)% ⊦ ¬ ⌊ESUCCESS⌋ ; (s)