| zh[rp] = mkznode(rp0, zbrar, boolvar, dirty, nused), ((btree(null, rp, adr, height, false, ri, nodes(istore), alladrs, alladrs, ok) * true))(zh), ((btree(null, null, adr, height0, false, fi, nodes(istore0), alladrs0, alladrs0, ok) * true))(zh), inv(istore0), inv(istore), refsize-cons(istore, alladrs), refsize-cons(istore0, alladrs0), adr ∈ istore, alladrs0 ⊆ dom nodes(istore0), alladrs ⊆ dom nodes(istore), alladrs0 ⊆ dom nodes(istore), istore0 ⊑ istore, rp = null ∨ ¬ dirty, ¬ dirty ∨ rp = null ⊦ ((btree(null, rp, adr, height, false, ri, nodes(remove-refsize0(istore)), alladrs, alladrs, ok) * true))(zh) ∧ refsize-cons(remove-refsize0(istore), alladrs) ∧ adr ∈ remove-refsize0(istore) ∧ alladrs ⊆ dom nodes(remove-refsize0(istore)) |
zh[rp] = mkznode(rp0, zbrar, boolvar, dirty, nused), ((btree(null, null, adr, height0, false, fi, nodes(istore0), alladrs0, alladrs0, ok) * true))(zh), ((btree(null, rp, adr, height, false, ri, nodes(istore), alladrs, alladrs, ok) * true))(zh), inv(istore), inv(istore0), refsize-cons(istore0, alladrs0), refsize-cons(istore, alladrs), adr ∈ istore, alladrs0 ⊆ dom nodes(istore), alladrs ⊆ dom nodes(istore), alladrs0 ⊆ dom nodes(istore0), istore0 ⊑ istore, ¬ dirty ∨ rp = null, rp = null ∨ ¬ dirty ⊦ ((btree(null, rp, adr, height, false, ri, nodes(remove-refsize0(istore)), alladrs, alladrs, ok) * true))(zh) ∧ adr ∈ remove-refsize0(istore)
Used simplifier rules: ⊦ as ⊆ dom nodes(istore) ∧ refsize-cons(istore, as) ∧ inv(istore) → as ⊆ dom nodes(remove-refsize0(istore)); (ss)%⊦ refsize-cons(istore, as) → refsize-cons(remove-refsize0(istore), as); (ss)