| tree[p0, tree1].fids = (tree.fids \ tree[p0].fids) ∪ tree1.fids, tree[parent(p0)].dir?, p0 ∈ tree, tree[p0].fids ⊆ tree.fids ⊦ dnode(md, sdt0[str, tree])[str ' + p0, tree1].fids = ((sdt0.fids ∪ tree.fids) ∪ tree1.fids) \ tree[p0].fids, p0 = ε, str ∈ sdt0 |
p ∈ tree ⊦ tree[p].fids ⊆ tree.fids
tree[p0, tree1].fids = (tree.fids ∪ tree1.fids) \ tree[p0].fids, tree[parent(p0)].dir?, p0 ∈ tree, tree[p0].fids ⊆ tree.fids ⊦ dnode(md, sdt0[str, tree])[str ' + p0, tree1].fids = ((sdt0.fids ∪ tree.fids) ∪ tree1.fids) \ tree[p0].fids, p0 = ε, str ∈ sdt0
Used simplifier rules: fids-sub: p ∈ tree ⊦ tree[p].fids ⊆ tree.fids;%union-com: ⊦ fidb ∪ fidb0 = fidb0 ∪ fidb; from specification bag-union[fidbag]%union-ass: ⊦ fidb ∪ fidb0 ∪ fidb1 = (fidb ∪ fidb0) ∪ fidb1; from specification bag-union[fidbag]%fidb ⊆ fidb0 ⊦ (fidb0 \ fidb) ∪ fidb1 = (fidb0 ∪ fidb1) \ fidb; (s)