| syn, dom remove-refsize0(gstore) ∩ ginval = ∅, inv-journal(nx, gstore, gstore0, ginval), ri-inj(fi0), ri-inj(fi) ⊦ ⟪index_commit#(maxino, fi, syn; ginval0, ginval, gstore, fi0, gstore0, nx, maxino0, ginval1; err)⟫ (inv-journal(nx, gstore, gstore0, ginval) ∧ ri-inj(fi0)) |
remove-refsize0(gstore0) = gstore0, dom remove-refsize0(gstore) ∩ ginval = ∅, elems nx ∩ ginval = ∅, dom gstore0 ∪ elems nx = dom gstore ∪ ginval, inv(gstore \ ginval), inv(gstore0), ri-inj(fi), ri-inj(fi0), ¬ dups(nx) ⊦ ⟪index_commit#(maxino, fi, true; ginval0, ginval, gstore, fi0, gstore0, nx, maxino0, ginval1; err)⟫ ( inv(gstore \ ginval) ∧ inv(gstore0) ∧ elems nx ∩ ginval = ∅ ∧ ¬ dups(nx) ∧ dom gstore0 ∪ elems nx = dom gstore ∪ ginval ∧ remove-refsize0(gstore0) = gstore0 ∧ ri-inj(fi0))
Used simplifier rules: ⊦ inv-journal(nx, gstore, gstore0, ginval) ↔ inv(gstore \ ginval) ∧ inv(gstore0) ∧ elems nx ∩ ginval = ∅ ∧ ¬ dups(nx) ∧ dom gstore0 ∪ elems nx = dom gstore ∪ ginval ∧ remove-refsize0(gstore0) = gstore0; (s)