| st[m0] = mkblock(x, lax, m3), n ∈ st, m0 ∈ st, @(m1, m2) ∈ lax ⊦ st[n, st[n].ref-size:= m][m0].list[pos(@(m1, m2), st[n, st[n].ref-size:= m][m0].ladrlist)] = x[pos(@(m1, m2), lax)] |
st[m0] = mkblock(x, lax, m3), st[n, st[n].ref-size:= m][m0] = mkblock(x0, lax0, m4), @(m1, m2) ∈ lax, m0 ∈ st, n ∈ st ⊦ x0[pos(@(m1, m2), lax0)] = x[pos(@(m1, m2), lax)]
Used simplifier rules: ⊦ (x = ablock.list ∧ lax = ablock.ladrlist) ∧ m = ablock.ref-size ↔ ablock = mkblock(x, lax, m); (elim) Used terms: st[n, st[n].ref-size:= m][m0], x0, lax0, m6, m7, m8, boolvar0