| st[n] = mkblock(x, lax, m0), st[n, mkblock(x, lax, m)][m1] = mkblock(x0, lax0, m4), n ∈ st ⊦ m1 ∈ st[n, mkblock(x, lax, m)] ∧ @(m2, m3) ∈ lax0 ↔ @(m1, m2, m3) ∈ st |
Used simplifier rules: in-in-adr: ⊦ st[n] = mkblock(x, lax, m0) ∧ n ∈ st ∧ @(n0, n1) ∈ lax → @(n, n0, n1) ∈ st;%in-adr-in: ⊦ st[n] = mkblock(x, lax, m0) ∧ @(n, n0, n1) ∈ st → @(n0, n1) ∈ lax;%in-in-adr: ⊦ st[n] = mkblock(x, lax, m0) ∧ n ∈ st ∧ @(n0, n1) ∈ lax → @(n, n0, n1) ∈ st;%in-adr-in: ⊦ st[n] = mkblock(x, lax, m0) ∧ @(n, n0, n1) ∈ st → @(n0, n1) ∈ lax;%notin-notin: ⊦ ¬ n ∈ st → ¬ @(n, n0, n1) ∈ st;% ⊦ n ≠ n0 → st[n0, ablock][n] = st[n]; (s)% ⊦ n ≠ n0 → (n ∈ st[n0, ablock] ↔ n ∈ st); (s)% ⊦ st[n, ablock][n] = ablock; (s)%⊦ mkblock(x, lax, m) = mkblock(x0, lax0, m0) ↔ x = x0 ∧ lax = lax0 ∧ m = m0; (ws)% ⊦ n ∈ st[n, ablock]; (s) Used formulas: m1 = n