| istore0[n] = indexblock(indx, lax, m), indexblock(istore[n].indlist, istore[n].ladrlist, istore0[n].ref-size) = indexblock(indx0, lax0, m0), n ∈ istore, n ∈ 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 ⊦ m0 = 0, indx ⊑ indx0 ∧ lax ⊑ lax0 ∧ # indx = # lax ∧ # indx0 = # lax0 |
istore0[n] = indexblock(indx, lax, m), n ∈ istore, n ∈ 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 ⊦ m = 0, indx ⊑ istore[n].indlist ∧ lax ⊑ istore[n].ladrlist ∧ # indx = # lax ∧ # istore[n].indlist = # istore[n].ladrlist
Used simplifier rules: ⊦ indexblock(indx, lax, m).ref-size = m; (s)%⊦ indexblock(indx, lax, m) = indexblock(indx0, lax0, m0) ↔ indx = indx0 ∧ lax = lax0 ∧ m = m0; (ws)