| st[n, mkblock(a ', @(m, m0) ', m1)][m2] = mkblock(x, lax, m5) ⊦ @(m2, m3, m4) = @(n, m, m0), m2 = n, n ∈ st, (m2 ∈ st[n, mkblock(a ', @(m, m0) ', m1)] ∧ @(m3, m4) ∈ lax → @(m2, m3, m4) ∈ st) ∧ (m2 ∈ st[n, mkblock(a ', @(m, m0) ', m1)] ∧ @(m3, m4) ∈ lax → st[n, mkblock(a ', @(m, m0) ', m1)][@(m2, m3, m4)] = nodes(st)[@(m2, m3, m4)]) |
st[m2] = mkblock(x, lax, m5), m2 ∈ st, @(m3, m4) ∈ lax ⊦ @(m2, m3, m4) = @(n, m, m0), st[n, mkblock(a ', @(m, m0) ', m1)][@(m2, m3, m4)] = nodes(st)[@(m2, m3, m4)], n ∈ st
Used simplifier rules: ⊦ st[n] = mkblock(x, lax, m0) ∧ n ∈ st ∧ @(n0, n1) ∈ lax → @(n, n0, n1) ∈ st; (ss)% ⊦ n ≠ n0 → (n ∈ st[n0, ablock] ↔ n ∈ st); (s)% ⊦ n ≠ n0 → st[n0, ablock][n] = st[n]; (s)