| istore0 = remove-refsize0(istore0), n ∈ istore0, n ∈ istore, istore0 ⊑ istore ⊦ crash(istore, istore0)[n].ref-size = 0, istore0[n].indlist ⊑ remove-refsize0(crash(istore, istore0))[n].indlist ∧ istore0[n].ladrlist ⊑ remove-refsize0(crash(istore, istore0))[n].ladrlist ∧ # istore0[n].indlist = # istore0[n].ladrlist ∧ # remove-refsize0(crash(istore, istore0))[n].indlist = # remove-refsize0(crash(istore, istore0))[n].ladrlist |
istore0[n] = indexblock(indx, lax, m), istore0 = remove-refsize0(istore0), n ∈ istore, n ∈ istore0, istore0 ⊑ istore ⊦ crash(istore, istore0)[n].ref-size = 0, indx ⊑ remove-refsize0(crash(istore, istore0))[n].indlist ∧ lax ⊑ remove-refsize0(crash(istore, istore0))[n].ladrlist ∧ # indx = # lax ∧ # remove-refsize0(crash(istore, istore0))[n].indlist = # remove-refsize0(crash(istore, istore0))[n].ladrlist
Used simplifier rules: ⊦ (indx = iblock.indlist ∧ lax = iblock.ladrlist) ∧ m = iblock.ref-size ↔ iblock = indexblock(indx, lax, m); (elim) Used terms: istore0[n], indx, lax, m