| (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), 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], n ∈ gstore, journal((nx0 + n ').last).lnum ∈ gstore, istore1 ⊑ istore2, journal((nx0 + n ').last).index? ∨ journal((nx0 + n ').last).journal? ⊦ ⟨syn := ?⟩ ( syn ∧ crash(gstore, gstore0, ginval1, nx0 + n ') = crash (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 ], gstore0, ginval1, nx0 + n ')), nx0 + n ' = [], dups(nx0), n ∈ nx0, n ∈ ginval1 |
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).lnum = m; (s)% ⊦ n ∈ gstore[n, gblock]; (s)% ⊦ ¬ journal(m).index?; (s)% ⊦ journal(m).journal?; (s)% ⊦ gstore[n, gblock][n] = gblock; (s)% ⊦ (gblock.gndlist:= gndx).ladrlist = gblock.ladrlist; (s)% ⊦ gstore[n, gblock][n, gblock0] = gstore[n, gblock0]; (s)% ⊦ groupblock(gndx, lax, m).gndlist = gndx; (s)%⊦ groupblock(gndx, lax, m).gndlist:= gndx0 = groupblock(gndx0, lax, m); (s)% ⊦ groupblock(gndx, lax, m).ladrlist = lax; (s)%⊦ groupblock(gndx, lax, m).ladrlist:= lax0 = groupblock(gndx, lax0, m); (s)% ⊦ gstore[n] = gblock ∧ n ∈ gstore → gstore[n, gblock] = gstore; (s)