| # zbrar = BRANCH_SIZE, ((r => mkznode(rp, zbrar, true, false, nused) * P))(zh0), nsize(nused, nstat), sorted(zbrar, 0, nused), unmodified(adr, mkznode(rp, zbrar, true, false, nused), iast0), adr ∈ iast0, nused ≤ BRANCH_SIZE, iast0 | (∅ ++ adr) ⊆ iast1, (rp0 = null ⊃ P(zh);r = rp0 ∧ zh0 = zh) ⊦ mkznode(rp, zbrar, true, false, nused).dirty, adr ∈ iast1 ∧ iast1[adr] = save(mkznode(rp, zbrar, true, false, nused)) |
# zbrar = BRANCH_SIZE, ((r => mkznode(rp, zbrar, true, false, nused) * P))(zh0), nsize(nused, nstat), sorted(zbrar, 0, nused), unmodified(adr, mkznode(rp, zbrar, true, false, nused), iast0), adr ∈ iast0, nused ≤ BRANCH_SIZE, iast0 | (∅ ++ adr) ⊆ iast1, (rp0 = null ⊃ P(zh);r = rp0 ∧ zh0 = zh) ⊦ iast1[adr] = save(mkznode(rp, zbrar, true, false, nused))
Used simplifier rules: restrict-add-subseteq-in: ⊦ iast0 | (as ++ adr) ⊆ iast1 ∧ adr ∈ iast0 → adr ∈ iast1;% ⊦ mkznode(r, zbrar, boolvar, boolvar0, m).dirty ↔ boolvar0; (s)