| st[m] = mkblock(x, lax, n0 + m1), refsize-cons(st, as), @(m, m0, m1) ∈ as, m ∈ st ⊦ refsize-cons(st[m, mkblock(x, lax, n0)], as -- @(m, m0, m1)) |
st[m] = mkblock(x, lax, n0 + m1), n ∈ st[m, mkblock(x, lax, n0)], @(m, m0, m1) ∈ as, m ∈ st, ∀ n. n ∈ st → st[n].ref-size = (as | n).size ⊦ # as = 0, st[m, mkblock(x, lax, n0)][n].ref-size = ((as -- @(m, m0, m1)) | n).size, as = ∅
Used simplifier rules: refsize-cons-def: ⊦ refsize-cons(st, as) ↔ (∀ n. n ∈ st → st[n].ref-size = (as | n).size);%size-zero-01: ⊦ as ≠ ∅ → # as ≠ 0; (forward) from specification set-basic[address-store]%ne-01: ⊦ adr ∈ as → as ≠ ∅; (forward) from specification set-basic[address-store]