| (elems nx0 ∪ dom gstore0) ++ n = dom gstore ∪ ginval1, gstore[n] = groupblock(gndx0, lax0, m), remove-refsize0(istore1) = istore1, remove-refsize0(gstore0) = gstore0, ginval1 ∩ elems nx0 = ∅, inv(groupblock(gndx0, lax0, m)), inv(istore1), inv(istore2), inv(gstore0), inv(gstore \ ginval1), n ∈ gstore, istore1 ⊑ istore2, journal((nx0 + n ').last).index? ∨ journal((nx0 + n ').last).journal? ⊦ ⟨gstore2 := gstore[journal((nx0 + n ').last).lnum, gstore[journal((nx0 + n ').last).lnum].gndlist:= gstore[journal((nx0 + n ').last).lnum].gndlist]; gstore2[journal((nx0 + n ').last).lnum].ladrlist := gstore2[journal((nx0 + n ').last).lnum].ladrlist; if ESUCCESS ≠ ESUCCESS then ax := ?, pstate := readonly; syn := ?⟩ (syn ∧ crash(gstore, gstore0, ginval1, nx0 + n ') = crash(gstore2, gstore0, ginval1, nx0 + n ')), nx0 + n ' = [], dups(nx0), n ∈ nx0, n ∈ ginval1 |
(elems nx0 ∪ dom gstore0) ++ n = dom gstore ∪ ginval1, gstore[n] = groupblock(gndx0, lax0, m), remove-refsize0(gstore0) = gstore0, remove-refsize0(istore1) = istore1, ginval1 ∩ elems nx0 = ∅, inv(gstore \ ginval1), inv(gstore0), inv(istore2), inv(istore1), inv(groupblock(gndx0, lax0, m)), journal((nx0 + n ').last).lnum ∈ gstore, n ∈ gstore, istore1 ⊑ istore2, journal((nx0 + n ').last).index? ∨ journal((nx0 + n ').last).journal? ⊦ ⟨gstore2 := gstore[journal((nx0 + n ').last).lnum, gstore[journal((nx0 + n ').last).lnum].gndlist:= gstore[journal((nx0 + n ').last).lnum].gndlist] [journal((nx0 + n ').last).lnum, gstore [journal((nx0 + n ').last).lnum, gstore[journal((nx0 + n ').last).lnum].gndlist:= gstore[journal((nx0 + n ').last).lnum].gndlist ] [journal((nx0 + n ').last).lnum ] .ladrlist:= gstore [journal((nx0 + n ').last).lnum, gstore[journal((nx0 + n ').last).lnum].gndlist:= gstore[journal((nx0 + n ').last).lnum].gndlist ] [journal((nx0 + n ').last).lnum ] .ladrlist ]; if ESUCCESS ≠ ESUCCESS then ax := ?, pstate := readonly; syn := ?⟩ (syn ∧ crash(gstore, gstore0, ginval1, nx0 + n ') = crash(gstore2, gstore0, ginval1, nx0 + n ')), nx0 + n ' = [], dups(nx0), n ∈ ginval1, n ∈ nx0
Used simplifier rules: ⊦ nx + n ' ≠ []; (s)%a: ⊦ (nx + nx0) + nx1 = nx + nx0 + nx1; from specification list[nat-list-set]% ⊦ (nx + n ').last = n; (s)% ⊦ ¬ journal(m).index?; (s)% ⊦ journal(m).journal?; (s)% ⊦ journal(m).lnum = m; (s)