| st0[n].ladrlist = st1[n].ladrlist, st0[n].list = st1[n].list, n ∈ st0 ↔ n ∈ st1, st0[n] = mkblock(x0, lax0, m0), ∀ n. (n ∈ st0 ↔ n ∈ st1) ∧ st0[n].list = st1[n].list ∧ st0[n].ladrlist = st1[n].ladrlist ⊦ (∀ n0. (n0 ∈ st0[n, mkblock(x, lax, m)] ↔ n0 ∈ st1) ∧ st0[n, mkblock(x, lax, m)][n0].list = st1[n0].list ∧ st0[n, mkblock(x, lax, m)][n0].ladrlist = st1[n0].ladrlist) ↔ n ∈ st0 ∧ x = x0 ∧ lax = lax0 |
n ∈ st0 ↔ n ∈ st1, st0[n] = mkblock(st1[n].list, st1[n].ladrlist, m0), ∀ n. (n ∈ st0 ↔ n ∈ st1) ∧ st0[n].list = st1[n].list ∧ st0[n].ladrlist = st1[n].ladrlist ⊦ (∀ n0. (n0 ∈ st0[n, mkblock(x, lax, m)] ↔ n0 ∈ st1) ∧ st0[n, mkblock(x, lax, m)][n0].list = st1[n0].list ∧ st0[n, mkblock(x, lax, m)][n0].ladrlist = st1[n0].ladrlist) ↔ n ∈ st1 ∧ x = st1[n].list ∧ lax = st1[n].ladrlist
Used simplifier rules: ⊦ mkblock(x, lax, m).list = x; (s)% ⊦ mkblock(x, lax, m).ladrlist = lax; (s)