| st[n, mkblock([], [], m)][m0] = mkblock(x, lax, m3) ⊦ n ∈ st, (m0 ∈ st[n, mkblock([], [], m)] ∧ @(m1, m2) ∈ lax → @(m0, m1, m2) ∈ st) ∧ (m0 ∈ st[n, mkblock([], [], m)] ∧ @(m1, m2) ∈ lax → st[n, mkblock([], [], m)][@(m0, m1, m2)] = nodes(st)[@(m0, m1, m2)]) |
⊦ n ∈ st[n0, ablock] ↔ n = n0 ∨ n ∈ st
st[n, mkblock([], [], m)][m0] = mkblock(x, lax, m3) ⊦ n ∈ st, ((m0 = n ∨ m0 ∈ st) ∧ @(m1, m2) ∈ lax → @(m0, m1, m2) ∈ st) ∧ ((m0 = n ∨ m0 ∈ st) ∧ @(m1, m2) ∈ lax → st[n, mkblock([], [], m)][@(m0, m1, m2)] = nodes(st)[@(m0, m1, m2)])
Used terms: mkblock([], [], m), n, st, m0