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