| # 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) |
# x1 = # lax1, # x = # lax, st[n, mkblock(x + x1, lax + lax1, m)][m0] = mkblock(x2, lax2, m5), st[n] = mkblock(x, lax, m3), st[m0] = mkblock(x0, lax0, m4), m0 = n, n ∈ st, m0 ∈ st, @(m1, m2) ∈ lax0 ⊦ x2[pos(@(m1, m2), lax2)] = x0[pos(@(m1, m2), lax0)], dups(lax + lax1), dups(lax), dups(lax1)
Used simplifier rules: ⊦ n ≠ n0 → st[n0, ablock][n] = st[n]; (s)%⊦ mkblock(x, lax, m) = mkblock(x0, lax0, m0) ↔ x = x0 ∧ lax = lax0 ∧ m = m0; (ws) Used formulas: m0 = n