| # x1 = # lax1, # x = # lax, st[n] = mkblock(x, lax, m3), st[m0] = mkblock(x0, lax0, m4), n ∈ st, m0 ∈ st, @(m1, m2) ∈ lax0 ⊦ st[n, mkblock(x + x1, lax + lax1, m)][m0].list[pos(@(m1, m2), st[n, mkblock(x + x1, lax + lax1, m)][m0].ladrlist)] = x0[pos(@(m1, m2), lax0)], dups(lax + lax1), dups(lax), dups(lax1) |
# x = # lax, # x1 = # lax1, st[m0] = mkblock(x0, lax0, m4), st[n] = mkblock(x, lax, m3), st[n, mkblock(x + x1, lax + lax1, m)][m0] = mkblock(x2, lax2, m5), @(m1, m2) ∈ lax0, m0 ∈ st, n ∈ st ⊦ x2[pos(@(m1, m2), lax2)] = x0[pos(@(m1, m2), lax0)], dups(lax1), dups(lax), dups(lax + lax1)
Used simplifier rules: ⊦ (x = ablock.list ∧ lax = ablock.ladrlist) ∧ m = ablock.ref-size ↔ ablock = mkblock(x, lax, m); (elim) Used terms: st[n, mkblock(x + x1, lax + lax1, m)][m0], x2, lax2, m5