| st0[m] = mkblock(x, lax, m2), @(m0, m1) ∈ lax, m ∈ st0, ∀ n. n ∈ st0 ∧ n ∈ st1 → st0[n].list ⊑ st1[n].list ∧ st0[n].ladrlist ⊑ st1[n].ladrlist ∧ # st0[n].list = # st0[n].ladrlist ∧ # st1[n].list = # st1[n].ladrlist, ∀ n. n ∈ st0 → n ∈ st1 ⊦ @(m, m0, m1).lnum ∈ st1 ∧ @(@(m, m0, m1).pos, @(m, m0, m1).size) ∈ st1[@(m, m0, m1).lnum].ladrlist |
st0[m] = mkblock(x, lax, m2), m ∈ st0, @(m0, m1) ∈ lax, ∀ n. n ∈ st0 → n ∈ st1, ∀ n. n ∈ st0 ∧ n ∈ st1 → st0[n].list ⊑ st1[n].list ∧ st0[n].ladrlist ⊑ st1[n].ladrlist ∧ # st0[n].list = # st0[n].ladrlist ∧ # st1[n].list = # st1[n].ladrlist ⊦ m ∈ st1 ∧ @(m0, m1) ∈ st1[m].ladrlist
Used simplifier rules: ⊦ @(m, m0, m1).size = m1; (s)% ⊦ @(m, m0, m1).pos = m0; (s)% ⊦ @(m, m0, m1).lnum = m; (s)