| crash(istore, istore0)[n] = indexblock(indx1, lax1, m1), istore0[n] = indexblock(indx, lax, m), crash(istore, istore0)[n] = indexblock(indx0, lax0, m0), n ∈ istore0, n ∈ istore, n ∈ crash(istore, istore0), dom istore0 ⊆ dom istore, ∀ n. (n ∈ istore0 ↔ n ∈ remove-refsize0(istore0)) ∧ istore0[n] = remove-refsize0(istore0)[n], ∀ n. n ∈ istore0 ∧ n ∈ istore → istore0[n].indlist ⊑ istore[n].indlist ∧ istore0[n].ladrlist ⊑ istore[n].ladrlist ∧ # istore0[n].indlist = # istore0[n].ladrlist ∧ # istore[n].indlist = # istore[n].ladrlist ⊦ crash(istore, istore0)[n].ref-size = 0, m1 = 0, indx ⊑ indx0 ∧ lax ⊑ lax0 ∧ # indx = # lax ∧ # indx0 = # lax0 |
istore0[n] = indexblock(indx, lax, m), crash(istore, istore0)[n] = indexblock(indx0, lax0, m0), n ∈ istore, n ∈ istore0, dom istore0 ⊆ dom istore, ∀ n. n ∈ istore0 ∧ n ∈ istore → istore0[n].indlist ⊑ istore[n].indlist ∧ istore0[n].ladrlist ⊑ istore[n].ladrlist ∧ # istore0[n].indlist = # istore0[n].ladrlist ∧ # istore[n].indlist = # istore[n].ladrlist, ∀ n. (n ∈ istore0 ↔ n ∈ remove-refsize0(istore0)) ∧ istore0[n] = remove-refsize0(istore0)[n] ⊦ m0 = 0, indx ⊑ indx0 ∧ lax ⊑ lax0 ∧ # indx = # lax ∧ # indx0 = # lax0
Used simplifier rules: crash-index-in: ⊦ n ∈ crash(istore, istore0) ↔ n ∈ istore0;% ⊦ indexblock(indx, lax, m).ref-size = m; (s)%⊦ indexblock(indx, lax, m) = indexblock(indx0, lax0, m0) ↔ indx = indx0 ∧ lax = lax0 ∧ m = m0; (ws)