| maxino ∈ nx ∧ gstore[maxino].size + gndlist.flashsize ≤ LEB_SIZE ∧ ¬ gstore[maxino].failed, ginval = ginval0 ∧ gstore = gstore0 ∧ gstore1 = gstore2 ∧ nx = nx0 ∧ maxino0 = maxino1 ∧ ginval1 = ginval2 ∧ btree-inv(rp, adr, gstore0 \ ginval0, istore, istore0, zh, fi, fi0, ld), inv-journal(nx, gstore, gstore1, ginval), ri-inj(fi), ri-inj(fi0), ∃ ri, fi, ld. btree-inv(rp, adr, gstore0 \ ginval0, istore, istore0, zh, ri, fi, ld), inv-journal(nx0, gstore0, gstore2, ginval0), inv-index(istore, istore0), ax = ax0 ⊦ ⟪btree_add_gnds#(maxino, gndlist, nx0; ax, gstore0; err)⟫ ⟨index+persistence_add_gnds#(maxino, gndlist, nx; ax0, gstore; err0)⟩ ( ( ginval = ginval0 ∧ gstore = gstore0 ∧ gstore1 = gstore2 ∧ nx = nx0 ∧ maxino0 = maxino1 ∧ ginval1 = ginval2 ∧ btree-inv(rp, adr, gstore0 \ ginval0, istore, istore0, zh, fi, fi0, ld)) ∧ ax = ax0 ∧ err = err0) |
maxino ∈ nx, gstore[maxino].size + gndlist.flashsize ≤ LEB_SIZE, ¬ gstore[maxino].failed, ginval = ginval0, gstore = gstore0, gstore1 = gstore2, nx = nx0, maxino0 = maxino1, ginval1 = ginval2, btree-inv(rp, adr, gstore0 \ ginval0, istore, istore0, zh, fi, fi0, ld), inv-journal(nx, gstore, gstore1, ginval), ri-inj(fi), ri-inj(fi0), ∃ ri, fi, ld. btree-inv(rp, adr, gstore0 \ ginval0, istore, istore0, zh, ri, fi, ld), inv-journal(nx0, gstore0, gstore2, ginval0), inv-index(istore, istore0), ax = ax0 ⊦ ⟪btree_add_gnds#(maxino, gndlist, nx0; ax, gstore0; err)⟫ ⟨index+persistence_add_gnds#(maxino, gndlist, nx; ax0, gstore; err0)⟩ ( ( ginval = ginval0 ∧ gstore = gstore0 ∧ gstore1 = gstore2 ∧ nx = nx0 ∧ maxino0 = maxino1 ∧ ginval1 = ginval2 ∧ btree-inv(rp, adr, gstore0 \ ginval0, istore, istore0, zh, fi, fi0, ld)) ∧ ax = ax0 ∧ err = err0)